xserver: Branch 'master' - 4 commits
Jeremy Huddleston
jeremyhu at kemper.freedesktop.org
Thu Aug 14 09:13:41 PDT 2008
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 +++-------
os/connection.c | 4
5 files changed, 57 insertions(+), 86 deletions(-)
New commits:
commit 8b9ed7dec2954d4890ddcc7c874fc0832b16495a
Author: Jeremy Huddleston <jeremyhu at freedesktop.org>
Date: Thu Aug 14 09:08:14 2008 -0700
XQuartz: Fixed a stuck modifier key bug.
(cherry picked from commit eeb6e5a9e98dcf045ec230f160d5992080dceba6)
diff --git a/hw/xquartz/X11Application.m b/hw/xquartz/X11Application.m
index fb3fd54..5a1f0e8 100644
--- a/hw/xquartz/X11Application.m
+++ b/hw/xquartz/X11Application.m
@@ -898,7 +898,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 1770c85374883229ec5e9685229b2333e62705e6
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.
(cherry picked from commit d207b037d2ae213369e5627a17d8831c9bc16ad8)
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 f51f77d25e69b51fa3fd557ffdb5573b61759706
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.
(cherry picked from commit b287c481e1cbe77ff84d10a708505f148a0c8434)
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 04956b80431169e0ae713a3e6ba4cdc157ce3a66
Author: Jeremy Huddleston <jeremyhu at freedesktop.org>
Date: Sat Aug 9 10:07:32 2008 -0700
Transport/Apple: Add TRANS_NOXAUTH to incoming connections when the listener is flagged as such
(cherry picked from commit ba4a7924261070ad0aff7211b7a1c9581fad4646)
diff --git a/os/connection.c b/os/connection.c
index c0bdd1a..a111fa5 100644
--- a/os/connection.c
+++ b/os/connection.c
@@ -878,6 +878,10 @@ EstablishNewConnections(ClientPtr clientUnused, pointer closure)
ErrorConnMax(new_trans_conn);
_XSERVTransClose(new_trans_conn);
}
+
+ if(trans_conn->flags & TRANS_NOXAUTH)
+ new_trans_conn->flags = new_trans_conn->flags | TRANS_NOXAUTH;
+
}
#ifndef WIN32
}
More information about the xorg-commit
mailing list