[Xfce4-commits] r29519 - in xfwm4/trunk: . src

Olivier Fourdan olivier at xfce.org
Fri Feb 20 13:37:26 CET 2009


Author: olivier
Date: 2009-02-20 12:37:26 +0000 (Fri, 20 Feb 2009)
New Revision: 29519

Modified:
   xfwm4/trunk/ChangeLog
   xfwm4/trunk/src/events.c
Log:
	* src/events.c: And do not release events on key release, as Super is
	  both a modifier and a regular key that repeats, it breaks when used
	  as a modifier (Bug #4959). 
 

Modified: xfwm4/trunk/ChangeLog
===================================================================
--- xfwm4/trunk/ChangeLog	2009-02-19 21:59:36 UTC (rev 29518)
+++ xfwm4/trunk/ChangeLog	2009-02-20 12:37:26 UTC (rev 29519)
@@ -1,5 +1,11 @@
 2009-02-19	olivier
 
+	* src/events.c: And do not release events on key release, as Super is
+	  both a modifier and a regular key that repeats, it breaks when used
+	  as a modifier (Bug #4959).
+
+2009-02-19	olivier
+
 	* src/events.c: Use timestamp provided by the event itself to 
 	  release queued events (Bug #4959).
 

Modified: xfwm4/trunk/src/events.c
===================================================================
--- xfwm4/trunk/src/events.c	2009-02-19 21:59:36 UTC (rev 29518)
+++ xfwm4/trunk/src/events.c	2009-02-20 12:37:26 UTC (rev 29519)
@@ -297,11 +297,10 @@
     TRACE ("entering handleKeyEvent");
 
     ev_screen_info = myDisplayGetScreenFromRoot (display_info, ev->root);
+    XAllowEvents (display_info->dpy, AsyncKeyboard, ev->time);
+
     if (!ev_screen_info)
     {
-        /* Release queued events */
-        XAllowEvents (display_info->dpy, SyncKeyboard, ev->time);
-
         return EVENT_FILTER_PASS;
     }
 
@@ -402,10 +401,9 @@
                 }
                 break;
             case KEY_POPUP_MENU:
-                XAllowEvents (display_info->dpy, SyncKeyboard, CurrentTime);
                 show_window_menu (c, frameX (c) + frameLeft (c),
                                      frameY (c) + frameTop (c),
-                                     Button1, GDK_CURRENT_TIME);
+                                     Button1, ev->time);
                 break;
             case KEY_FILL_WINDOW:
                 clientFill (c, CLIENT_FILL);
@@ -510,9 +508,6 @@
             break;
     }
 
-    /* Release queued events */
-    XAllowEvents (display_info->dpy, SyncKeyboard, ev->time);
-
     return status;
 }
 
@@ -520,10 +515,13 @@
 handleKeyRelease (DisplayInfo *display_info, XKeyEvent * ev)
 {
     TRACE ("entering handleKeyRelease");
-
-    /* Release queued events */
-    XAllowEvents (display_info->dpy, SyncKeyboard, ev->time);
-
+#if 0
+    /*
+     * Do not release queued events here, that breaks with keys
+     * that are both modifier and regular key as they repeat
+     */
+    XAllowEvents (display_info->dpy, AsyncKeyboard, ev->time);
+#endif
     return EVENT_FILTER_PASS;
 }
 




More information about the Xfce4-commits mailing list