-
- ret = XGetWindowAttributes(**otk::display, _window, &wattrib);
- assert(ret != BadWindow);
-
- _gravity = wattrib.win_gravity;
+ long junk;
+
+ if (XGetWMNormalHints(**otk::display, _window, &size, &junk) &&
+ size.flags & PWinGravity) {
+ // first try the normal hints
+ _gravity = size.win_gravity;
+ } else {
+ // then fall back to the attribute
+ ret = XGetWindowAttributes(**otk::display, _window, &wattrib);
+ assert(ret != BadWindow);
+ _gravity = wattrib.win_gravity;
+ }