property: use xcb_get_wm_protocols_from_reply
Signed-off-by: Julien Danjou <julien@danjou.info>
This commit is contained in:
parent
e829db1a41
commit
c862bf0534
|
@ -144,7 +144,7 @@ pkg_check_modules(AWESOME_REQUIRED REQUIRED
|
||||||
xcb-aux>=0.3.0
|
xcb-aux>=0.3.0
|
||||||
xcb-atom>=0.3.0
|
xcb-atom>=0.3.0
|
||||||
xcb-keysyms>=0.3.4
|
xcb-keysyms>=0.3.4
|
||||||
xcb-icccm>=0.3.3
|
xcb-icccm>=0.3.6
|
||||||
xcb-image>=0.3.0
|
xcb-image>=0.3.0
|
||||||
xcb-property>=0.3.0
|
xcb-property>=0.3.0
|
||||||
cairo-xcb
|
cairo-xcb
|
||||||
|
|
2
client.c
2
client.c
|
@ -656,7 +656,7 @@ client_manage(xcb_window_t w, xcb_get_geometry_reply_t *wgeom, int phys_screen,
|
||||||
property_update_wm_name(c, NULL);
|
property_update_wm_name(c, NULL);
|
||||||
property_update_wm_icon_name(c, NULL);
|
property_update_wm_icon_name(c, NULL);
|
||||||
property_update_wm_class(c, NULL);
|
property_update_wm_class(c, NULL);
|
||||||
property_update_wm_protocols(c);
|
property_update_wm_protocols(c, NULL);
|
||||||
|
|
||||||
/* update strut */
|
/* update strut */
|
||||||
ewmh_process_client_strut(c, NULL);
|
ewmh_process_client_strut(c, NULL);
|
||||||
|
|
26
property.c
26
property.c
|
@ -391,19 +391,27 @@ property_handle_net_wm_pid(void *data,
|
||||||
* \param c The client.
|
* \param c The client.
|
||||||
*/
|
*/
|
||||||
void
|
void
|
||||||
property_update_wm_protocols(client_t *c)
|
property_update_wm_protocols(client_t *c, xcb_get_property_reply_t *reply)
|
||||||
{
|
{
|
||||||
xcb_get_wm_protocols_reply_t protocols;
|
xcb_get_wm_protocols_reply_t protocols;
|
||||||
|
|
||||||
/* If this fails for any reason, we still got the old value */
|
if(reply)
|
||||||
if(xcb_get_wm_protocols_reply(globalconf.connection,
|
|
||||||
xcb_get_wm_protocols_unchecked(globalconf.connection,
|
|
||||||
c->window, WM_PROTOCOLS),
|
|
||||||
&protocols, NULL))
|
|
||||||
{
|
{
|
||||||
xcb_get_wm_protocols_reply_wipe(&c->protocols);
|
if(!xcb_get_wm_protocols_from_reply(reply, &protocols))
|
||||||
memcpy(&c->protocols, &protocols, sizeof(protocols));
|
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))
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
xcb_get_wm_protocols_reply_wipe(&c->protocols);
|
||||||
|
memcpy(&c->protocols, &protocols, sizeof(protocols));
|
||||||
}
|
}
|
||||||
|
|
||||||
/** The property notify event handler.
|
/** The property notify event handler.
|
||||||
|
@ -425,7 +433,7 @@ property_handle_wm_protocols(void *data,
|
||||||
client_t *c = client_getbywin(window);
|
client_t *c = client_getbywin(window);
|
||||||
|
|
||||||
if(c)
|
if(c)
|
||||||
property_update_wm_protocols(c);
|
property_update_wm_protocols(c, reply);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
|
@ -31,7 +31,7 @@ void property_update_wm_hints(client_t *, xcb_get_property_reply_t *);
|
||||||
void property_update_wm_class(client_t *, xcb_get_property_reply_t *);
|
void property_update_wm_class(client_t *, xcb_get_property_reply_t *);
|
||||||
void property_update_wm_name(client_t *, xcb_get_property_reply_t *);
|
void property_update_wm_name(client_t *, xcb_get_property_reply_t *);
|
||||||
void property_update_wm_icon_name(client_t *, xcb_get_property_reply_t *);
|
void property_update_wm_icon_name(client_t *, xcb_get_property_reply_t *);
|
||||||
void property_update_wm_protocols(client_t *);
|
void property_update_wm_protocols(client_t *, xcb_get_property_reply_t *);
|
||||||
void property_update_wm_client_machine(client_t *, xcb_get_property_reply_t *);
|
void property_update_wm_client_machine(client_t *, xcb_get_property_reply_t *);
|
||||||
void property_update_wm_window_role(client_t *, xcb_get_property_reply_t *);
|
void property_update_wm_window_role(client_t *, xcb_get_property_reply_t *);
|
||||||
void property_update_net_wm_pid(client_t *, xcb_get_property_reply_t *);
|
void property_update_net_wm_pid(client_t *, xcb_get_property_reply_t *);
|
||||||
|
|
Loading…
Reference in New Issue