aboutsummaryrefslogtreecommitdiffstats
path: root/contrib/packages/rpm/el5/SOURCES/xserver-1.7.6-pointerkeys.patch
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/packages/rpm/el5/SOURCES/xserver-1.7.6-pointerkeys.patch')
-rw-r--r--contrib/packages/rpm/el5/SOURCES/xserver-1.7.6-pointerkeys.patch255
1 files changed, 0 insertions, 255 deletions
diff --git a/contrib/packages/rpm/el5/SOURCES/xserver-1.7.6-pointerkeys.patch b/contrib/packages/rpm/el5/SOURCES/xserver-1.7.6-pointerkeys.patch
deleted file mode 100644
index 79167a9b..00000000
--- a/contrib/packages/rpm/el5/SOURCES/xserver-1.7.6-pointerkeys.patch
+++ /dev/null
@@ -1,255 +0,0 @@
-From 08cfb3f0e91a6055072b257f2701d3ec935c14ad Mon Sep 17 00:00:00 2001
-From: Peter Hutterer <peter.hutterer@who-t.net>
-Date: Tue, 13 Apr 2010 14:41:07 +1000
-Subject: [PATCH 1/3] xkb: Post PointerKeys through the XTEST device.
-
-Posting an event through a master device may cause pointer jumps once
-lastSlave == master, caused by double scaling. To avoid this, post the fake
-event generated by XKB through the XTEST device instead.
-
-Fedora bug #560356 <https://bugzilla.redhat.com/560356>
-Tested-by: Andrew McNabb
-
-Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
-Reviewed-by: Daniel Stone <daniel@fooishbar.org>
----
- xkb/ddxDevBtn.c | 4 ++--
- 1 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/xkb/ddxDevBtn.c b/xkb/ddxDevBtn.c
-index 94630d1..3bee84b 100644
---- a/xkb/ddxDevBtn.c
-+++ b/xkb/ddxDevBtn.c
-@@ -51,13 +51,13 @@ XkbDDXFakeDeviceButton(DeviceIntPtr dev,Bool press,int button)
- /* If dev is a slave device, and the SD is attached, do nothing. If we'd
- * post through the attached master pointer we'd get duplicate events.
- *
-- * if dev is a master keyboard, post through the master pointer.
-+ * if dev is a master keyboard, post through the XTEST device
- *
- * if dev is a floating slave, post through the device itself.
- */
-
- if (IsMaster(dev))
-- ptr = GetMaster(dev, MASTER_POINTER);
-+ ptr = GetXTestDevice(GetMaster(dev, MASTER_POINTER));
- else if (!dev->u.master)
- ptr = dev;
- else
---
-1.6.6.1
-
-From f2fe7f8ef94e800be70d0a179c7b27327008d8dd Mon Sep 17 00:00:00 2001
-From: Peter Hutterer <peter.hutterer@who-t.net>
-Date: Wed, 14 Apr 2010 10:51:41 +1000
-Subject: [PATCH 2/3] xkb: Guard against SIGIO updates during PointerKeys.
-
-In theory, an event coming in during GPE could reset our lastSlave, leading
-to rather interesting events lateron.
-
-Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
-Reviewed-by: Simon Thum <simon.thum@gmx.de>
-Reviewed-by: Daniel Stone <daniel@fooishbar.org>
----
- xkb/ddxDevBtn.c | 3 ++-
- 1 files changed, 2 insertions(+), 1 deletions(-)
-
-diff --git a/xkb/ddxDevBtn.c b/xkb/ddxDevBtn.c
-index 3bee84b..b8a222d 100644
---- a/xkb/ddxDevBtn.c
-+++ b/xkb/ddxDevBtn.c
-@@ -64,11 +64,12 @@ XkbDDXFakeDeviceButton(DeviceIntPtr dev,Bool press,int button)
- return;
-
- events = InitEventList(GetMaximumEventsNum());
-+ OsBlockSignals();
- nevents = GetPointerEvents(events, ptr,
- press ? ButtonPress : ButtonRelease, button,
- 0 /* flags */, 0 /* first */,
- 0 /* num_val */, NULL);
--
-+ OsReleaseSignals();
-
- for (i = 0; i < nevents; i++)
- mieqProcessDeviceEvent(ptr, (InternalEvent*)events[i].event, NULL);
---
-1.6.6.1
-
-From ec98f743d4f04da6228e5a089515febbcf627af8 Mon Sep 17 00:00:00 2001
-From: Peter Hutterer <peter.hutterer@who-t.net>
-Date: Tue, 13 Apr 2010 14:44:59 +1000
-Subject: [PATCH 3/3] xkb: use GPE for XKB fake motion events.
-
-Section 4.6.1 of the XKB spec says that "the initial event always moves the
-cursor the distance specified in the action [...]", so skip the
-POINTER_ACCELERATE flag for GPE, it would cause double-acceleration.
-
-Potential regression - GPE expects the coordinates to be either relative or
-both. XKB in theory allows for x to be relative and y to be absolute (or
-vice versa). Let's pretend that scenario has no users.
-
-Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
-Reviewed-by: Simon Thum <simon.thum@gmx.de>
-Reviewed-by: Daniel Stone <daniel@fooishbar.org>
----
- include/xkbsrv.h | 1 +
- xkb/ddxFakeMtn.c | 100 ++++++++++++-----------------------------------------
- xkb/xkbActions.c | 4 +-
- 3 files changed, 26 insertions(+), 79 deletions(-)
-
-diff --git a/include/xkbsrv.h b/include/xkbsrv.h
-index ebc7cdb..a19cb43 100644
---- a/include/xkbsrv.h
-+++ b/include/xkbsrv.h
-@@ -787,6 +787,7 @@ extern _X_EXPORT void XkbDDXUpdateDeviceIndicators(
- );
-
- extern _X_EXPORT void XkbDDXFakePointerMotion(
-+ DeviceIntPtr /* dev */,
- unsigned int /* flags */,
- int /* x */,
- int /* y */
-diff --git a/xkb/ddxFakeMtn.c b/xkb/ddxFakeMtn.c
-index f90d209..b383716 100644
---- a/xkb/ddxFakeMtn.c
-+++ b/xkb/ddxFakeMtn.c
-@@ -28,91 +28,37 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE.
- #include <dix-config.h>
- #endif
-
--#include <stdio.h>
--#include <X11/X.h>
--#include <X11/Xproto.h>
--#include <X11/keysym.h>
- #include "inputstr.h"
--#include "scrnintstr.h"
--#include "windowstr.h"
- #include <xkbsrv.h>
--#include <X11/extensions/XI.h>
--
--#ifdef PANORAMIX
--#include "panoramiX.h"
--#include "panoramiXsrv.h"
--#endif
--
--#include "mipointer.h"
--#include "mipointrst.h"
-+#include "mi.h"
-
- void
--XkbDDXFakePointerMotion(unsigned flags,int x,int y)
-+XkbDDXFakePointerMotion(DeviceIntPtr dev, unsigned flags,int x,int y)
- {
--int oldX,oldY;
--ScreenPtr pScreen, oldScreen;
--
-- GetSpritePosition(inputInfo.pointer, &oldX, &oldY);
-- pScreen = oldScreen = GetSpriteWindow(inputInfo.pointer)->drawable.pScreen;
--
--#ifdef PANORAMIX
-- if (!noPanoramiXExtension) {
-- BoxRec box;
-- int i;
-+ EventListPtr events;
-+ int nevents, i;
-+ DeviceIntPtr ptr;
-+ int gpe_flags = 0;
-
-- if(!POINT_IN_REGION(pScreen, &XineramaScreenRegions[pScreen->myNum],
-- oldX, oldY, &box)) {
-- FOR_NSCREENS(i) {
-- if(i == pScreen->myNum)
-- continue;
-- if(POINT_IN_REGION(pScreen, &XineramaScreenRegions[i],
-- oldX, oldY, &box)) {
-- pScreen = screenInfo.screens[i];
-- break;
-- }
-- }
-- }
-- oldScreen = pScreen;
--
-- if (flags&XkbSA_MoveAbsoluteX)
-- oldX= x;
-- else oldX+= x;
-- if (flags&XkbSA_MoveAbsoluteY)
-- oldY= y;
-- else oldY+= y;
-+ if (!dev->u.master)
-+ ptr = dev;
-+ else
-+ ptr = GetXTestDevice(GetMaster(dev, MASTER_POINTER));
-
-- if(!POINT_IN_REGION(pScreen, &XineramaScreenRegions[pScreen->myNum],
-- oldX, oldY, &box)) {
-- FOR_NSCREENS(i) {
-- if(i == pScreen->myNum)
-- continue;
-- if(POINT_IN_REGION(pScreen, &XineramaScreenRegions[i],
-- oldX, oldY, &box)) {
-- pScreen = screenInfo.screens[i];
-- break;
-- }
-- }
-- }
-- oldX -= panoramiXdataPtr[pScreen->myNum].x;
-- oldY -= panoramiXdataPtr[pScreen->myNum].y;
-- }
-+ if (flags & XkbSA_MoveAbsoluteX || flags & XkbSA_MoveAbsoluteY)
-+ gpe_flags = POINTER_ABSOLUTE;
- else
--#endif
-- {
-- if (flags&XkbSA_MoveAbsoluteX)
-- oldX= x;
-- else oldX+= x;
-- if (flags&XkbSA_MoveAbsoluteY)
-- oldY= y;
-- else oldY+= y;
-+ gpe_flags = POINTER_RELATIVE;
-+
-+ events = InitEventList(GetMaximumEventsNum());
-+ OsBlockSignals();
-+ nevents = GetPointerEvents(events, ptr,
-+ MotionNotify, 0,
-+ gpe_flags, 0, 2, (int[]){x, y});
-+ OsReleaseSignals();
-
--#define GetScreenPrivate(s) ((miPointerScreenPtr)dixLookupPrivate(&(s)->devPrivates, miPointerScreenKey))
-- (*(GetScreenPrivate(oldScreen))->screenFuncs->CursorOffScreen)
-- (&pScreen, &oldX, &oldY);
-- }
-+ for (i = 0; i < nevents; i++)
-+ mieqProcessDeviceEvent(ptr, (InternalEvent*)events[i].event, NULL);
-
-- if (pScreen != oldScreen)
-- NewCurrentScreen(inputInfo.pointer, pScreen, oldX, oldY);
-- if (pScreen->SetCursorPosition)
-- (*pScreen->SetCursorPosition)(inputInfo.pointer, pScreen, oldX, oldY, TRUE);
-+ FreeEventList(events, GetMaximumEventsNum());
- }
-diff --git a/xkb/xkbActions.c b/xkb/xkbActions.c
-index b0ab427..663f033 100644
---- a/xkb/xkbActions.c
-+++ b/xkb/xkbActions.c
-@@ -479,7 +479,7 @@ int dx,dy;
- dx= xkbi->mouseKeysDX;
- dy= xkbi->mouseKeysDY;
- }
-- XkbDDXFakePointerMotion(xkbi->mouseKeysFlags,dx,dy);
-+ XkbDDXFakePointerMotion(xkbi->device, xkbi->mouseKeysFlags,dx,dy);
- return xkbi->desc->ctrls->mk_interval;
- }
-
-@@ -507,7 +507,7 @@ Bool accel;
- accel= ((pAction->ptr.flags&XkbSA_NoAcceleration)==0);
- x= XkbPtrActionX(&pAction->ptr);
- y= XkbPtrActionY(&pAction->ptr);
-- XkbDDXFakePointerMotion(pAction->ptr.flags,x,y);
-+ XkbDDXFakePointerMotion(xkbi->device, pAction->ptr.flags,x,y);
- AccessXCancelRepeatKey(xkbi,keycode);
- xkbi->mouseKeysAccel= accel&&
- (xkbi->desc->ctrls->enabled_ctrls&XkbMouseKeysAccelMask);
---
-1.6.6.1
-