summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorDana Jansens <danakj@orodu.net>2003-01-17 03:03:18 +0000
committerDana Jansens <danakj@orodu.net>2003-01-17 03:03:18 +0000
commit6a73cff16d94526cb5b187ab57ee8a3429906bcc (patch)
treec87b10c1a964ad42f02de2a1015f235ec04eb36e /src
parent2b0897234fe041bac66c28f4a3b75d67d55991d7 (diff)
get all the normal hints when mapping again, oops.
Diffstat (limited to 'src')
-rw-r--r--src/client.cc22
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);