From 753ce9cdea4b5d0865d3cccf2ac6ad0d306ac1c0 Mon Sep 17 00:00:00 2001 From: Pierre Pronchery Date: Thu, 1 Nov 2018 11:17:32 -0300 Subject: [PATCH] Setup the filter only once on the root window --- src/desktop/desktop.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/desktop/desktop.c b/src/desktop/desktop.c index e98c857..9d2a299 100644 --- a/src/desktop/desktop.c +++ b/src/desktop/desktop.c @@ -258,6 +258,7 @@ static gboolean _desktop_on_refresh(gpointer data); /* callbacks */ static void _new_events(Desktop * desktop, GdkWindow * window, GdkEventMask mask); +static void _new_filter(Desktop * desktop, GdkWindow * window); static void _new_icons(Desktop * desktop); static void _new_window(Desktop * desktop, GdkEventMask * mask); 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); /* manage events on the root window */ _new_events(desktop, desktop->root, mask); + _new_filter(desktop, desktop->root); /* load the default icons */ _new_icons(desktop); return desktop; @@ -338,6 +340,10 @@ static void _new_events(Desktop * desktop, GdkWindow * window, { mask = gdk_window_get_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); }