summaryrefslogtreecommitdiff
path: root/icccm
diff options
context:
space:
mode:
authorJulien Danjou <julien@danjou.info>2008-09-19 08:24:22 +0200
committerJulien Danjou <julien@danjou.info>2008-09-19 08:24:22 +0200
commitffb67af5535989b6220cef859b8636cffc7cffaf (patch)
treed38dbecc5a709ef0200b44189b1708dbd3b79c00 /icccm
parenta6ca9f24302f95a76fc77d0d8e4a0eea15fdb501 (diff)
icccm: fix normal hints flags computing
Signed-off-by: Julien Danjou <julien@danjou.info>
Diffstat (limited to 'icccm')
-rw-r--r--icccm/icccm.c15
1 files changed, 10 insertions, 5 deletions
diff --git a/icccm/icccm.c b/icccm/icccm.c
index ed5155f..ee5abd6 100644
--- a/icccm/icccm.c
+++ b/icccm/icccm.c
@@ -57,6 +57,7 @@ xcb_get_text_property_reply(xcb_connection_t *c,
xcb_generic_error_t **e)
{
xcb_get_property_reply_t *reply = xcb_get_property_reply(c, cookie, e);
+
if(!reply)
return 0;
@@ -421,6 +422,8 @@ xcb_get_wm_size_hints_unchecked(xcb_connection_t *c, xcb_window_t window,
uint8_t
xcb_get_wm_size_hints_from_reply(xcb_size_hints_t *hints, xcb_get_property_reply_t *reply)
{
+ uint32_t flags;
+
if(!reply)
return 0;
@@ -436,20 +439,22 @@ xcb_get_wm_size_hints_from_reply(xcb_size_hints_t *hints, xcb_get_property_reply
memcpy(hints, (xcb_size_hints_t *) xcb_get_property_value (reply),
length * reply->format >> 3);
- hints->flags = (XCB_SIZE_HINT_US_POSITION | XCB_SIZE_HINT_US_SIZE |
- XCB_SIZE_HINT_P_POSITION | XCB_SIZE_HINT_P_SIZE |
- XCB_SIZE_HINT_P_MIN_SIZE | XCB_SIZE_HINT_P_MAX_SIZE |
- XCB_SIZE_HINT_P_RESIZE_INC | XCB_SIZE_HINT_P_ASPECT);
+ flags = (XCB_SIZE_HINT_US_POSITION | XCB_SIZE_HINT_US_SIZE |
+ XCB_SIZE_HINT_P_POSITION | XCB_SIZE_HINT_P_SIZE |
+ XCB_SIZE_HINT_P_MIN_SIZE | XCB_SIZE_HINT_P_MAX_SIZE |
+ XCB_SIZE_HINT_P_RESIZE_INC | XCB_SIZE_HINT_P_ASPECT);
/* NumPropSizeElements = 18 (ICCCM version 1) */
if(length >= 18)
- hints->flags |= (XCB_SIZE_HINT_BASE_SIZE | XCB_SIZE_HINT_P_WIN_GRAVITY);
+ flags |= (XCB_SIZE_HINT_BASE_SIZE | XCB_SIZE_HINT_P_WIN_GRAVITY);
else
{
hints->base_width = 0;
hints->base_height = 0;
hints->win_gravity = 0;
}
+ /* get rid of unwanted bits */
+ hints->flags &= flags;
return 1;
}