Author: Mingxi Wu <fengshenx@gmail.com>
Status: commited upstream in r277, can be dropped past 1.4.9
Fixes:: https://bugs.launchpad.net/bugs/475800 and others
--- a/extras/panel/scim_panel_gtk.cpp
+++ b/extras/panel/scim_panel_gtk.cpp
@@ -1074,11 +1074,13 @@
 #ifdef GDK_WINDOWING_X11
     // Add an event filter function to observe X root window's properties.
     GdkWindow *root_window = gdk_get_default_root_window ();
+    GdkEventMask event_mask;
 #if GDK_MULTIHEAD_SAFE
     if (_current_screen)
         root_window = gdk_screen_get_root_window (_current_screen);
 #endif
-    gdk_window_set_events (root_window, (GdkEventMask)GDK_PROPERTY_NOTIFY);
+    event_mask = (GdkEventMask) (gdk_window_get_events (root_window) | GDK_PROPERTY_NOTIFY);
+    gdk_window_set_events (root_window, event_mask);
     gdk_window_add_filter (root_window, ui_event_filter, NULL);
 #endif
 
@@ -1325,9 +1327,11 @@
 
 #ifdef GDK_WINDOWING_X11
         GdkWindow *root_window = gdk_get_default_root_window ();
+        GdkEventMask event_mask;
         if (_current_screen)
             root_window = gdk_screen_get_root_window (_current_screen);
-        gdk_window_set_events (root_window, (GdkEventMask)GDK_PROPERTY_NOTIFY);
+        event_mask = (GdkEventMask) (gdk_window_get_events (root_window) | GDK_PROPERTY_NOTIFY);
+        gdk_window_set_events (root_window, event_mask);
         gdk_window_add_filter (root_window, ui_event_filter, NULL);
 #endif
 
