xserver: Branch 'server-1.11-branch' - 9 commits
Jeremy Huddleston
jeremyhu at kemper.freedesktop.org
Mon Jan 2 17:59:56 PST 2012
Xext/xselinux_ext.c | 6 ------
Xi/exevents.c | 2 +-
Xi/xichangehierarchy.c | 28 ++++++++++++++++++++++++++++
Xi/xipassivegrab.c | 10 ++++++++--
xfixes/cursor.c | 4 ++--
5 files changed, 39 insertions(+), 11 deletions(-)
New commits:
commit 82e0ae042379181eb143431e1413084432a17079
Merge: f9b00c2... 4e4bb31...
Author: Jeremy Huddleston <jeremyhu at apple.com>
Date: Mon Jan 2 20:58:22 2012 -0500
Merge remote-tracking branch 'whot/server-1.11-branch' into server-1.11-branch
diff --cc Xi/xichangehierarchy.c
index dfcd52f,3facadd..4a15d5c
--- a/Xi/xichangehierarchy.c
+++ b/Xi/xichangehierarchy.c
@@@ -202,20 -202,20 +202,33 @@@ unwind
return rc;
}
+ static void
+ disable_clientpointer(DeviceIntPtr dev)
+ {
+ int i;
+
+ for (i = 0; i < currentMaxClients; i++)
+ {
+ ClientPtr client = clients[i];
+ if (client && client->clientPtr == dev)
+ client->clientPtr = NULL;
+ }
+ }
+
static int
+disable_clientpointer(DeviceIntPtr dev)
+{
+ int i;
+
+ for (i = 0; i < currentMaxClients; i++)
+ {
+ ClientPtr client = clients[i];
+ if (client && client->clientPtr == dev)
+ client->clientPtr = NULL;
+ }
+}
+
+static int
remove_master(ClientPtr client, xXIRemoveMasterInfo *r,
int flags[MAXDEVICES])
{
commit 4e4bb319a4f9510277557f65676948cd1db10e93
Author: Carlos Garnacho <carlosg at gnome.org>
Date: Tue Dec 13 15:41:23 2011 +0100
Xi: assign correct grab_mode/other_device_mode in XI2 passive grabs
CreateGrab() expects the keyboard mode to be stored in grab_mode, and the
pointer mode in other_device_mode, so respect this in passive XI2 grabs,
and switch modes if needed.
Signed-off-by: Carlos Garnacho <carlosg at gnome.org>
Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
Reviewed-by: Chase Douglas <chase.douglas at canonical.com>
(cherry picked from commit 5b169cb695bd450d7f64e3800f00c9237ee67f96)
diff --git a/Xi/xipassivegrab.c b/Xi/xipassivegrab.c
index 5cdd8ac..af46282 100644
--- a/Xi/xipassivegrab.c
+++ b/Xi/xipassivegrab.c
@@ -140,11 +140,17 @@ ProcXIPassiveGrabDevice(ClientPtr client)
memset(¶m, 0, sizeof(param));
param.grabtype = GRABTYPE_XI2;
param.ownerEvents = stuff->owner_events;
- param.this_device_mode = stuff->grab_mode;
- param.other_devices_mode = stuff->paired_device_mode;
param.grabWindow = stuff->grab_window;
param.cursor = stuff->cursor;
+ if (IsKeyboardDevice(dev)) {
+ param.this_device_mode = stuff->grab_mode;
+ param.other_devices_mode = stuff->paired_device_mode;
+ } else {
+ param.this_device_mode = stuff->paired_device_mode;
+ param.other_devices_mode = stuff->grab_mode;
+ }
+
if (stuff->cursor != None)
{
status = dixLookupResourceByType(&tmp, stuff->cursor,
commit 8c73f6bcbdc04380cc41d9f6dc7e849c7c4f9298
Author: Alan Coopersmith <alan.coopersmith at oracle.com>
Date: Thu Dec 8 21:52:07 2011 -0800
Change disable_clientpointer return type to void
It doesn't return anything, nor does it's caller expect it to.
Fixes Solaris Studio compiler error:
"xichangehierarchy.c", line 214: Function has no return statement : disable_clientpointer
Signed-off-by: Alan Coopersmith <alan.coopersmith at oracle.com>
Reviewed-by: Peter Hutterer <peter.hutterer at who-t.net>
Signed-off-by: Keith Packard <keithp at keithp.com>
(cherry picked from commit 372a6f10dc2d74d2d179e8b92449e9b8636a99ef)
diff --git a/Xi/xichangehierarchy.c b/Xi/xichangehierarchy.c
index dfcd52f..3facadd 100644
--- a/Xi/xichangehierarchy.c
+++ b/Xi/xichangehierarchy.c
@@ -202,7 +202,7 @@ unwind:
return rc;
}
-static int
+static void
disable_clientpointer(DeviceIntPtr dev)
{
int i;
commit ae4272a5742119b10074a542d0dcd4c493cb83e4
Author: Peter Hutterer <peter.hutterer at who-t.net>
Date: Wed Nov 30 09:06:06 2011 +1000
xfixes: don't dereference a NULL cursor
If the new cursor is the NULL cursor, don't dereference it and use zeros
instead.
Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
Reviewed-by: Jeremy Huddleston <jeremyhu at apple.com>
(cherry picked from commit 1ab50be938524dcd4a9e56d27e3b96a27c2db2c0)
diff --git a/xfixes/cursor.c b/xfixes/cursor.c
index ecbed40..7b01c8b 100644
--- a/xfixes/cursor.c
+++ b/xfixes/cursor.c
@@ -179,9 +179,9 @@ CursorDisplayCursor (DeviceIntPtr pDev,
ev.type = XFixesEventBase + XFixesCursorNotify;
ev.subtype = XFixesDisplayCursorNotify;
ev.window = e->pWindow->drawable.id;
- ev.cursorSerial = pCursor->serialNumber;
+ ev.cursorSerial = pCursor ? pCursor->serialNumber : 0;
ev.timestamp = currentTime.milliseconds;
- ev.name = pCursor->name;
+ ev.name = pCursor ? pCursor->name : None;
WriteEventsToClient (e->pClient, 1, (xEvent *) &ev);
}
}
commit 20efd3c15829d8fbb3610d5af41b67a627e63d21
Author: Peter Hutterer <peter.hutterer at who-t.net>
Date: Tue Nov 29 16:15:37 2011 +1000
Xi: when removing a device, reset ClientPointers where needed
if a client had the to-be-removed device as ClientPointer, reset to NULL.
Fixes #43165
Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
Reviewed-by: Jeremy Huddleston <jeremyhu at apple.com>
(cherry picked from commit d2ebbcdaf6b13d70eee704b1764ff349e1be22a0)
diff --git a/Xi/xichangehierarchy.c b/Xi/xichangehierarchy.c
index 96ead6f..dfcd52f 100644
--- a/Xi/xichangehierarchy.c
+++ b/Xi/xichangehierarchy.c
@@ -203,6 +203,19 @@ unwind:
}
static int
+disable_clientpointer(DeviceIntPtr dev)
+{
+ int i;
+
+ for (i = 0; i < currentMaxClients; i++)
+ {
+ ClientPtr client = clients[i];
+ if (client && client->clientPtr == dev)
+ client->clientPtr = NULL;
+ }
+}
+
+static int
remove_master(ClientPtr client, xXIRemoveMasterInfo *r,
int flags[MAXDEVICES])
{
@@ -252,6 +265,8 @@ remove_master(ClientPtr client, xXIRemoveMasterInfo *r,
if (rc != Success)
goto unwind;
+ disable_clientpointer(ptr);
+
/* Disabling sends the devices floating, reattach them if
* desired. */
if (r->return_mode == XIAttachToMaster)
commit cf296f2eeffe4b438e9378268f84a1f63c555e52
Author: Peter Hutterer <peter.hutterer at who-t.net>
Date: Wed Nov 9 15:31:10 2011 +1000
Xext: don't swap CARD8 in SProcSELinuxQueryVersion
xselinux_ext.c: In function 'SELinuxSendItemsToClient':
xselinux_ext.c:340:16: warning: unused variable 'n' [-Wunused-variable]
xselinux_ext.c: In function 'SProcSELinuxQueryVersion':
xselinux_ext.c:532:62: error: call to 'wrong_size' declared with attribute
error: wrong sized variable passed to swap
xselinux_ext.c:533:62: error: call to 'wrong_size' declared with attribute
error: wrong sized variable passed to swap
Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
Reviewed-by: Julien Cristau <jcristau at debian.org>
(cherry picked from commit bb4aa1f263ad38c175bfda3b7e6c325260ce3f28)
Conflicts:
Xext/xselinux_ext.c
diff --git a/Xext/xselinux_ext.c b/Xext/xselinux_ext.c
index 374571c..85ca2dc 100644
--- a/Xext/xselinux_ext.c
+++ b/Xext/xselinux_ext.c
@@ -528,12 +528,6 @@ ProcSELinuxDispatch(ClientPtr client)
static int
SProcSELinuxQueryVersion(ClientPtr client)
{
- REQUEST(SELinuxQueryVersionReq);
- int n;
-
- REQUEST_SIZE_MATCH(SELinuxQueryVersionReq);
- swaps(&stuff->client_major, n);
- swaps(&stuff->client_minor, n);
return ProcSELinuxQueryVersion(client);
}
commit 4b386610243b1a30db7e4cdb89cb43012198407d
Author: Peter Hutterer <peter.hutterer at who-t.net>
Date: Fri Dec 16 12:41:08 2011 +1000
dix: button state must show the logical buttons, not physical buttons
If the device is mapped 3 2 1, a click on physical button 1 sends a button 3
press, but the state was set for button 1. Fix this, the state must be set
for that button's logical mapping.
https://bugzilla.gnome.org/show_bug.cgi?id=655928
Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
(cherry picked from commit 9567d21e85b99febe805263a4d93b15fd1f7ab42)
Conflicts:
dix/inpututils.c
diff --git a/Xi/exevents.c b/Xi/exevents.c
index dcb496f..9d43564 100644
--- a/Xi/exevents.c
+++ b/Xi/exevents.c
@@ -927,7 +927,7 @@ ProcessOtherEvent(InternalEvent *ev, DeviceIntPtr device)
for (i = 0; mouse && mouse->button && i < mouse->button->numButtons; i++)
if (BitIsOn(mouse->button->down, i))
- SetBit(event->buttons, i);
+ SetBit(event->buttons, mouse->button->map[i]);
if (kbd && kbd->key)
{
commit f9b00c2aba496fe470c24d0f8d3e3d0e3b05aa65
Author: Peter Hutterer <peter.hutterer at who-t.net>
Date: Tue Nov 29 16:15:37 2011 +1000
Xi: when removing a device, reset ClientPointers where needed
if a client had the to-be-removed device as ClientPointer, reset to NULL.
Fixes #43165
Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
Reviewed-by: Jeremy Huddleston <jeremyhu at apple.com>
(cherry picked from commit d2ebbcdaf6b13d70eee704b1764ff349e1be22a0)
diff --git a/Xi/xichangehierarchy.c b/Xi/xichangehierarchy.c
index 96ead6f..dfcd52f 100644
--- a/Xi/xichangehierarchy.c
+++ b/Xi/xichangehierarchy.c
@@ -203,6 +203,19 @@ unwind:
}
static int
+disable_clientpointer(DeviceIntPtr dev)
+{
+ int i;
+
+ for (i = 0; i < currentMaxClients; i++)
+ {
+ ClientPtr client = clients[i];
+ if (client && client->clientPtr == dev)
+ client->clientPtr = NULL;
+ }
+}
+
+static int
remove_master(ClientPtr client, xXIRemoveMasterInfo *r,
int flags[MAXDEVICES])
{
@@ -252,6 +265,8 @@ remove_master(ClientPtr client, xXIRemoveMasterInfo *r,
if (rc != Success)
goto unwind;
+ disable_clientpointer(ptr);
+
/* Disabling sends the devices floating, reattach them if
* desired. */
if (r->return_mode == XIAttachToMaster)
commit e4984b3023351b5fcc506f4a196ad699db8b0535
Author: Peter Hutterer <peter.hutterer at who-t.net>
Date: Wed Nov 30 09:06:06 2011 +1000
xfixes: don't dereference a NULL cursor
If the new cursor is the NULL cursor, don't dereference it and use zeros
instead.
Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
Reviewed-by: Jeremy Huddleston <jeremyhu at apple.com>
(cherry picked from commit 1ab50be938524dcd4a9e56d27e3b96a27c2db2c0)
diff --git a/xfixes/cursor.c b/xfixes/cursor.c
index ecbed40..7b01c8b 100644
--- a/xfixes/cursor.c
+++ b/xfixes/cursor.c
@@ -179,9 +179,9 @@ CursorDisplayCursor (DeviceIntPtr pDev,
ev.type = XFixesEventBase + XFixesCursorNotify;
ev.subtype = XFixesDisplayCursorNotify;
ev.window = e->pWindow->drawable.id;
- ev.cursorSerial = pCursor->serialNumber;
+ ev.cursorSerial = pCursor ? pCursor->serialNumber : 0;
ev.timestamp = currentTime.milliseconds;
- ev.name = pCursor->name;
+ ev.name = pCursor ? pCursor->name : None;
WriteEventsToClient (e->pClient, 1, (xEvent *) &ev);
}
}
More information about the xorg-commit
mailing list