From 33e140552786f20a34c15852e88aaa27f3bed029 Mon Sep 17 00:00:00 2001 From: Arnaud Fontaine Date: Wed, 27 Apr 2011 15:44:35 +0900 Subject: [PATCH] Update the code following release of xcb-util 0.3.8. xcb-util is now split into several repositories since 0.3.8. This release also cleaned up the API a lot, thus update the code accordingly. Signed-off-by: Arnaud Fontaine --- awesome.c | 2 +- awesomeConfig.cmake | 7 ++--- client.c | 56 +++++++++++++++++++++--------------------- client.h | 6 ++-- common/xutil.c | 1 - event.c | 10 +++--- ewmh.c | 4 +- property.c | 68 +++++++++++++++++++++++++------------------------- selection.c | 14 +++++----- systray.c | 2 +- window.c | 4 +- 11 files changed, 86 insertions(+), 88 deletions(-) diff --git a/awesome.c b/awesome.c index f89080c..1258b4c 100644 --- a/awesome.c +++ b/awesome.c @@ -154,7 +154,7 @@ scan(void) if(!attr_r || attr_r->override_redirect || attr_r->map_state == XCB_MAP_STATE_UNMAPPED - || state == XCB_WM_STATE_WITHDRAWN) + || state == XCB_ICCCM_WM_STATE_WITHDRAWN) { geom_wins[i] = NULL; p_delete(&attr_r); diff --git a/awesomeConfig.cmake b/awesomeConfig.cmake index 68b5ee3..5672afc 100644 --- a/awesomeConfig.cmake +++ b/awesomeConfig.cmake @@ -127,7 +127,7 @@ execute_process( # Use pkgconfig to get most of the libraries pkg_check_modules(AWESOME_COMMON_REQUIRED REQUIRED - xcb>=1.4) + xcb>=1.6) pkg_check_modules(AWESOME_REQUIRED REQUIRED glib-2.0 @@ -139,10 +139,9 @@ pkg_check_modules(AWESOME_REQUIRED REQUIRED xcb-xtest xcb-xinerama xcb-shape - xcb-aux>=0.3.0 - xcb-atom>=0.3.0 + xcb-util>=0.3.8 xcb-keysyms>=0.3.4 - xcb-icccm>=0.3.6 + xcb-icccm>=0.3.8 xcb-image>=0.3.0 cairo-xcb libstartup-notification-1.0>=0.10 diff --git a/client.c b/client.c index 049e3d5..baae69f 100644 --- a/client.c +++ b/client.c @@ -52,7 +52,7 @@ luaA_client_gc(lua_State *L) client_t *c = luaA_checkudata(L, 1, &client_class); button_array_wipe(&c->buttons); key_array_wipe(&c->keys); - xcb_get_wm_protocols_reply_wipe(&c->protocols); + xcb_icccm_get_wm_protocols_reply_wipe(&c->protocols); p_delete(&c->machine); p_delete(&c->class); p_delete(&c->instance); @@ -94,21 +94,21 @@ client_set_urgent(lua_State *L, int cidx, bool urgent) if(c->urgent != urgent) { xcb_get_property_cookie_t hints = - xcb_get_wm_hints_unchecked(globalconf.connection, c->window); + xcb_icccm_get_wm_hints_unchecked(globalconf.connection, c->window); c->urgent = urgent; ewmh_client_update_hints(c); /* update ICCCM hints */ - xcb_wm_hints_t wmh; - xcb_get_wm_hints_reply(globalconf.connection, hints, &wmh, NULL); + xcb_icccm_wm_hints_t wmh; + xcb_icccm_get_wm_hints_reply(globalconf.connection, hints, &wmh, NULL); if(urgent) - wmh.flags |= XCB_WM_HINT_X_URGENCY; + wmh.flags |= XCB_ICCCM_WM_HINT_X_URGENCY; else - wmh.flags &= ~XCB_WM_HINT_X_URGENCY; + wmh.flags &= ~XCB_ICCCM_WM_HINT_X_URGENCY; - xcb_set_wm_hints(globalconf.connection, c->window, &wmh); + xcb_icccm_set_wm_hints(globalconf.connection, c->window, &wmh); hook_property(c, "urgent"); luaA_object_emit_signal(L, cidx, "property::urgent", 0); @@ -721,7 +721,7 @@ HANDLE_GEOM(height) * * At this stage it's just safer to keep it in normal state and avoid confusion. */ - window_state_set(c->window, XCB_WM_STATE_NORMAL); + window_state_set(c->window, XCB_ICCCM_WM_STATE_NORMAL); if(!startup) { @@ -767,14 +767,14 @@ client_geometry_hints(client_t *c, area_t geometry) int32_t real_basew = 0, real_baseh = 0; /* base size is substituted with min size if not specified */ - if(c->size_hints.flags & XCB_SIZE_HINT_P_SIZE) + if(c->size_hints.flags & XCB_ICCCM_SIZE_HINT_P_SIZE) { basew = c->size_hints.base_width; baseh = c->size_hints.base_height; real_basew = basew; real_baseh = baseh; } - else if(c->size_hints.flags & XCB_SIZE_HINT_P_MIN_SIZE) + else if(c->size_hints.flags & XCB_ICCCM_SIZE_HINT_P_MIN_SIZE) { basew = c->size_hints.min_width; baseh = c->size_hints.min_height; @@ -783,12 +783,12 @@ client_geometry_hints(client_t *c, area_t geometry) basew = baseh = 0; /* min size is substituted with base size if not specified */ - if(c->size_hints.flags & XCB_SIZE_HINT_P_MIN_SIZE) + if(c->size_hints.flags & XCB_ICCCM_SIZE_HINT_P_MIN_SIZE) { minw = c->size_hints.min_width; minh = c->size_hints.min_height; } - else if(c->size_hints.flags & XCB_SIZE_HINT_P_SIZE) + else if(c->size_hints.flags & XCB_ICCCM_SIZE_HINT_P_SIZE) { minw = c->size_hints.base_width; minh = c->size_hints.base_height; @@ -796,7 +796,7 @@ client_geometry_hints(client_t *c, area_t geometry) else minw = minh = 0; - if(c->size_hints.flags & XCB_SIZE_HINT_P_ASPECT + if(c->size_hints.flags & XCB_ICCCM_SIZE_HINT_P_ASPECT && c->size_hints.min_aspect_den > 0 && c->size_hints.max_aspect_den > 0 && geometry.height - real_baseh > 0 @@ -838,7 +838,7 @@ client_geometry_hints(client_t *c, area_t geometry) if(minh) geometry.height = MAX(geometry.height, minh); - if(c->size_hints.flags & XCB_SIZE_HINT_P_MAX_SIZE) + if(c->size_hints.flags & XCB_ICCCM_SIZE_HINT_P_MAX_SIZE) { if(c->size_hints.max_width) geometry.width = MIN(geometry.width, c->size_hints.max_width); @@ -846,7 +846,7 @@ client_geometry_hints(client_t *c, area_t geometry) geometry.height = MIN(geometry.height, c->size_hints.max_height); } - if(c->size_hints.flags & (XCB_SIZE_HINT_P_RESIZE_INC | XCB_SIZE_HINT_BASE_SIZE) + if(c->size_hints.flags & (XCB_ICCCM_SIZE_HINT_P_RESIZE_INC | XCB_ICCCM_SIZE_HINT_BASE_SIZE) && c->size_hints.width_inc && c->size_hints.height_inc) { uint16_t t1 = geometry.width, t2 = geometry.height; @@ -969,9 +969,9 @@ client_set_minimized(lua_State *L, int cidx, bool s) c->minimized = s; banning_need_update((c)->screen); if(s) - window_state_set(c->window, XCB_WM_STATE_ICONIC); + window_state_set(c->window, XCB_ICCCM_WM_STATE_ICONIC); else - window_state_set(c->window, XCB_WM_STATE_NORMAL); + window_state_set(c->window, XCB_ICCCM_WM_STATE_NORMAL); ewmh_client_update_hints(c); if(strut_has_value(&c->strut)) screen_emit_signal(globalconf.L, c->screen, "property::workarea", 0); @@ -1333,7 +1333,7 @@ client_unmanage(client_t *c) /* Do this last to avoid races with clients. According to ICCCM, clients * arent allowed to re-use the window until after this. */ - window_state_set(c->window, XCB_WM_STATE_WITHDRAWN); + window_state_set(c->window, XCB_ICCCM_WM_STATE_WITHDRAWN); /* set client as invalid */ c->invalid = true; @@ -2052,9 +2052,9 @@ luaA_client_get_size_hints(lua_State *L, client_t *c) lua_createtable(L, 0, 1); - if(c->size_hints.flags & XCB_SIZE_HINT_US_POSITION) + if(c->size_hints.flags & XCB_ICCCM_SIZE_HINT_US_POSITION) u_or_p = "user_position"; - else if(c->size_hints.flags & XCB_SIZE_HINT_P_POSITION) + else if(c->size_hints.flags & XCB_ICCCM_SIZE_HINT_P_POSITION) u_or_p = "program_position"; if(u_or_p) @@ -2068,9 +2068,9 @@ luaA_client_get_size_hints(lua_State *L, client_t *c) u_or_p = NULL; } - if(c->size_hints.flags & XCB_SIZE_HINT_US_SIZE) + if(c->size_hints.flags & XCB_ICCCM_SIZE_HINT_US_SIZE) u_or_p = "user_size"; - else if(c->size_hints.flags & XCB_SIZE_HINT_P_SIZE) + else if(c->size_hints.flags & XCB_ICCCM_SIZE_HINT_P_SIZE) u_or_p = "program_size"; if(u_or_p) @@ -2083,7 +2083,7 @@ luaA_client_get_size_hints(lua_State *L, client_t *c) lua_setfield(L, -2, u_or_p); } - if(c->size_hints.flags & XCB_SIZE_HINT_P_MIN_SIZE) + if(c->size_hints.flags & XCB_ICCCM_SIZE_HINT_P_MIN_SIZE) { lua_pushnumber(L, c->size_hints.min_width); lua_setfield(L, -2, "min_width"); @@ -2091,7 +2091,7 @@ luaA_client_get_size_hints(lua_State *L, client_t *c) lua_setfield(L, -2, "min_height"); } - if(c->size_hints.flags & XCB_SIZE_HINT_P_MAX_SIZE) + if(c->size_hints.flags & XCB_ICCCM_SIZE_HINT_P_MAX_SIZE) { lua_pushnumber(L, c->size_hints.max_width); lua_setfield(L, -2, "max_width"); @@ -2099,7 +2099,7 @@ luaA_client_get_size_hints(lua_State *L, client_t *c) lua_setfield(L, -2, "max_height"); } - if(c->size_hints.flags & XCB_SIZE_HINT_P_RESIZE_INC) + if(c->size_hints.flags & XCB_ICCCM_SIZE_HINT_P_RESIZE_INC) { lua_pushnumber(L, c->size_hints.width_inc); lua_setfield(L, -2, "width_inc"); @@ -2107,7 +2107,7 @@ luaA_client_get_size_hints(lua_State *L, client_t *c) lua_setfield(L, -2, "height_inc"); } - if(c->size_hints.flags & XCB_SIZE_HINT_P_ASPECT) + if(c->size_hints.flags & XCB_ICCCM_SIZE_HINT_P_ASPECT) { lua_pushnumber(L, c->size_hints.min_aspect_num); lua_setfield(L, -2, "min_aspect_num"); @@ -2119,7 +2119,7 @@ luaA_client_get_size_hints(lua_State *L, client_t *c) lua_setfield(L, -2, "max_aspect_den"); } - if(c->size_hints.flags & XCB_SIZE_HINT_BASE_SIZE) + if(c->size_hints.flags & XCB_ICCCM_SIZE_HINT_BASE_SIZE) { lua_pushnumber(L, c->size_hints.base_width); lua_setfield(L, -2, "base_width"); @@ -2127,7 +2127,7 @@ luaA_client_get_size_hints(lua_State *L, client_t *c) lua_setfield(L, -2, "base_height"); } - if(c->size_hints.flags & XCB_SIZE_HINT_P_WIN_GRAVITY) + if(c->size_hints.flags & XCB_ICCCM_SIZE_HINT_P_WIN_GRAVITY) { switch(c->size_hints.win_gravity) { diff --git a/client.h b/client.h index d4ef52f..9674fac 100644 --- a/client.h +++ b/client.h @@ -123,7 +123,7 @@ struct client_t /** Window holding command needed to start it (session management related) */ xcb_window_t leader_window; /** Client's WM_PROTOCOLS property */ - xcb_get_wm_protocols_reply_t protocols; + xcb_icccm_get_wm_protocols_reply_t protocols; /** Client logical screen */ screen_t *screen; /** Client physical screen */ @@ -248,8 +248,8 @@ client_raise(client_t *c) static inline bool client_isfixed(client_t *c) { - return (c->size_hints.flags & XCB_SIZE_HINT_P_MAX_SIZE - && c->size_hints.flags & XCB_SIZE_HINT_P_MIN_SIZE + return (c->size_hints.flags & XCB_ICCCM_SIZE_HINT_P_MAX_SIZE + && c->size_hints.flags & XCB_ICCCM_SIZE_HINT_P_MIN_SIZE && c->size_hints.max_width == c->size_hints.min_width && c->size_hints.max_height == c->size_hints.min_height && c->size_hints.max_width diff --git a/common/xutil.c b/common/xutil.c index 3d80e8d..c5a2127 100644 --- a/common/xutil.c +++ b/common/xutil.c @@ -25,7 +25,6 @@ #include "common/util.h" #include -#include #include #include "common/xutil.h" diff --git a/event.c b/event.c index 8527ec5..a35918b 100644 --- a/event.c +++ b/event.c @@ -721,7 +721,7 @@ event_handle_clientmessage(xcb_client_message_event_t *ev) client_t *c; if((c = client_getbywin(ev->window)) && ev->format == 32 - && ev->data.data32[0] == XCB_WM_STATE_ICONIC) + && ev->data.data32[0] == XCB_ICCCM_WM_STATE_ICONIC) { luaA_object_push(globalconf.L, c); client_set_minimized(globalconf.L, -1, true); @@ -795,13 +795,13 @@ static void xerror(xcb_generic_error_t *e) { /* ignore this */ - if(e->error_code == XCB_EVENT_ERROR_BAD_WINDOW - || (e->error_code == XCB_EVENT_ERROR_BAD_MATCH + if(e->error_code == XCB_WINDOW + || (e->error_code == XCB_MATCH && e->major_code == XCB_SET_INPUT_FOCUS) - || (e->error_code == XCB_EVENT_ERROR_BAD_VALUE + || (e->error_code == XCB_VALUE && e->major_code == XCB_KILL_CLIENT) || (e->major_code == XCB_CONFIGURE_WINDOW - && e->error_code == XCB_EVENT_ERROR_BAD_MATCH)) + && e->error_code == XCB_MATCH)) return; warn("X error: request=%s, error=%s", diff --git a/ewmh.c b/ewmh.c index 0aa5de7..ba4776c 100644 --- a/ewmh.c +++ b/ewmh.c @@ -226,7 +226,7 @@ ewmh_update_net_active_window(int phys_screen) xcb_change_property(globalconf.connection, XCB_PROP_MODE_REPLACE, xutil_screen_get(globalconf.connection, phys_screen)->root, - _NET_ACTIVE_WINDOW, WINDOW, 32, 1, &win); + _NET_ACTIVE_WINDOW, XCB_ATOM_WINDOW, 32, 1, &win); } static void @@ -425,7 +425,7 @@ ewmh_client_update_hints(client_t *c) state[i++] = _NET_WM_STATE_DEMANDS_ATTENTION; xcb_change_property(globalconf.connection, XCB_PROP_MODE_REPLACE, - c->window, _NET_WM_STATE, ATOM, 32, i, state); + c->window, _NET_WM_STATE, XCB_ATOM_ATOM, 32, i, state); } /** Update the client active desktop. diff --git a/property.c b/property.c index d5090c6..d2223ef 100644 --- a/property.c +++ b/property.c @@ -105,14 +105,14 @@ property_update_wm_transient_for(client_t *c, xcb_get_property_reply_t *reply) if(reply) { - if(!xcb_get_wm_transient_for_from_reply(&trans, reply)) + if(!xcb_icccm_get_wm_transient_for_from_reply(&trans, reply)) return; } else { - if(!xcb_get_wm_transient_for_reply(globalconf.connection, - xcb_get_wm_transient_for_unchecked(globalconf.connection, - c->window), + if(!xcb_icccm_get_wm_transient_for_reply(globalconf.connection, + xcb_icccm_get_wm_transient_for_unchecked(globalconf.connection, + c->window), &trans, NULL)) return; } @@ -160,15 +160,15 @@ property_update_wm_normal_hints(client_t *c, xcb_get_property_reply_t *reply) { if(reply) { - if(!xcb_get_wm_size_hints_from_reply(&c->size_hints, reply)) + if(!xcb_icccm_get_wm_size_hints_from_reply(&c->size_hints, reply)) return; } else { - if(!xcb_get_wm_normal_hints_reply(globalconf.connection, - xcb_get_wm_normal_hints_unchecked(globalconf.connection, - c->window), - &c->size_hints, NULL)) + if(!xcb_icccm_get_wm_normal_hints_reply(globalconf.connection, + xcb_icccm_get_wm_normal_hints_unchecked(globalconf.connection, + c->window), + &c->size_hints, NULL)) return; } } @@ -180,31 +180,31 @@ property_update_wm_normal_hints(client_t *c, xcb_get_property_reply_t *reply) void property_update_wm_hints(client_t *c, xcb_get_property_reply_t *reply) { - xcb_wm_hints_t wmh; + xcb_icccm_wm_hints_t wmh; if(reply) { - if(!xcb_get_wm_hints_from_reply(&wmh, reply)) + if(!xcb_icccm_get_wm_hints_from_reply(&wmh, reply)) return; } else { - if(!xcb_get_wm_hints_reply(globalconf.connection, - xcb_get_wm_hints_unchecked(globalconf.connection, c->window), - &wmh, NULL)) + if(!xcb_icccm_get_wm_hints_reply(globalconf.connection, + xcb_icccm_get_wm_hints_unchecked(globalconf.connection, c->window), + &wmh, NULL)) return; } luaA_object_push(globalconf.L, c); - client_set_urgent(globalconf.L, -1, xcb_wm_hints_get_urgency(&wmh)); - if(wmh.flags & XCB_WM_HINT_STATE && - wmh.initial_state == XCB_WM_STATE_WITHDRAWN) + client_set_urgent(globalconf.L, -1, xcb_icccm_wm_hints_get_urgency(&wmh)); + if(wmh.flags & XCB_ICCCM_WM_HINT_STATE && + wmh.initial_state == XCB_ICCCM_WM_STATE_WITHDRAWN) client_set_border_width(globalconf.L, -1, 0); - if(wmh.flags & XCB_WM_HINT_INPUT) + if(wmh.flags & XCB_ICCCM_WM_HINT_INPUT) c->nofocus = !wmh.input; - if(wmh.flags & XCB_WM_HINT_WINDOW_GROUP) + if(wmh.flags & XCB_ICCCM_WM_HINT_WINDOW_GROUP) client_set_group_window(globalconf.L, -1, wmh.window_group); lua_pop(globalconf.L, 1); @@ -217,18 +217,18 @@ property_update_wm_hints(client_t *c, xcb_get_property_reply_t *reply) void property_update_wm_class(client_t *c, xcb_get_property_reply_t *reply) { - xcb_get_wm_class_reply_t hint; + xcb_icccm_get_wm_class_reply_t hint; if(reply) { - if(!xcb_get_wm_class_from_reply(&hint, reply)) + if(!xcb_icccm_get_wm_class_from_reply(&hint, reply)) return; } else { - if(!xcb_get_wm_class_reply(globalconf.connection, - xcb_get_wm_class_unchecked(globalconf.connection, c->window), - &hint, NULL)) + if(!xcb_icccm_get_wm_class_reply(globalconf.connection, + xcb_icccm_get_wm_class_unchecked(globalconf.connection, c->window), + &hint, NULL)) return; } @@ -238,7 +238,7 @@ property_update_wm_class(client_t *c, xcb_get_property_reply_t *reply) /* only delete reply if we get it ourselves */ if(!reply) - xcb_get_wm_class_reply_wipe(&hint); + xcb_icccm_get_wm_class_reply_wipe(&hint); } static int @@ -308,30 +308,30 @@ property_update_net_wm_pid(client_t *c, void property_update_wm_protocols(client_t *c, xcb_get_property_reply_t *reply) { - xcb_get_wm_protocols_reply_t protocols; + xcb_icccm_get_wm_protocols_reply_t protocols; xcb_get_property_reply_t *reply_copy; if(reply) { reply_copy = p_dup(reply, 1); - if(!xcb_get_wm_protocols_from_reply(reply_copy, &protocols)) - { + if(!xcb_icccm_get_wm_protocols_from_reply(reply_copy, &protocols)) + { p_delete(&reply_copy); return; - } + } } else { /* If this fails for any reason, we still got the old value */ - if(!xcb_get_wm_protocols_reply(globalconf.connection, - xcb_get_wm_protocols_unchecked(globalconf.connection, - c->window, WM_PROTOCOLS), - &protocols, NULL)) + if(!xcb_icccm_get_wm_protocols_reply(globalconf.connection, + xcb_icccm_get_wm_protocols_unchecked(globalconf.connection, + c->window, WM_PROTOCOLS), + &protocols, NULL)) return; } - xcb_get_wm_protocols_reply_wipe(&c->protocols); + xcb_icccm_get_wm_protocols_reply_wipe(&c->protocols); memcpy(&c->protocols, &protocols, sizeof(protocols)); } diff --git a/selection.c b/selection.c index 527ec40..44b57c5 100644 --- a/selection.c +++ b/selection.c @@ -86,18 +86,18 @@ luaA_selection_get(lua_State *L) if(event_notify->selection == XCB_ATOM_PRIMARY && event_notify->property != XCB_NONE) { - xcb_get_text_property_reply_t prop; + xcb_icccm_get_text_property_reply_t prop; xcb_get_property_cookie_t cookie = - xcb_get_text_property(globalconf.connection, - event_notify->requestor, - event_notify->property); + xcb_icccm_get_text_property(globalconf.connection, + event_notify->requestor, + event_notify->property); - if(xcb_get_text_property_reply(globalconf.connection, - cookie, &prop, NULL)) + if(xcb_icccm_get_text_property_reply(globalconf.connection, + cookie, &prop, NULL)) { lua_pushlstring(L, prop.name, prop.name_len); - xcb_get_text_property_reply_wipe(&prop); + xcb_icccm_get_text_property_reply_wipe(&prop); xcb_delete_property(globalconf.connection, event_notify->requestor, diff --git a/systray.c b/systray.c index 6ea3dd5..92b7d39 100644 --- a/systray.c +++ b/systray.c @@ -197,7 +197,7 @@ systray_request_handle(xcb_window_t embed_win, int phys_screen, xembed_info_t *i xcb_change_window_attributes(globalconf.connection, embed_win, XCB_CW_EVENT_MASK, select_input_val); - window_state_set(embed_win, XCB_WM_STATE_WITHDRAWN); + window_state_set(embed_win, XCB_ICCCM_WM_STATE_WITHDRAWN); /* we grab the window, but also make sure it's automatically reparented back * to the root window if we should die. diff --git a/window.c b/window.c index b86fa38..6a1909f 100644 --- a/window.c +++ b/window.c @@ -60,7 +60,7 @@ uint32_t window_state_get_reply(xcb_get_property_cookie_t cookie) { /* If no property is set, we just assume a sane default. */ - uint32_t result = XCB_WM_STATE_NORMAL; + uint32_t result = XCB_ICCCM_WM_STATE_NORMAL; xcb_get_property_reply_t *prop_r; if((prop_r = xcb_get_property_reply(globalconf.connection, cookie, NULL))) @@ -187,7 +187,7 @@ window_opacity_set(xcb_window_t win, double opacity) { uint32_t real_opacity = opacity * 0xffffffff; xcb_change_property(globalconf.connection, XCB_PROP_MODE_REPLACE, win, - _NET_WM_WINDOW_OPACITY, CARDINAL, 32, 1L, &real_opacity); + _NET_WM_WINDOW_OPACITY, XCB_ATOM_CARDINAL, 32, 1L, &real_opacity); } else xcb_delete_property(globalconf.connection, win, _NET_WM_WINDOW_OPACITY); -- 1.7.4.4