diff options
| author | Dana Jansens <danakj@orodu.net> | 2003-01-17 03:03:18 +0000 |
|---|---|---|
| committer | Dana Jansens <danakj@orodu.net> | 2003-01-17 03:03:18 +0000 |
| commit | 6a73cff16d94526cb5b187ab57ee8a3429906bcc (patch) | |
| tree | c87b10c1a964ad42f02de2a1015f235ec04eb36e | |
| parent | 2b0897234fe041bac66c28f4a3b75d67d55991d7 (diff) | |
get all the normal hints when mapping again, oops.
| -rw-r--r-- | src/client.cc | 22 |
1 files changed, 7 insertions, 15 deletions
diff --git a/src/client.cc b/src/client.cc index d005a0bd..1c411adb 100644 --- a/src/client.cc +++ b/src/client.cc @@ -47,7 +47,6 @@ Client::Client(int screen, Window window) // pick a layer to start from _layer = Layer_Normal; - getGravity(); getArea(); getDesktop(); @@ -61,6 +60,8 @@ Client::Client(int screen, Window window) getShaped(); updateProtocols(); + getGravity(); // get the attribute gravity + updateNormalHints(); // this may override the attribute gravity updateWMHints(); updateTitle(); updateIconTitle(); @@ -93,21 +94,12 @@ Client::~Client() void Client::getGravity() { - XSizeHints size; XWindowAttributes wattrib; Status ret; - 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; - } + + ret = XGetWindowAttributes(**otk::display, _window, &wattrib); + assert(ret != BadWindow); + _gravity = wattrib.win_gravity; } @@ -415,7 +407,7 @@ void Client::updateNormalHints() // if the client has a frame, i.e. has already been mapped and is // changing its gravity - if (_gravity != oldgravity) { + if (frame && _gravity != oldgravity) { // move our idea of the client's position based on its new gravity int x, y; frame->frameGravity(x, y); |
