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

Jeremy Huddleston jeremyhu at kemper.freedesktop.org
Thu Aug 14 09:09:37 PDT 2008


 configure.ac                                                        |    2 
 hw/xquartz/X11Application.m                                         |    2 
 hw/xquartz/bundle/Resources/English.lproj/main.nib/designable.nib   |   23 +-
 hw/xquartz/bundle/Resources/English.lproj/main.nib/keyedobjects.nib |binary
 hw/xquartz/darwinEvents.c                                           |  114 +++-------
 hw/xquartz/quartzKeyboard.c                                         |    6 
 6 files changed, 58 insertions(+), 89 deletions(-)

New commits:
commit b9a4d27cc7a6c6658284f6911256b3a04a87740a
Author: Jeremy Huddleston <jeremyhu at freedesktop.org>
Date:   Thu Aug 14 09:09:08 2008 -0700

    1.4.2-apple8

diff --git a/configure.ac b/configure.ac
index 495fbd7..bcc39f6 100644
--- a/configure.ac
+++ b/configure.ac
@@ -26,7 +26,7 @@ dnl
 dnl Process this file with autoconf to create configure.
 
 AC_PREREQ(2.57)
-AC_INIT([xorg-server], 1.4.2-apple7, [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], xorg-server)
+AC_INIT([xorg-server], 1.4.2-apple8, [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], xorg-server)
 AC_CONFIG_SRCDIR([Makefile.am])
 AM_INIT_AUTOMAKE([dist-bzip2 foreign])
 AM_MAINTAINER_MODE
commit eeb6e5a9e98dcf045ec230f160d5992080dceba6
Author: Jeremy Huddleston <jeremyhu at freedesktop.org>
Date:   Thu Aug 14 09:08:14 2008 -0700

    XQuartz: Fixed a stuck modifier key bug.

diff --git a/hw/xquartz/X11Application.m b/hw/xquartz/X11Application.m
index 19e1f33..0783ef2 100644
--- a/hw/xquartz/X11Application.m
+++ b/hw/xquartz/X11Application.m
@@ -901,7 +901,7 @@ handle_mouse:
 		break;
 
 		case NSKeyDown: case NSKeyUp:
-			DarwinSendKeyboardEvents((type == NSKeyDown)?KeyPress:KeyRelease, [e keyCode]);
+            DarwinSendKeyboardEvents((type == NSKeyDown)?KeyPress:KeyRelease, [e keyCode]);
 		break;
 
 		case NSFlagsChanged:
diff --git a/hw/xquartz/darwinEvents.c b/hw/xquartz/darwinEvents.c
index d00c088..2b8e8de 100644
--- a/hw/xquartz/darwinEvents.c
+++ b/hw/xquartz/darwinEvents.c
@@ -151,32 +151,38 @@ static void DarwinPressModifierMask(int pressed, int mask) {
         if (keycode != 0)
             DarwinSendKeyboardEvents(pressed, keycode);
     }
-
-    ErrorF("DarwinPressModifierMask pressed=%s, mask=%d, key=%d, keycode=%d\n", pressed == KeyPress ? "press" : "release", mask, key, keycode);
 }
 
 #ifdef NX_DEVICELCTLKEYMASK
 #define CONTROL_MASK(flags) (flags & (NX_DEVICELCTLKEYMASK|NX_DEVICERCTLKEYMASK))
+#define NX_CONTROLMASK_FULL (NX_CONTROLMASK | NX_DEVICELCTLKEYMASK | NX_DEVICERCTLKEYMASK)
 #else
 #define CONTROL_MASK(flags) (NX_CONTROLMASK)
+#define NX_CONTROLMASK_FULL NX_CONTROLMASK
 #endif /* NX_DEVICELCTLKEYMASK */
 
 #ifdef NX_DEVICELSHIFTKEYMASK
 #define SHIFT_MASK(flags) (flags & (NX_DEVICELSHIFTKEYMASK|NX_DEVICERSHIFTKEYMASK))
