Setup the filter only once on the root window
This commit is contained in:
parent
a2cd2b858b
commit
753ce9cdea
|
@ -258,6 +258,7 @@ static gboolean _desktop_on_refresh(gpointer data);
|
||||||
/* callbacks */
|
/* callbacks */
|
||||||
static void _new_events(Desktop * desktop, GdkWindow * window,
|
static void _new_events(Desktop * desktop, GdkWindow * window,
|
||||||
GdkEventMask mask);
|
GdkEventMask mask);
|
||||||
|
static void _new_filter(Desktop * desktop, GdkWindow * window);
|
||||||
static void _new_icons(Desktop * desktop);
|
static void _new_icons(Desktop * desktop);
|
||||||
static void _new_window(Desktop * desktop, GdkEventMask * mask);
|
static void _new_window(Desktop * desktop, GdkEventMask * mask);
|
||||||
static int _on_message(void * data, uint32_t value1, uint32_t value2,
|
static int _on_message(void * data, uint32_t value1, uint32_t value2,
|
||||||
|
@ -328,6 +329,7 @@ Desktop * desktop_new(DesktopPrefs * prefs)
|
||||||
_new_window(desktop, &mask);
|
_new_window(desktop, &mask);
|
||||||
/* manage events on the root window */
|
/* manage events on the root window */
|
||||||
_new_events(desktop, desktop->root, mask);
|
_new_events(desktop, desktop->root, mask);
|
||||||
|
_new_filter(desktop, desktop->root);
|
||||||
/* load the default icons */
|
/* load the default icons */
|
||||||
_new_icons(desktop);
|
_new_icons(desktop);
|
||||||
return desktop;
|
return desktop;
|
||||||
|
@ -338,6 +340,10 @@ static void _new_events(Desktop * desktop, GdkWindow * window,
|
||||||
{
|
{
|
||||||
mask = gdk_window_get_events(window) | mask;
|
mask = gdk_window_get_events(window) | mask;
|
||||||
gdk_window_set_events(window, mask);
|
gdk_window_set_events(window, mask);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void _new_filter(Desktop * desktop, GdkWindow * window)
|
||||||
|
{
|
||||||
gdk_window_add_filter(window, _on_root_event, desktop);
|
gdk_window_add_filter(window, _on_root_event, desktop);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user