Xext/saver.c | 2 ++ Xi/xipassivegrab.c | 8 +++----- configure.ac | 6 +++--- dix/window.c | 2 ++ hw/dmx/dmxcursor.c | 2 ++ hw/xfree86/modes/xf86Crtc.c | 7 ++++++- include/xkbsrv.h | 1 + randr/randr.c | 2 ++ xfixes/cursor.c | 12 ++++++++++-- xkb/xkbAccessX.c | 6 ++++-- 10 files changed, 35 insertions(+), 13 deletions(-)
New commits: commit ede07c1af35926c77c4e766cc02c00333b498460 Author: Matt Dew <mar...@osource.org> Date: Thu Dec 6 22:46:46 2012 -0700 Bump version diff --git a/configure.ac b/configure.ac index 590b773..ffd8a97 100644 --- a/configure.ac +++ b/configure.ac @@ -26,9 +26,9 @@ dnl dnl Process this file with autoconf to create configure. AC_PREREQ(2.60) -AC_INIT([xorg-server], 1.13.0.901, [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], xorg-server) -RELEASE_DATE="2012-11-22" -RELEASE_NAME="Puer Tea" +AC_INIT([xorg-server], 1.13.0.902, [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], xorg-server) +RELEASE_DATE="2012-12-06" +RELEASE_NAME="Jasmine Tea" AC_CONFIG_SRCDIR([Makefile.am]) AM_INIT_AUTOMAKE([foreign dist-bzip2]) AM_MAINTAINER_MODE commit 79220f4390127d9971cbcf378530bf36172ef35a Author: Daniel Martin <consume.no...@gmail.com> Date: Wed Nov 7 11:31:01 2012 +0100 Xi: Fix modifier swapping in XIPassiveGrabDevice XIPassiveGrabDevice uses a list of uint32_t as modifier sets. The ModifierInfo struct represents the current modifier states and is therefor used in XIQueryPointer and various events. Signed-off-by: Daniel Martin <consume.no...@gmail.com> Reviewed-by: Peter Hutterer <peter.hutte...@who-t.net> Signed-off-by: Peter Hutterer <peter.hutte...@who-t.net> (cherry picked from commit aa9a9ad08b8a6e7e95de7c2bf45d93dd50f9ca87) diff --git a/Xi/xipassivegrab.c b/Xi/xipassivegrab.c index ddab53d..62a3a46 100644 --- a/Xi/xipassivegrab.c +++ b/Xi/xipassivegrab.c @@ -50,7 +50,7 @@ int SProcXIPassiveGrabDevice(ClientPtr client) { int i; - xXIModifierInfo *mods; + uint32_t *mods; REQUEST(xXIPassiveGrabDeviceReq); @@ -63,12 +63,10 @@ SProcXIPassiveGrabDevice(ClientPtr client) swaps(&stuff->mask_len); swaps(&stuff->num_modifiers); - mods = (xXIModifierInfo *) &stuff[1]; + mods = (uint32_t *) &stuff[1]; for (i = 0; i < stuff->num_modifiers; i++, mods++) { - swapl(&mods->base_mods); - swapl(&mods->latched_mods); - swapl(&mods->locked_mods); + swapl(mods); } return ProcXIPassiveGrabDevice(client); commit 521f3fb566e67330a486874928a21ce201dba02b Author: Sybren van Elderen <sowmes...@msn.com> Date: Tue Nov 27 19:27:10 2012 +0100 hw/dmx: add update_desktop_dimensions() call The Xdmx server did not update the desktop dimensions when computing screen origins. Signed-off-by: Sybren van Elderen <sowmes...@msn.com> Reviewed-by: Peter Hutterer <peter.hutte...@who-t.net> Signed-off-by: Peter Hutterer <peter.hutte...@who-t.net> (cherry picked from commit 6e18599d691036eca6ff082c17727d9ffb926984) diff --git a/hw/dmx/dmxcursor.c b/hw/dmx/dmxcursor.c index 1a77c7d..35aca81 100644 --- a/hw/dmx/dmxcursor.c +++ b/hw/dmx/dmxcursor.c @@ -346,6 +346,8 @@ dmxComputeScreenOrigins(void) screenInfo.screens[i]->y -= minY; } } + + update_desktop_dimensions(); } /** Recompute origin information in the #dmxScreens list. This is commit 73bd33b4d4e3df4a8097826695a8dbdc2fb5c920 Author: Peter Hutterer <peter.hutte...@who-t.net> Date: Tue Jun 26 10:30:35 2012 +1000 xkb: fill in keycode and event type for slow keys enablement eventType is set for the type that triggered a XkbControlsNotify event. Technically, SlowKeys is triggered by a timer which doesn't have a matching core event type. So we used to use 0 here. Practically, the timer is triggered by a key press + hold and cancelled when the key is released before the timeout expires. So we might as well set KeyPress (keycode) in the ControlsNotify to give clients a chance to differ between timer-triggered SlowKeys and client-triggered ones. This is a chance in behaviour, though I suspect with little impact. Signed-off-by: Peter Hutterer <peter.hutte...@who-t.net> Acked-by: Daniel Stone <dan...@fooishbar.org> (cherry picked from commit 2c4388a00ec308bc2d48ba751ff510cd5c1b2384) diff --git a/include/xkbsrv.h b/include/xkbsrv.h index d584785..78b8f5a 100644 --- a/include/xkbsrv.h +++ b/include/xkbsrv.h @@ -171,6 +171,7 @@ typedef struct _XkbSrvInfo { KeyCode mouseKey; KeyCode inactiveKey; KeyCode slowKey; + KeyCode slowKeyEnableKey; KeyCode repeatKey; CARD8 krgTimerActive; CARD8 beepType; diff --git a/xkb/xkbAccessX.c b/xkb/xkbAccessX.c index c1af32e..21df85d 100644 --- a/xkb/xkbAccessX.c +++ b/xkb/xkbAccessX.c @@ -291,8 +291,8 @@ AccessXKRGExpire(OsTimerPtr timer, CARD32 now, pointer arg) return 4000; } xkbi->krgTimerActive = _OFF_TIMER; - cn.keycode = 0; - cn.eventType = 0; + cn.keycode = xkbi->slowKeyEnableKey; + cn.eventType = KeyPress; cn.requestMajor = 0; cn.requestMinor = 0; if (xkbi->desc->ctrls->enabled_ctrls & XkbSlowKeysMask) { @@ -304,6 +304,7 @@ AccessXKRGExpire(OsTimerPtr timer, CARD32 now, pointer arg) LogMessage(X_INFO, "XKB SlowKeys are now enabled. Hold shift to disable.\n"); } + xkbi->slowKeyEnableKey = 0; return 0; } @@ -462,6 +463,7 @@ AccessXFilterPressEvent(DeviceEvent *event, DeviceIntPtr keybd) if (ctrls->enabled_ctrls & XkbAccessXKeysMask) { /* check for magic sequences */ if ((sym[0] == XK_Shift_R) || (sym[0] == XK_Shift_L)) { + xkbi->slowKeyEnableKey = key; if (XkbAX_NeedFeedback(ctrls, XkbAX_SlowWarnFBMask)) { xkbi->krgTimerActive = _KRG_WARN_TIMER; xkbi->krgTimer = TimerSet(xkbi->krgTimer, 0, 4000, commit 2def985466683cf3746c03f9ac318e5941d22f86 Author: Jasper St. Pierre <jstpie...@mecheye.net> Date: Tue Nov 20 14:50:41 2012 -0500 cursor: Revise edge cases for the pointer moving towards barriers Since barriers block the invisible line between pixels, that means that we need to explicitly check the boundaries, or else we'll have a potential off-by-one error. This fixes issues when trying to move down or right across a barrier and having the pointer visibly bounce. Signed-off-by: Jasper St. Pierre <jstpie...@mecheye.net> Reviewed-by: Peter Hutterer <peter.hutte...@who-t.net> Signed-off-by: Peter Hutterer <peter.hutte...@who-t.net> (cherry picked from commit a51b2c3913fc8556f6bd1c76805d045fc424c4bb) diff --git a/xfixes/cursor.c b/xfixes/cursor.c index 4eee592..4d4a75e 100644 --- a/xfixes/cursor.c +++ b/xfixes/cursor.c @@ -1090,7 +1090,11 @@ barrier_is_blocking(const struct PointerBarrier * barrier, if (dir & BarrierNegativeX && x1 == (barrier->x1 - 1)) return FALSE; /* startpoint adjacent to barrier, moving towards -> block */ - if (x1 == barrier->x1 && y1 >= barrier->y1 && y1 <= barrier->y2) { + if (dir & BarrierPositiveX && x1 == (barrier->x1 - 1) && y1 >= barrier->y1 && y1 <= barrier->y2) { + *distance = 0; + return TRUE; + } + if (dir & BarrierNegativeX && x1 == barrier->x1 && y1 >= barrier->y1 && y1 <= barrier->y2) { *distance = 0; return TRUE; } @@ -1102,7 +1106,11 @@ barrier_is_blocking(const struct PointerBarrier * barrier, if (dir & BarrierNegativeY && y1 == (barrier->y1 - 1)) return FALSE; /* startpoint adjacent to barrier, moving towards -> block */ - if (y1 == barrier->y1 && x1 >= barrier->x1 && x1 <= barrier->x2) { + if (dir & BarrierPositiveY && y1 == (barrier->y1 - 1) && x1 >= barrier->x1 && x1 <= barrier->x2) { + *distance = 0; + return TRUE; + } + if (dir & BarrierNegativeY && y1 == barrier->y1 && x1 >= barrier->x1 && x1 <= barrier->x2) { *distance = 0; return TRUE; } commit 4a957c9e81233344da0b5b9388ca2d97eedde7d5 Author: Peter Hutterer <peter.hutte...@who-t.net> Date: Thu Nov 15 14:00:57 2012 +1000 When resetting device idle time, reset XIAll(Master)Devices too (#56649) When the screen saver is forcibly deactivated, the idle time counter is reset for all devices but not for the fake XIAllDevices and XIAllMasterDevices. XScreenSaverQueryInfo uses XIAlldevices to fill the "idle" field, thus returning the wrong value. Regression introduced in commit 6aef209ebc2e54f5465da505a780f7b4cc273ee0 Author: Peter Hutterer <peter.hutte...@who-t.net> Date: Mon Mar 12 13:51:02 2012 +1000 Change lastDeviceIdleTime to be per-device X.Org Bug 56649 <http://bugs.freedesktop.org/show_bug.cgi?id=56649> Signed-off-by: Peter Hutterer <peter.hutte...@who-t.net> Tested-by: Giacomo Perale <ghe...@virgilio.it> Reviewed-by: Keith Packard <kei...@keithp.com> (cherry picked from commit 2dc6d9228456cbc274a1fcea478258e5ae4dc629) diff --git a/Xext/saver.c b/Xext/saver.c index ac4a633..f73e2a2 100644 --- a/Xext/saver.c +++ b/Xext/saver.c @@ -393,6 +393,8 @@ ScreenSaverFreeSuspend(pointer value, XID id) UpdateCurrentTimeIf(); nt_list_for_each_entry(dev, inputInfo.devices, next) lastDeviceEventTime[dev->id] = currentTime; + lastDeviceEventTime[XIAllDevices] = currentTime; + lastDeviceEventTime[XIAllMasterDevices] = currentTime; SetScreenSaverTimer(); } } diff --git a/dix/window.c b/dix/window.c index cdd12dc..49ef4a0 100644 --- a/dix/window.c +++ b/dix/window.c @@ -3132,6 +3132,8 @@ dixSaveScreens(ClientPtr client, int on, int mode) UpdateCurrentTimeIf(); nt_list_for_each_entry(dev, inputInfo.devices, next) lastDeviceEventTime[dev->id] = currentTime; + lastDeviceEventTime[XIAllDevices] = currentTime; + lastDeviceEventTime[XIAllMasterDevices] = currentTime; } SetScreenSaverTimer(); } commit d71a17cfab6536df9df46a342a24dd415c020192 Author: Chris Wilson <ch...@chris-wilson.co.uk> Date: Sat Nov 10 10:26:08 2012 +0000 xf86: select a fake output for headless servers Following commit 37d956e3ac9513b74078882dff489f9b0a7a5a28 Author: Keith Packard <kei...@keithp.com> Date: Mon Sep 10 11:14:20 2012 +1000 xf86: fix compat output selection for no output GPUs headless servers can no longer startup as we no longer select a compat output for the fake framebuffer. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=56343 Signed-off-by: Chris Wilson <ch...@chris-wilson.co.uk> Reviewed-by: Dave Airlie <airl...@redhat.com> Signed-off-by: Keith Packard <kei...@keithp.com> (cherry picked from commit e54f71a2c7a1677a5c5032d1e7dc099d5204144b) diff --git a/hw/xfree86/modes/xf86Crtc.c b/hw/xfree86/modes/xf86Crtc.c index 177f7ac..13251cf 100644 --- a/hw/xfree86/modes/xf86Crtc.c +++ b/hw/xfree86/modes/xf86Crtc.c @@ -1847,6 +1847,10 @@ SetCompatOutput(xf86CrtcConfigPtr config) output = config->output[config->compat_output]; } + /* All outputs are disconnected, select one to fake */ + if (!output && config->num_output) + output = config->output[0]; + return output; } commit 72ef659874ffe88e88d2f2a35a6e404782cefe9f Author: Keith Packard <kei...@keithp.com> Date: Mon Sep 10 11:14:20 2012 +1000 xf86: fix compat output selection for no output GPUs This should work properly with dynamic outputs. Reviewed-by: Dave Airlie <airl...@redhat.com> Signed-off-by: Dave Airlie <airl...@redhat.com> (cherry picked from commit 37d956e3ac9513b74078882dff489f9b0a7a5a28) diff --git a/hw/xfree86/modes/xf86Crtc.c b/hw/xfree86/modes/xf86Crtc.c index e3eaf5f..177f7ac 100644 --- a/hw/xfree86/modes/xf86Crtc.c +++ b/hw/xfree86/modes/xf86Crtc.c @@ -66,6 +66,7 @@ xf86CrtcConfigInit(ScrnInfoPtr scrn, const xf86CrtcConfigFuncsRec * funcs) config = xnfcalloc(1, sizeof(xf86CrtcConfigRec)); config->funcs = funcs; + config->compat_output = -1; scrn->privates[xf86CrtcConfigPrivateIndex].ptr = config; } @@ -1841,7 +1842,7 @@ SetCompatOutput(xf86CrtcConfigPtr config) if (compat >= 0) { config->compat_output = compat; } - else { + else if (config->compat_output >= 0 && config->compat_output < config->num_output) { /* Don't change the compat output when no valid outputs found */ output = config->output[config->compat_output]; } commit a2748aa6bde13b447a246606767535a30090cd02 Author: Dave Airlie <airl...@gmail.com> Date: Fri Nov 30 20:54:38 2012 +1000 randr: call RRProviderInit in the proper place. No idea where this got lost across development cycles, but its definitely missing. Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=57448 Signed-off-by: Dave Airlie <airl...@redhat.com> Reviewed-by: Alex Deucher <alexander.deuc...@amd.com> Signed-off-by: Keith Packard <kei...@keithp.com> (cherry picked from commit e9ea96d6a88f197928c82b008953f1810de6f792) diff --git a/randr/randr.c b/randr/randr.c index da48c3f..f0decfc 100644 --- a/randr/randr.c +++ b/randr/randr.c @@ -264,6 +264,8 @@ RRInit(void) return FALSE; if (!RROutputInit()) return FALSE; + if (!RRProviderInit()) + return FALSE; RRGeneration = serverGeneration; } if (!dixRegisterPrivateKey(&rrPrivKeyRec, PRIVATE_SCREEN, 0)) -- To UNSUBSCRIBE, email to debian-x-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/e1tgtjm-0006bg...@vasks.debian.org