+#define NX_SHIFTMASK_FULL (NX_SHIFTMASK | NX_DEVICELSHIFTKEYMASK | NX_DEVICERSHIFTKEYMASK)
 #else
 #define SHIFT_MASK(flags) (NX_SHIFTMASK)
+#define NX_SHIFTMASK_FULL NX_SHIFTMASK
 #endif /* NX_DEVICELSHIFTKEYMASK */
 
 #ifdef NX_DEVICELCMDKEYMASK
 #define COMMAND_MASK(flags) (flags & (NX_DEVICELCMDKEYMASK|NX_DEVICERCMDKEYMASK))
+#define NX_COMMANDMASK_FULL (NX_COMMANDMASK | NX_DEVICELCMDKEYMASK | NX_DEVICERCMDKEYMASK)
 #else
 #define COMMAND_MASK(flags) (NX_COMMANDMASK)
+#define NX_COMMANDMASK_FULL NX_COMMANDMASK
 #endif /* NX_DEVICELCMDKEYMASK */
 
 #ifdef NX_DEVICELALTKEYMASK
 #define ALTERNATE_MASK(flags) (flags & (NX_DEVICELALTKEYMASK|NX_DEVICERALTKEYMASK))
+#define NX_ALTERNATEMASK_FULL (NX_ALTERNATEMASK | NX_DEVICELALTKEYMASK | NX_DEVICERALTKEYMASK)
 #else
 #define ALTERNATE_MASK(flags) (NX_ALTERNATEMASK)
+#define NX_ALTERNATEMASK_FULL NX_ALTERNATEMASK
 #endif /* NX_DEVICELALTKEYMASK */
 
 /*
@@ -187,21 +193,19 @@ static void DarwinUpdateModifiers(
     int pressed,        // KeyPress or KeyRelease
     int flags )         // modifier flags that have changed
 {
-    fprintf(stderr, "DarwinUpdateModifiers pressed=%s, flags=%x\n", pressed == KeyPress ? "press" : "release", flags);
-    
     if (flags & NX_ALPHASHIFTMASK) {
         DarwinPressModifierMask(pressed, NX_ALPHASHIFTMASK);
     }
-    if (flags & NX_COMMANDMASK) {
+    if (flags & NX_COMMANDMASK_FULL) {
         DarwinPressModifierMask(pressed, COMMAND_MASK(flags));
     }
-    if (flags & NX_CONTROLMASK) {
+    if (flags & NX_CONTROLMASK_FULL) {
         DarwinPressModifierMask(pressed, CONTROL_MASK(flags));
     }
-    if (flags & NX_ALTERNATEMASK) {
+    if (flags & NX_ALTERNATEMASK_FULL) {
         DarwinPressModifierMask(pressed, ALTERNATE_MASK(flags));
     }
-    if (flags & NX_SHIFTMASK) {
+    if (flags & NX_SHIFTMASK_FULL) {
         DarwinPressModifierMask(pressed, SHIFT_MASK(flags));
     }
     if (flags & NX_SECONDARYFNMASK) {
commit d207b037d2ae213369e5627a17d8831c9bc16ad8
Author: Jeremy Huddleston <jeremyhu at freedesktop.org>
Date:   Thu Aug 14 07:32:37 2008 -0700

    XQuartz: Made 3-button mouse simulation a little more consistent.

diff --git a/hw/xquartz/darwinEvents.c b/hw/xquartz/darwinEvents.c
index b731c72..d00c088 100644
--- a/hw/xquartz/darwinEvents.c
+++ b/hw/xquartz/darwinEvents.c
@@ -77,7 +77,7 @@ in this Software without prior written authorization from The Open Group.
 /* FIXME: Abstract this better */
 void QuartzModeEQInit(void);
 
-static int old_flags = 0;  // last known modifier state
+static int modifier_flags = 0;  // last known modifier state
 
 #define FD_ADD_MAX 128
 static int fd_add[FD_ADD_MAX];
