xserver: Branch 'xorg-server-1.4-apple'

Jeremy Huddleston jeremyhu at kemper.freedesktop.org
Tue Aug 26 19:14:13 PDT 2008


 hw/xquartz/X11Application.m |   46 +++++++++++++++++++++++++-------------------
 1 file changed, 27 insertions(+), 19 deletions(-)

New commits:
commit e7658e745f8a3eaf5cec9f54a8a1b7e5a7708e09
Author: Jeremy Huddleston <jeremyhu at freedesktop.org>
Date:   Tue Aug 26 19:13:56 2008 -0700

    XQuartz: Use new Xplugin API to determine if a keypress event corresponds to an OS-X hotkey that we should dispatch to Appkit.

diff --git a/hw/xquartz/X11Application.m b/hw/xquartz/X11Application.m
index 5e1e96b..cb476c5 100644
--- a/hw/xquartz/X11Application.m
+++ b/hw/xquartz/X11Application.m
@@ -47,6 +47,8 @@
 #include <mach/mach.h>
 #include <unistd.h>
 
+#include <Xplugin.h>
+
 #define DEFAULTS_FILE "/usr/X11/lib/X11/xserver/Xquartz.plist"
 
 #ifndef XSERVER_VERSION
@@ -221,34 +223,40 @@ static void message_kit_thread (SEL selector, NSObject *arg) {
             break;
             
         case NSKeyDown: case NSKeyUp:
-            if(darwinAppKitModMask & [e modifierFlags]) {
-                /* Override to force sending to Appkit */
-                for_x = NO;
-            } else if (_x_active) {
+            
+            if(_x_active) {
                 static int swallow_up;
                 
-                /* No kit window is focused, so send it to X. */
-                for_appkit = NO;
-                if ([e type] == NSKeyDown) {
+                if([e type] == NSKeyDown) {
                     /* Before that though, see if there are any global
                      shortcuts bound to it. */
-                    
-                    if (X11EnableKeyEquivalents
-                        && [[self mainMenu] performKeyEquivalent:e]) {
+
+                    if(darwinAppKitModMask & [e modifierFlags]) {
+                        /* Override to force sending to Appkit */
                         swallow_up = [e keyCode];
                         for_x = NO;
-                    } else if (!quartzEnableRootless
-                               && ([e modifierFlags] & ALL_KEY_MASKS)
-                               == (NSCommandKeyMask | NSAlternateKeyMask)
-                               && ([e keyCode] == 0 /*a*/
-                                   || [e keyCode] == 53 /*Esc*/)) {
-                        swallow_up = 0;
+#if 0
+                    } else if(!quartzEnableRootless
+                              && ([e modifierFlags] & ALL_KEY_MASKS) == (NSCommandKeyMask | NSAlternateKeyMask)
+                              && ([e keyCode] == 0 /*a*/ || [e keyCode] == 53 /*Esc*/)) {
+                        swallow_up = [e keyCode];
                         for_x = NO;
-#ifdef DARWIN_DDX_MISSING
                         DarwinSendDDXEvent(kXquartzToggleFullscreen, 0);
 #endif
+                    } else if(X11EnableKeyEquivalents &&
+#if XPLUGIN_VERSION >= 4
+                              xp_is_symbolic_hotkey_event([e eventRef])) {
+#else
+                              [[self mainMenu] performKeyEquivalent:e]) {
+                        for_appkit = NO;
+#endif
+                        swallow_up = [e keyCode];
+                        for_x = NO;
+                    } else {
+                        /* No kit window is focused, so send it to X. */
+                        for_appkit = NO;
                     }
-                } else {
+                } else { /* KeyUp */
                     /* If we saw a key equivalent on the down, don't pass
                      the up through to X. */
                     
@@ -257,7 +265,7 @@ static void message_kit_thread (SEL selector, NSObject *arg) {
                         for_x = NO;
                     }
                 }
-            } else {
+            } else { /* !_x_active */
                 for_x = NO;
             }
             break;


More information about the xorg-commit mailing list