Prechádzať zdrojové kódy

[X11] Ignore both NotifyGrab and NotifyUngrab modes in FocusIn/FocusOut events

Gabriel Jacobo 12 rokov pred
rodič
commit
15a3bbcbd9
1 zmenil súbory, kde vykonal 10 pridanie a 2 odobranie
  1. 10 2
      src/video/x11/SDL_x11events.c

+ 10 - 2
src/video/x11/SDL_x11events.c

@@ -399,6 +399,14 @@ X11_DispatchEvent(_THIS)
 
         /* Gaining input focus? */
     case FocusIn:{
+            if (xevent.xfocus.mode == NotifyGrab || xevent.xfocus.mode == NotifyUngrab) {
+                /* Someone is handling a global hotkey, ignore it */
+#ifdef DEBUG_XEVENTS
+                printf("window %p: FocusIn (NotifyGrab/NotifyUngrab, ignoring)\n", data);
+#endif
+                break;
+            }
+
             if (xevent.xfocus.detail == NotifyInferior) {
 #ifdef DEBUG_XEVENTS
                 printf("window %p: FocusIn (NotifierInferior, ignoring)\n", data);
@@ -428,10 +436,10 @@ X11_DispatchEvent(_THIS)
 
         /* Losing input focus? */
     case FocusOut:{
-            if (xevent.xfocus.mode == NotifyGrab) {
+            if (xevent.xfocus.mode == NotifyGrab || xevent.xfocus.mode == NotifyUngrab) {
                 /* Someone is handling a global hotkey, ignore it */
 #ifdef DEBUG_XEVENTS
-                printf("window %p: FocusOut (NotifyGrab, ignoring)\n", data);
+                printf("window %p: FocusOut (NotifyGrab/NotifyUngrab, ignoring)\n", data);
 #endif
                 break;
             }