@@ -140,19 +140,19 @@ static inline void darwinEvents_unlock(void) {
 
 /*
  * DarwinPressModifierMask
- *  Press or release the given modifier key, specified by its mask.
+ * Press or release the given modifier key, specified by its mask (one of NX_*MASK constants)
  */
-static void DarwinPressModifierMask(
-    int pressed,				    
-    int mask)       // one of NX_*MASK constants
-{
+static void DarwinPressModifierMask(int pressed, int mask) {
+    int keycode;
     int key = DarwinModifierNXMaskToNXKey(mask);
 
     if (key != -1) {
-        int keycode = DarwinModifierNXKeyToNXKeycode(key, 0);
+        keycode = DarwinModifierNXKeyToNXKeycode(key, 0);
         if (keycode != 0)
-	  DarwinSendKeyboardEvents(pressed, keycode);
+            DarwinSendKeyboardEvents(pressed, keycode);
     }
+
+    ErrorF("DarwinPressModifierMask pressed=%s, mask=%d, key=%d, keycode=%d\n", pressed == KeyPress ? "press" : "release", mask, key, keycode);
 }
 
 #ifdef NX_DEVICELCTLKEYMASK
@@ -187,6 +187,8 @@ static void DarwinUpdateModifiers(
     int pressed,        // KeyPress or KeyRelease
     int flags )         // modifier flags that have changed
 {
+    fprintf(stderr, "DarwinUpdateModifiers pressed=%s, flags=%x\n", pressed == KeyPress ? "press" : "release", flags);
+    
     if (flags & NX_ALPHASHIFTMASK) {
         DarwinPressModifierMask(pressed, NX_ALPHASHIFTMASK);
     }
@@ -214,45 +216,10 @@ static void DarwinUpdateModifiers(
  * are held down during a "context" switch -- otherwise, we would miss the KeyUp.
  */
 static void DarwinReleaseModifiers(void) {
+    ErrorF("DarwinReleaseModifiers\n");
 	DarwinUpdateModifiers(KeyRelease, COMMAND_MASK(-1) | CONTROL_MASK(-1) | ALTERNATE_MASK(-1) | SHIFT_MASK(-1));
 }
 
-/*
- * DarwinSimulateMouseClick
- *  Send a mouse click to X when multiple mouse buttons are simulated
- *  with modifier-clicks, such as command-click for button 2. The dix
- *  layer is told that the previously pressed modifier key(s) are
- *  released, the simulated click event is sent. After the mouse button
- *  is released, the modifier keys are reverted to their actual state,
- *  which may or may not be pressed at that point. This is usually
- *  closest to what the user wants. Ie. the user typically wants to
- *  simulate a button 2 press instead of Command-button 2.
- */
-static void DarwinSimulateMouseClick(
-    int pointer_x,
-    int pointer_y,
-    float pressure,
-    float tilt_x,
-    float tilt_y,
-    int whichButton,    // mouse button to be pressed
-    int modifierMask)   // modifiers used for the fake click
-{
-    // first fool X into forgetting about the keys
-	// for some reason, it's not enough to tell X we released the Command key -- 
-	// it has to be the *left* Command key.
-	if (modifierMask & NX_COMMANDMASK) modifierMask |=NX_DEVICELCMDKEYMASK ;
-    DarwinUpdateModifiers(KeyRelease, modifierMask);
-
-    // push the mouse button
-    DarwinSendPointerEvents(ButtonPress, whichButton, pointer_x, pointer_y, 
-			    pressure, tilt_x, tilt_y);
-    DarwinSendPointerEvents(ButtonRelease, whichButton, pointer_x, pointer_y, 
-			    pressure, tilt_x, tilt_y);
-
-    // restore old modifiers
-    DarwinUpdateModifiers(KeyPress, modifierMask);
-}
-
 /* Generic handler for Xquartz-specifc events.  When possible, these should
    be moved into their own individual functions and set as handlers using
    mieqSetHandler. */
@@ -475,7 +442,6 @@ static void DarwinPrepareValuators(int *valuators, ScreenPtr screen,
 void DarwinSendPointerEvents(int ev_type, int ev_button, int pointer_x, int pointer_y, 
 			     float pressure, float tilt_x, float tilt_y) {
 	static int darwinFakeMouseButtonDown = 0;
-	static int darwinFakeMouseButtonMask = 0;
 	int i, num_events;
 	DeviceIntPtr dev;
     ScreenPtr screen;
@@ -499,35 +465,27 @@ void DarwinSendPointerEvents(int ev_type, int ev_button, int pointer_x, int poin
         return;
     }
 
+    /* Handle fake click */
 	if (ev_type == ButtonPress && darwinFakeButtons && ev_button == 1) {
-		// Mimic multi-button mouse with modifier-clicks
-		// If both sets of modifiers are pressed,
-		// button 2 is clicked.
-		if ((old_flags & darwinFakeMouse2Mask) == darwinFakeMouse2Mask) {
-			DarwinSimulateMouseClick(pointer_x, pointer_y, pressure, 
-			       tilt_x, tilt_y, 2, darwinFakeMouse2Mask);
+        if(darwinFakeMouseButtonDown != 0) {
+            /* We're currently "down" with another button, so release it first */
+            DarwinSendPointerEvents(ButtonRelease, darwinFakeMouseButtonDown, pointer_x, pointer_y, pressure, tilt_x, tilt_y);
+            darwinFakeMouseButtonDown=0;
+        }
+		if ((modifier_flags & darwinFakeMouse2Mask) == darwinFakeMouse2Mask) {
+            ev_button = 2;
 			darwinFakeMouseButtonDown = 2;
-			darwinFakeMouseButtonMask = darwinFakeMouse2Mask;
-			return;
-		} else if ((old_flags & darwinFakeMouse3Mask) == darwinFakeMouse3Mask) {
-			DarwinSimulateMouseClick(pointer_x, pointer_y, pressure, 
-			       tilt_x, tilt_y, 3, darwinFakeMouse3Mask);
+		} else if ((modifier_flags & darwinFakeMouse3Mask) == darwinFakeMouse3Mask) {
+            ev_button = 3;
 			darwinFakeMouseButtonDown = 3;
-			darwinFakeMouseButtonMask = darwinFakeMouse3Mask;
-			return;
 		}
 	}
 
-	if (ev_type == ButtonRelease && darwinFakeButtons && darwinFakeMouseButtonDown) {
-		// If last mousedown was a fake click, don't check for
-		// mouse modifiers here. The user may have released the
-		// modifiers before the mouse button.
-		ev_button = darwinFakeMouseButtonDown;
-		darwinFakeMouseButtonDown = 0;
-		// Bring modifiers back up to date
-		DarwinUpdateModifiers(KeyPress, darwinFakeMouseButtonMask & old_flags);
-		darwinFakeMouseButtonMask = 0;
-		return;
+	if (ev_type == ButtonRelease && ev_button == 1) {
+        if(darwinFakeMouseButtonDown) {
+            ev_button = darwinFakeMouseButtonDown;
+            darwinFakeMouseButtonDown = 0;
+        }
 	}
 
     DarwinPrepareValuators(valuators, screen, pointer_x, pointer_y, pressure, tilt_x, tilt_y);
@@ -547,7 +505,7 @@ void DarwinSendKeyboardEvents(int ev_type, int keycode) {
 		return;
 	}
 
-	if (old_flags == 0 && darwinSyncKeymap && darwinKeymapFile == NULL) {
+	if (modifier_flags == 0 && darwinSyncKeymap && darwinKeymapFile == NULL) {
 		/* See if keymap has changed. */
 
 		static unsigned int last_seed;
@@ -627,9 +585,9 @@ void DarwinSendScrollEvents(float count_x, float count_y,
 /* Send the appropriate KeyPress/KeyRelease events to GetKeyboardEvents to
    reflect changing modifier flags (alt, control, meta, etc) */
 void DarwinUpdateModKeys(int flags) {
-	DarwinUpdateModifiers(KeyRelease, old_flags & ~flags);
-	DarwinUpdateModifiers(KeyPress, ~old_flags & flags);
-	old_flags = flags;
+	DarwinUpdateModifiers(KeyRelease, modifier_flags & ~flags);
+	DarwinUpdateModifiers(KeyPress, ~modifier_flags & flags);
+	modifier_flags = flags;
 }
 
 /*
commit b287c481e1cbe77ff84d10a708505f148a0c8434
Author: Jeremy Huddleston <jeremyhu at freedesktop.org>
Date:   Wed Aug 13 19:09:05 2008 -0700

    XQuartz: Reverted "Control" text to be accurately "Command" in the input prefs.

diff --git a/hw/xquartz/bundle/Resources/English.lproj/main.nib/designable.nib b/hw/xquartz/bundle/Resources/English.lproj/main.nib/designable.nib
index 8357655..fd7d85a 100644
--- a/hw/xquartz/bundle/Resources/English.lproj/main.nib/designable.nib
+++ b/hw/xquartz/bundle/Resources/English.lproj/main.nib/designable.nib
@@ -2,12 +2,13 @@
 <archive type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="7.02">
 	<data>
 		<int key="IBDocument.SystemTarget">1050</int>
-		<string key="IBDocument.SystemVersion">9E17</string>
+		<string key="IBDocument.SystemVersion">9F10</string>
 		<string key="IBDocument.InterfaceBuilderVersion">670</string>
-		<string key="IBDocument.AppKitVersion">949.33</string>
+		<string key="IBDocument.AppKitVersion">949.34</string>
 		<string key="IBDocument.HIToolboxVersion">352.00</string>
 		<object class="NSMutableArray" key="IBDocument.EditedObjectIDs">
 			<bool key="EncodedWithXMLCoder">YES</bool>
+			<integer value="351"/>
 		</object>
 		<object class="NSArray" key="IBDocument.PluginDependencies">
 			<bool key="EncodedWithXMLCoder">YES</bool>
@@ -456,7 +457,7 @@
 				<string key="NSWindowContentMaxSize">{3.40282e+38, 3.40282e+38}</string>
 				<string key="NSWindowContentMinSize">{320, 240}</string>
 				<object class="NSView" key="NSWindowView" id="941366957">
-					<nil key="NSNextResponder"/>
+					<reference key="NSNextResponder"/>
 					<int key="NSvFlags">256</int>
 					<object class="NSMutableArray" key="NSSubviews">
 						<bool key="EncodedWithXMLCoder">YES</bool>
@@ -472,7 +473,7 @@
 										<characters key="NS.bytes">1</characters>
 									</object>
 									<object class="NSView" key="NSView" id="596750588">
-										<nil key="NSNextResponder"/>
+										<reference key="NSNextResponder" ref="448510093"/>
 										<int key="NSvFlags">256</int>
 										<object class="NSMutableArray" key="NSSubviews">
 											<bool key="EncodedWithXMLCoder">YES</bool>
@@ -548,7 +549,7 @@
 												<object class="NSTextFieldCell" key="NSCell" id="649334366">
 													<int key="NSCellFlags">67239424</int>
 													<int key="NSCellFlags2">4194304</int>
-													<string type="base64-UTF8" key="NSContents">SG9sZCBPcHRpb24gb3IgQ29udHJvbCB3aGlsZSBjbGlja2luZyB0byBhY3RpdmF0ZSB0aGUgbWlkZGxl
+													<string type="base64-UTF8" key="NSContents">SG9sZCBPcHRpb24gb3IgQ29tbWFuZCB3aGlsZSBjbGlja2luZyB0byBhY3RpdmF0ZSB0aGUgbWlkZGxl
 IG9yIHJpZ2h0IG1vdXNlIGJ1dHRvbnMuCg</string>
 													<reference key="NSSupport" ref="26"/>
 													<reference key="NSControlView" ref="282885445"/>
@@ -616,6 +617,7 @@ IG9yIHJpZ2h0IG1vdXNlIGJ1dHRvbnMuCg</string>
 											</object>
 										</object>
 										<string key="NSFrame">{{10, 33}, {438, 218}}</string>
+										<reference key="NSSuperview" ref="448510093"/>
 									</object>
 									<string key="NSLabel">Input</string>
 									<reference key="NSColor" ref="57160303"/>
@@ -839,7 +841,7 @@ IG9yIHJpZ2h0IG1vdXNlIGJ1dHRvbnMuCg</string>
 										<characters key="NS.bytes">2</characters>
 									</object>
 									<object class="NSView" key="NSView" id="184765684">
-										<reference key="NSNextResponder" ref="448510093"/>
+										<nil key="NSNextResponder"/>
 										<int key="NSvFlags">256</int>
 										<object class="NSMutableArray" key="NSSubviews">
 											<bool key="EncodedWithXMLCoder">YES</bool>
@@ -956,7 +958,6 @@ IG9yIHJpZ2h0IG1vdXNlIGJ1dHRvbnMuCg</string>
 											</object>
 										</object>
 										<string key="NSFrame">{{10, 33}, {438, 218}}</string>
-										<reference key="NSSuperview" ref="448510093"/>
 									</object>
 									<string key="NSLabel">Windows</string>
 									<reference key="NSColor" ref="57160303"/>
@@ -1068,18 +1069,19 @@ d2hpY2ggbWF5IHByZXZlbnQgWDExIGFwcGxpY2F0aW9ucyBmcm9tIGxhdW5jaGluZy4</string>
 									<reference key="NSTabView" ref="448510093"/>
 								</object>
 							</object>
-							<reference key="NSSelectedTabViewItem" ref="10973343"/>
+							<reference key="NSSelectedTabViewItem" ref="287591690"/>
 							<reference key="NSFont" ref="463863101"/>
 							<int key="NSTvFlags">0</int>
 							<bool key="NSAllowTruncatedLabels">YES</bool>
 							<bool key="NSDrawsBackground">YES</bool>
 							<object class="NSMutableArray" key="NSSubviews">
 								<bool key="EncodedWithXMLCoder">YES</bool>
-								<reference ref="184765684"/>
+								<reference ref="596750588"/>
 							</object>
 						</object>
 					</object>
 					<string key="NSFrameSize">{484, 280}</string>
+					<reference key="NSSuperview"/>
 				</object>
 				<string key="NSScreenRect">{{0, 0}, {1280, 938}}</string>
 				<string key="NSMinSize">{213, 129}</string>
@@ -1315,6 +1317,7 @@ d2hpY2ggbWF5IHByZXZlbnQgWDExIGFwcGxpY2F0aW9ucyBmcm9tIGxhdW5jaGluZy4</string>
 									</object>
 									<string key="NSFrame">{{1, 17}, {301, 198}}</string>
 									<reference key="NSSuperview" ref="1063387772"/>
+									<reference key="NSNextKeyView" ref="905092943"/>
 									<reference key="NSDocView" ref="905092943"/>
 									<reference key="NSBGColor" ref="812484075"/>
 									<int key="NScvFlags">4</int>
@@ -1347,6 +1350,7 @@ d2hpY2ggbWF5IHByZXZlbnQgWDExIGFwcGxpY2F0aW9ucyBmcm9tIGxhdW5jaGluZy4</string>
 									</object>
 									<string key="NSFrame">{{1, 0}, {301, 17}}</string>
 									<reference key="NSSuperview" ref="1063387772"/>
+									<reference key="NSNextKeyView" ref="792419186"/>
 									<reference key="NSDocView" ref="792419186"/>
 									<reference key="NSBGColor" ref="812484075"/>
 									<int key="NScvFlags">4</int>
@@ -1355,6 +1359,7 @@ d2hpY2ggbWF5IHByZXZlbnQgWDExIGFwcGxpY2F0aW9ucyBmcm9tIGxhdW5jaGluZy4</string>
 							</object>
 							<string key="NSFrame">{{20, 20}, {318, 231}}</string>
 							<reference key="NSSuperview" ref="85544634"/>
+							<reference key="NSNextKeyView" ref="580565898"/>
 							<int key="NSsFlags">50</int>
 							<reference key="NSVScroller" ref="842897584"/>
 							<reference key="NSHScroller" ref="17278747"/>
diff --git a/hw/xquartz/bundle/Resources/English.lproj/main.nib/keyedobjects.nib b/hw/xquartz/bundle/Resources/English.lproj/main.nib/keyedobjects.nib
index aaaf0c2..fc82ba0 100644
Binary files a/hw/xquartz/bundle/Resources/English.lproj/main.nib/keyedobjects.nib and b/hw/xquartz/bundle/Resources/English.lproj/main.nib/keyedobjects.nib differ
commit f3d478148cf832eed9dca9a8400de58d204ad4cf
Author: Jeremy Huddleston <jeremyhu at freedesktop.org>
Date:   Wed Aug 13 10:12:15 2008 -0700

    1.4.2-apple7

diff --git a/configure.ac b/configure.ac
index 2dca9ec..495fbd7 100644
--- a/configure.ac
+++ b/configure.ac
@@ -26,7 +26,7 @@ dnl
 dnl Process this file with autoconf to create configure.
 
 AC_PREREQ(2.57)
-AC_INIT([xorg-server], 1.4.2-apple6, [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], xorg-server)
+AC_INIT([xorg-server], 1.4.2-apple7, [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], xorg-server)
 AC_CONFIG_SRCDIR([Makefile.am])
 AM_INIT_AUTOMAKE([dist-bzip2 foreign])
 AM_MAINTAINER_MODE
diff --git a/hw/xquartz/quartzKeyboard.c b/hw/xquartz/quartzKeyboard.c
index 0bfb50b..b721085 100644
--- a/hw/xquartz/quartzKeyboard.c
+++ b/hw/xquartz/quartzKeyboard.c
@@ -1168,12 +1168,13 @@ Bool QuartzReadSystemKeymap(darwinKeyboardInfo *info) {
     int is_uchr = 1, i, j;
     OSStatus err;
     KeySym *k;
+    CFDataRef currentKeyLayoutDataRef = NULL;
 
     TISInputSourceRef currentKeyLayoutRef = TISCopyCurrentKeyboardLayoutInputSource();
     keyboard_type = LMGetKbdType();
 
     if (currentKeyLayoutRef) {
-      CFDataRef currentKeyLayoutDataRef = (CFDataRef )TISGetInputSourceProperty(currentKeyLayoutRef, kTISPropertyUnicodeKeyLayoutData);
+      currentKeyLayoutDataRef = (CFDataRef )TISGetInputSourceProperty(currentKeyLayoutRef, kTISPropertyUnicodeKeyLayoutData);
       if (currentKeyLayoutDataRef)
           chr_data = CFDataGetBytePtr(currentKeyLayoutDataRef);
     }
@@ -1181,7 +1182,8 @@ Bool QuartzReadSystemKeymap(darwinKeyboardInfo *info) {
 #if __MAC_OS_X_VERSION_MIN_REQUIRED < 1060
     if (chr_data == NULL) {
         ErrorF("X11.app: Error detected in determining keyboard layout.  Please report this error at http://xquartz.macosforge.org\n");
-        ErrorF("X11.app: Debug Info: currentKeyLayoutRef=%p, chr_data=%p\n", currentKeyLayoutRef, chr_data);
+        ErrorF("X11.app: Debug Info: keyboard_type=%u, currentKeyLayoutRef=%p, currentKeyLayoutDataRef=%p, chr_data=%p\n",
+               keyboard_type, currentKeyLayoutRef, currentKeyLayoutDataRef, chr_data);
 
         KLGetCurrentKeyboardLayout (&key_layout);
         KLGetKeyboardLayoutProperty (key_layout, kKLuchrData, &chr_data);


More information about the xorg-commit mailing list