diff options
author | marha <marha@users.sourceforge.net> | 2013-11-15 09:03:52 +0100 |
---|---|---|
committer | marha <marha@users.sourceforge.net> | 2013-11-15 09:03:52 +0100 |
commit | 4d64875593956234795d9947ac1d225e5b110f0f (patch) | |
tree | 5cc58965cdfe27a50f86f0d8872a7da80cc7248d /xorg-server/hw/kdrive/src | |
parent | 9837797b353b2e24e7ac96d3a74159497410c21a (diff) | |
parent | aa095d69b3874eb179cb77f033109a7f8f351041 (diff) | |
download | vcxsrv-4d64875593956234795d9947ac1d225e5b110f0f.tar.gz vcxsrv-4d64875593956234795d9947ac1d225e5b110f0f.tar.bz2 vcxsrv-4d64875593956234795d9947ac1d225e5b110f0f.zip |
Merge remote-tracking branch 'origin/released'
* origin/released:
xcb-proto mesa xserver git update 15 nov 2013
Conflicts:
xorg-server/mi/mieq.c
Diffstat (limited to 'xorg-server/hw/kdrive/src')
-rw-r--r-- | xorg-server/hw/kdrive/src/kdrive.c | 3 | ||||
-rw-r--r-- | xorg-server/hw/kdrive/src/kdrive.h | 1 | ||||
-rw-r--r-- | xorg-server/hw/kdrive/src/kinput.c | 10 |
3 files changed, 9 insertions, 5 deletions
diff --git a/xorg-server/hw/kdrive/src/kdrive.c b/xorg-server/hw/kdrive/src/kdrive.c index f2426ca43..d56ba8fc5 100644 --- a/xorg-server/hw/kdrive/src/kdrive.c +++ b/xorg-server/hw/kdrive/src/kdrive.c @@ -330,7 +330,8 @@ KdParseScreen(KdScreenInfo * screen, const char *arg) screen->height = pixels; screen->height_mm = mm; } - if (delim != 'x' && delim != '@' && delim != 'X' && delim != 'Y') + if (delim != 'x' && delim != '@' && delim != 'X' && delim != 'Y' && + (delim != '\0' || i == 0)) return; } diff --git a/xorg-server/hw/kdrive/src/kdrive.h b/xorg-server/hw/kdrive/src/kdrive.h index 52cde4f0d..f52072003 100644 --- a/xorg-server/hw/kdrive/src/kdrive.h +++ b/xorg-server/hw/kdrive/src/kdrive.h @@ -506,6 +506,7 @@ KdEnqueueKeyboardEvent(KdKeyboardInfo * ki, unsigned char scan_code, #define KD_BUTTON_4 0x08 #define KD_BUTTON_5 0x10 #define KD_BUTTON_8 0x80 +#define KD_POINTER_DESKTOP 0x40000000 #define KD_MOUSE_DELTA 0x80000000 void diff --git a/xorg-server/hw/kdrive/src/kinput.c b/xorg-server/hw/kdrive/src/kinput.c index 7f47a1da5..d5171a7f7 100644 --- a/xorg-server/hw/kdrive/src/kinput.c +++ b/xorg-server/hw/kdrive/src/kinput.c @@ -1918,6 +1918,8 @@ KdEnqueuePointerEvent(KdPointerInfo * pi, unsigned long flags, int rx, int ry, } else { dixflags = POINTER_ABSOLUTE; + if (flags & KD_POINTER_DESKTOP) + dixflags |= POINTER_DESKTOP; if (x != pi->dixdev->last.valuators[0] || y != pi->dixdev->last.valuators[1]) _KdEnqueuePointerEvent(pi, MotionNotify, x, y, z, 0, dixflags, @@ -2051,25 +2053,25 @@ KdCursorOffScreen(ScreenPtr *ppScreen, int *x, int *y) dx = KdScreenOrigin(pNewScreen)->x - KdScreenOrigin(pScreen)->x; dy = KdScreenOrigin(pNewScreen)->y - KdScreenOrigin(pScreen)->y; if (*x < 0) { - if (dx <= 0 && -dx < best_x) { + if (dx < 0 && -dx < best_x) { best_x = -dx; n_best_x = n; } } else if (*x >= pScreen->width) { - if (dx >= 0 && dx < best_x) { + if (dx > 0 && dx < best_x) { best_x = dx; n_best_x = n; } } if (*y < 0) { - if (dy <= 0 && -dy < best_y) { + if (dy < 0 && -dy < best_y) { best_y = -dy; n_best_y = n; } } else if (*y >= pScreen->height) { - if (dy >= 0 && dy < best_y) { + if (dy > 0 && dy < best_y) { best_y = dy; n_best_y = n; } |