xwindow: check that window exists before setting opacity

Signed-off-by: Julien Danjou <julien@danjou.info>
This commit is contained in:
Julien Danjou 2009-09-30 15:59:02 +02:00
parent 4717feb02b
commit d5e3a25bbc
1 changed files with 9 additions and 6 deletions

View File

@ -183,14 +183,17 @@ xwindow_get_opacity_from_reply(xcb_get_property_reply_t *prop_r)
void void
xwindow_set_opacity(xcb_window_t win, double opacity) xwindow_set_opacity(xcb_window_t win, double opacity)
{ {
if(opacity >= 0 && opacity <= 1) if(win)
{ {
uint32_t real_opacity = opacity * 0xffffffff; if(opacity >= 0 && opacity <= 1)
xcb_change_property(globalconf.connection, XCB_PROP_MODE_REPLACE, win, {
_NET_WM_WINDOW_OPACITY, CARDINAL, 32, 1L, &real_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);
}
else
xcb_delete_property(globalconf.connection, win, _NET_WM_WINDOW_OPACITY);
} }
else
xcb_delete_property(globalconf.connection, win, _NET_WM_WINDOW_OPACITY);
} }
/** Send WM_TAKE_FOCUS client message to window /** Send WM_TAKE_FOCUS client message to window