diff --git a/.gitignore b/.gitignore index 96ea782..4d53910 100644 --- a/.gitignore +++ b/.gitignore @@ -20,3 +20,4 @@ xorg-server-1.9.1.tar.bz2 /xorg-server-20120808.tar.xz /xorg-server-20120822.tar.xz /xorg-server-1.13.0.tar.bz2 +/xorg-server-1.13.1.tar.bz2 diff --git a/0001-Sync-TouchListener-memory-allocation-with-population.patch b/0001-Sync-TouchListener-memory-allocation-with-population.patch deleted file mode 100644 index a2672e4..0000000 --- a/0001-Sync-TouchListener-memory-allocation-with-population.patch +++ /dev/null @@ -1,36 +0,0 @@ -From bbf4fe102fb67ed43fe57df085c40de525b8f4c0 Mon Sep 17 00:00:00 2001 -From: Carlos Garnacho -Date: Thu, 25 Oct 2012 15:03:50 +0200 -Subject: [PATCH] Sync TouchListener memory allocation with population in - TouchSetupListeners() - -The allocated TouchListener array may fall short by 1 if hitting the worst case -situation where there's an active grab, passive grabs on each window in the -sprite trace and event selection for touch in one of the windows. This may lead -to memory corruptions as the array is overflown. - -Signed-off-by: Carlos Garnacho -Reviewed-by: Peter Hutterer -Signed-off-by: Peter Hutterer ---- - dix/touch.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/dix/touch.c b/dix/touch.c -index e64a626..5f77be5 100644 ---- a/dix/touch.c -+++ b/dix/touch.c -@@ -572,8 +572,8 @@ TouchBuildSprite(DeviceIntPtr sourcedev, TouchPointInfoPtr ti, - return FALSE; - - /* Mark which grabs/event selections we're delivering to: max one grab per -- * window plus the bottom-most event selection. */ -- ti->listeners = calloc(sprite->spriteTraceGood + 1, sizeof(*ti->listeners)); -+ * window plus the bottom-most event selection, plus any active grab. */ -+ ti->listeners = calloc(sprite->spriteTraceGood + 2, sizeof(*ti->listeners)); - if (!ti->listeners) { - sprite->spriteTraceGood = 0; - return FALSE; --- -1.7.11.7 - diff --git a/0001-Touch-Fix-duplicate-TouchBegin-selection-with-virtua.patch b/0001-Touch-Fix-duplicate-TouchBegin-selection-with-virtua.patch deleted file mode 100644 index 591a59a..0000000 --- a/0001-Touch-Fix-duplicate-TouchBegin-selection-with-virtua.patch +++ /dev/null @@ -1,49 +0,0 @@ -From 314776eb369ca2e438907795ae030dd743c281fc Mon Sep 17 00:00:00 2001 -From: Daniel Stone -Date: Fri, 7 Sep 2012 18:30:23 +0100 -Subject: [PATCH] Touch: Fix duplicate TouchBegin selection with virtual - devices - -Given the following scenario: - 1) client A selects for TouchBegin on window W for device D - 2) client B selects for TouchBegin on window W for XIAllDevices - 3) client C selects for TouchBegin on window W with device E - -Step 3 will fail with BadImplementation, because attempting to look up -XIAllDevices or XIAllMasterDevices with dixLookupDevices doesn't work. -This should succeed (or, if it was selecting for device D, fail with -BadAccess as it would be a duplicate selection). - -Fix this by performing the appropriate lookup for virtual devices. - -Signed-off-by: Daniel Stone -Cc: Peter Hutterer -Cc: Chase Douglas -Signed-off-by: Peter Hutterer ---- - Xi/xiselectev.c | 9 +++++++-- - 1 file changed, 7 insertions(+), 2 deletions(-) - -diff --git a/Xi/xiselectev.c b/Xi/xiselectev.c -index 0e45cb8..ab1b624 100644 ---- a/Xi/xiselectev.c -+++ b/Xi/xiselectev.c -@@ -180,8 +180,13 @@ ProcXISelectEvents(ClientPtr client) - if (CLIENT_ID(iclient->resource) == client->index) - continue; - -- dixLookupDevice(&tmp, evmask->deviceid, serverClient, -- DixReadAccess); -+ if (evmask->deviceid == XIAllDevices) -+ tmp = inputInfo.all_devices; -+ else if (evmask->deviceid == XIAllMasterDevices) -+ tmp = inputInfo.all_master_devices; -+ else -+ dixLookupDevice(&tmp, evmask->deviceid, serverClient, -+ DixReadAccess); - if (!tmp) - return BadImplementation; /* this shouldn't happen */ - --- -1.8.0.1 - diff --git a/0001-Xi-Call-UpdateDeviceState-after-the-first-emulated-m.patch b/0001-Xi-Call-UpdateDeviceState-after-the-first-emulated-m.patch deleted file mode 100644 index 91fd638..0000000 --- a/0001-Xi-Call-UpdateDeviceState-after-the-first-emulated-m.patch +++ /dev/null @@ -1,60 +0,0 @@ -From 0068a5ae02c6b9ba3a7c8e83de452b6383222b8d Mon Sep 17 00:00:00 2001 -From: Carlos Garnacho -Date: Mon, 29 Oct 2012 18:33:50 +0100 -Subject: [PATCH] Xi: Call UpdateDeviceState() after the first emulated motion - event - -The emulated motion event that happens before TouchBegin/ButtonPress should -contain no buttons set in the mask, as it virtually happens at a time when -the button is not yet pressed. This is known to confuse GTK+ and Abiword -to different degrees, as enclosing button press/release events are expected -around changes in the button mask. - -Signed-off-by: Carlos Garnacho -Signed-off-by: Peter Hutterer ---- - Xi/exevents.c | 15 ++++++++++----- - 1 file changed, 10 insertions(+), 5 deletions(-) - -diff --git a/Xi/exevents.c b/Xi/exevents.c -index 4cbeb37..769bb41 100644 ---- a/Xi/exevents.c -+++ b/Xi/exevents.c -@@ -1568,15 +1568,16 @@ ProcessTouchEvent(InternalEvent *ev, DeviceIntPtr dev) - else - touchid = ev->device_event.touchid; - -- if (emulate_pointer) -- UpdateDeviceState(dev, &ev->device_event); -- - if (type == ET_TouchBegin) { - ti = TouchBeginTouch(dev, ev->device_event.sourceid, touchid, - emulate_pointer); - } -- else -+ else { -+ if (emulate_pointer) -+ UpdateDeviceState(dev, &ev->device_event); -+ - ti = TouchFindByClientID(dev, touchid); -+ } - - /* Under the following circumstances we create a new touch record for an - * existing touch: -@@ -1615,8 +1616,12 @@ ProcessTouchEvent(InternalEvent *ev, DeviceIntPtr dev) - /* if emulate_pointer is set, emulate the motion event right - * here, so we can ignore it for button event emulation. TouchUpdate - * events which _only_ emulate motion just work normally */ -- if (emulate_pointer && ev->any.type != ET_TouchUpdate) -+ if (emulate_pointer && ev->any.type != ET_TouchUpdate) { - DeliverEmulatedMotionEvent(dev, ti, ev); -+ -+ if (ev->any.type == ET_TouchBegin) -+ UpdateDeviceState(dev, &ev->device_event); -+ } - if (emulate_pointer && IsMaster(dev)) - CheckMotion(&ev->device_event, dev); - --- -1.7.11.7 - diff --git a/0001-Xi-Don-t-check-for-TOUCH_END-it-s-never-set.patch b/0001-Xi-Don-t-check-for-TOUCH_END-it-s-never-set.patch deleted file mode 100644 index 7cb6326..0000000 --- a/0001-Xi-Don-t-check-for-TOUCH_END-it-s-never-set.patch +++ /dev/null @@ -1,36 +0,0 @@ -From 3e6358ee6c33979329b78fe2097a1fdf76fb69cd Mon Sep 17 00:00:00 2001 -From: Daniel Drake -Date: Fri, 7 Sep 2012 21:48:35 -0400 -Subject: [PATCH] Xi: Don't check for TOUCH_END, it's never set - -This flag is never set, so checking for it here means that we'll -never release the simulated mouse button press after the user touches -(and releases) the touchscreen for the first time. - -Fixes a problem where the XO laptop touchpad became totally -unusable after touching the screen for the first time (since X then -behaved as if the mouse button was held down all the time). - -Signed-off-by: Daniel Drake -Reviewed-by: Chase Douglas -Signed-off-by: Peter Hutterer ---- - Xi/exevents.c | 2 -- - 1 file changed, 2 deletions(-) - -diff --git a/Xi/exevents.c b/Xi/exevents.c -index 494d07e..6ed4991 100644 ---- a/Xi/exevents.c -+++ b/Xi/exevents.c -@@ -949,8 +949,6 @@ UpdateDeviceState(DeviceIntPtr device, DeviceEvent *event) - - if (!(event->flags & TOUCH_POINTER_EMULATED)) - return DONT_PROCESS; -- if (!(event->flags & TOUCH_END)) -- return DONT_PROCESS; - - DecreaseButtonCount(device, key, &t->buttonsDown, &t->motionMask, - &t->state); --- -1.7.11.7 - diff --git a/0001-Xi-don-t-deliver-TouchEnd-to-a-client-waiting-for-To.patch b/0001-Xi-don-t-deliver-TouchEnd-to-a-client-waiting-for-To.patch deleted file mode 100644 index 143fc7a..0000000 --- a/0001-Xi-don-t-deliver-TouchEnd-to-a-client-waiting-for-To.patch +++ /dev/null @@ -1,37 +0,0 @@ -From 676447190190d8546165e21be242cf16dd69f5ae Mon Sep 17 00:00:00 2001 -From: Peter Hutterer -Date: Wed, 17 Oct 2012 14:13:29 +1000 -Subject: [PATCH] Xi: don't deliver TouchEnd to a client waiting for - TouchBegin (#55738) - -If a client is still waiting for the TouchBegin, don't deliver a TouchEnd -event. - -X.Org Bug 55738 - -Signed-off-by: Peter Hutterer -Tested-by: Thomas Jaeger -Reviewed-by: Keith Packard ---- - Xi/exevents.c | 5 +++++ - 1 file changed, 5 insertions(+) - -diff --git a/Xi/exevents.c b/Xi/exevents.c -index 6ed4991..4cbeb37 100644 ---- a/Xi/exevents.c -+++ b/Xi/exevents.c -@@ -1862,6 +1862,11 @@ DeliverTouchEndEvent(DeviceIntPtr dev, TouchPointInfoPtr ti, InternalEvent *ev, - goto out; - } - -+ if (listener->state == LISTENER_AWAITING_BEGIN) { -+ listener->state = LISTENER_HAS_END; -+ goto out; -+ } -+ - /* Event in response to reject */ - if (ev->device_event.flags & TOUCH_REJECT) { - if (listener->state != LISTENER_HAS_END) --- -1.7.11.7 - diff --git a/0001-config-udev-ignore-change-on-drm-devices.patch b/0001-config-udev-ignore-change-on-drm-devices.patch deleted file mode 100644 index 5e6a2a0..0000000 --- a/0001-config-udev-ignore-change-on-drm-devices.patch +++ /dev/null @@ -1,41 +0,0 @@ -From 6d9beff6ce231527dfd59e896c6cf3730555121a Mon Sep 17 00:00:00 2001 -From: Dave Airlie -Date: Thu, 13 Sep 2012 18:44:06 +1000 -Subject: [PATCH] config/udev: ignore change on drm devices - -for input devices we handle change like remove/add, but for -drm devices we get change events when we hotplug outputs, -so lets just ignore change at this level, and let the drivers -handle it. We may in the future want to route driver udev -from here instead. - -Reported-by: Timo Aaltonen -Signed-off-by: Dave Airlie ---- - config/udev.c | 8 +++++++- - 1 file changed, 7 insertions(+), 1 deletion(-) - -diff --git a/config/udev.c b/config/udev.c -index c2d00bb..454838f 100644 ---- a/config/udev.c -+++ b/config/udev.c -@@ -300,9 +300,15 @@ wakeup_handler(pointer data, int err, pointer read_mask) - return; - action = udev_device_get_action(udev_device); - if (action) { -- if (!strcmp(action, "add") || !strcmp(action, "change")) { -+ if (!strcmp(action, "add")) { - device_removed(udev_device); - device_added(udev_device); -+ } else if (!strcmp(action, "change")) { -+ /* ignore change for the drm devices */ -+ if (strcmp(udev_device_get_subsystem(udev_device), "drm")) { -+ device_removed(udev_device); -+ device_added(udev_device); -+ } - } - else if (!strcmp(action, "remove")) - device_removed(udev_device); --- -1.7.10.2 - diff --git a/0001-dix-fix-crash-on-XI-1.x-grabs-on-disabled-devices.-5.patch b/0001-dix-fix-crash-on-XI-1.x-grabs-on-disabled-devices.-5.patch deleted file mode 100644 index 02db1ca..0000000 --- a/0001-dix-fix-crash-on-XI-1.x-grabs-on-disabled-devices.-5.patch +++ /dev/null @@ -1,60 +0,0 @@ -From 9d6b8365702e4648e793fea21ad22f7174558680 Mon Sep 17 00:00:00 2001 -From: Peter Hutterer -Date: Fri, 28 Sep 2012 11:49:29 +1000 -Subject: [PATCH] dix: fix crash on XI 1.x grabs on disabled devices. - (#54934) - -If the device is disabled, the sprite window is NULL and dereferencing -crashes the server. - -This is only triggered for XI 1.x grabs (ProcXGrabDevice) as XI2 grabs would -trigger another code path, creating a sprite for the disabled device as if -detaching it (which is wrong and fixed with this patch too). - -Grabbing a disabled device doesn't make sense as it won't send events -anyway. However, the protocol specs do not prohibit it, so we need to keep -it working. -Luckily, oldWin is only used for focus out events, which aren't necessary -given that the device is disabled. - -X.Org Bug 54934 - -Signed-off-by: Peter Hutterer -Reviewed-by: Chase Douglas ---- - dix/events.c | 9 ++++++--- - 1 file changed, 6 insertions(+), 3 deletions(-) - -diff --git a/dix/events.c b/dix/events.c -index 3b40446..c0e330b 100644 ---- a/dix/events.c -+++ b/dix/events.c -@@ -1555,11 +1555,13 @@ ActivateKeyboardGrab(DeviceIntPtr keybd, GrabPtr grab, TimeStamp time, - WindowPtr oldWin; - - /* slave devices need to float for the duration of the grab. */ -- if (grab->grabtype == XI2 && -+ if (grab->grabtype == XI2 && keybd->enabled && - !(passive & ImplicitGrabMask) && !IsMaster(keybd)) - DetachFromMaster(keybd); - -- if (grabinfo->grab) -+ if (!keybd->enabled) -+ oldWin = NULL; -+ else if (grabinfo->grab) - oldWin = grabinfo->grab->window; - else if (keybd->focus) - oldWin = keybd->focus->win; -@@ -1569,7 +1571,8 @@ ActivateKeyboardGrab(DeviceIntPtr keybd, GrabPtr grab, TimeStamp time, - oldWin = keybd->focus->win; - if (keybd->valuator) - keybd->valuator->motionHintWindow = NullWindow; -- DoFocusEvents(keybd, oldWin, grab->window, NotifyGrab); -+ if (oldWin) -+ DoFocusEvents(keybd, oldWin, grab->window, NotifyGrab); - if (syncEvents.playingEvents) - grabinfo->grabTime = syncEvents.time; - else --- -1.7.11.7 - diff --git a/0001-dix-set-the-device-transformation-matrix.patch b/0001-dix-set-the-device-transformation-matrix.patch deleted file mode 100644 index 7a3a398..0000000 --- a/0001-dix-set-the-device-transformation-matrix.patch +++ /dev/null @@ -1,32 +0,0 @@ -From 171059409177652b9b7af31506dd8ee0e018330d Mon Sep 17 00:00:00 2001 -From: Peter Hutterer -Date: Thu, 20 Sep 2012 01:22:32 +1000 -Subject: [PATCH] dix: set the device transformation matrix - -The property handler is registered after setting the property, so -dev->transform remains as all-zeros. That causes pixman_f_transform_invert() -to fail (transformAbsolute()) and invert remains as garbage. In some cases, -this may then cause a cursor jump to 0,0. - -Signed-off-by: Peter Hutterer ---- - dix/devices.c | 3 +++ - 1 file changed, 3 insertions(+) - -diff --git a/dix/devices.c b/dix/devices.c -index 46c759c..3cacbeb 100644 ---- a/dix/devices.c -+++ b/dix/devices.c -@@ -306,6 +306,9 @@ AddInputDevice(ClientPtr client, DeviceProc deviceProc, Bool autoStart) - /* unity matrix */ - memset(transform, 0, sizeof(transform)); - transform[0] = transform[4] = transform[8] = 1.0f; -+ dev->transform.m[0][0] = 1.0; -+ dev->transform.m[1][1] = 1.0; -+ dev->transform.m[2][2] = 1.0; - - XIChangeDeviceProperty(dev, XIGetKnownProperty(XI_PROP_TRANSFORM), - XIGetKnownProperty(XATOM_FLOAT), 32, --- -1.7.11.2 - diff --git a/0001-dri2-invalidate-drawable-after-sharing-pixmap.patch b/0001-dri2-invalidate-drawable-after-sharing-pixmap.patch deleted file mode 100644 index 2aa77a3..0000000 --- a/0001-dri2-invalidate-drawable-after-sharing-pixmap.patch +++ /dev/null @@ -1,124 +0,0 @@ -From e6ca9179443dcdd16d0cbfb2a571a7a9fde56a25 Mon Sep 17 00:00:00 2001 -From: Dave Airlie -Date: Thu, 6 Sep 2012 16:33:54 +1000 -Subject: [PATCH] dri2: invalidate drawable after sharing pixmap - -After we share the pixmap, the backing storage may have changed, -and we need to invalidate and buffers pointing at it. - -This fixes GL compositors and prime windows lacking contents initially. - -Signed-off-by: Dave Airlie ---- - hw/xfree86/dri2/dri2.c | 74 ++++++++++++++++++++++++++++---------------------- - 1 file changed, 42 insertions(+), 32 deletions(-) - -diff --git a/hw/xfree86/dri2/dri2.c b/hw/xfree86/dri2/dri2.c -index 23f589c..40963c3 100644 ---- a/hw/xfree86/dri2/dri2.c -+++ b/hw/xfree86/dri2/dri2.c -@@ -766,6 +766,44 @@ static inline PixmapPtr GetDrawablePixmap(DrawablePtr drawable) - } - } - -+/* -+ * A TraverseTree callback to invalidate all windows using the same -+ * pixmap -+ */ -+static int -+DRI2InvalidateWalk(WindowPtr pWin, pointer data) -+{ -+ if (pWin->drawable.pScreen->GetWindowPixmap(pWin) != data) -+ return WT_DONTWALKCHILDREN; -+ DRI2InvalidateDrawable(&pWin->drawable); -+ return WT_WALKCHILDREN; -+} -+ -+static void -+DRI2InvalidateDrawableAll(DrawablePtr pDraw) -+{ -+ if (pDraw->type == DRAWABLE_WINDOW) { -+ WindowPtr pWin = (WindowPtr) pDraw; -+ PixmapPtr pPixmap = pDraw->pScreen->GetWindowPixmap(pWin); -+ -+ /* -+ * Find the top-most window using this pixmap -+ */ -+ while (pWin->parent && -+ pDraw->pScreen->GetWindowPixmap(pWin->parent) == pPixmap) -+ pWin = pWin->parent; -+ -+ /* -+ * Walk the sub-tree to invalidate all of the -+ * windows using the same pixmap -+ */ -+ TraverseTree(pWin, DRI2InvalidateWalk, pPixmap); -+ DRI2InvalidateDrawable(&pPixmap->drawable); -+ } -+ else -+ DRI2InvalidateDrawable(pDraw); -+} -+ - DrawablePtr DRI2UpdatePrime(DrawablePtr pDraw, DRI2BufferPtr pDest) - { - DRI2DrawablePtr pPriv = DRI2GetDrawable(pDraw); -@@ -831,6 +869,8 @@ DrawablePtr DRI2UpdatePrime(DrawablePtr pDraw, DRI2BufferPtr pDest) - spix->screen_x = mpix->screen_x; - spix->screen_y = mpix->screen_y; - #endif -+ -+ DRI2InvalidateDrawableAll(pDraw); - return &spix->drawable; - } - -@@ -1048,18 +1088,7 @@ DRI2WaitSwap(ClientPtr client, DrawablePtr pDrawable) - return FALSE; - } - --/* -- * A TraverseTree callback to invalidate all windows using the same -- * pixmap -- */ --static int --DRI2InvalidateWalk(WindowPtr pWin, pointer data) --{ -- if (pWin->drawable.pScreen->GetWindowPixmap(pWin) != data) -- return WT_DONTWALKCHILDREN; -- DRI2InvalidateDrawable(&pWin->drawable); -- return WT_WALKCHILDREN; --} -+ - - int - DRI2SwapBuffers(ClientPtr client, DrawablePtr pDraw, CARD64 target_msc, -@@ -1162,26 +1191,7 @@ DRI2SwapBuffers(ClientPtr client, DrawablePtr pDraw, CARD64 target_msc, - */ - *swap_target = pPriv->swap_count + pPriv->swapsPending; - -- if (pDraw->type == DRAWABLE_WINDOW) { -- WindowPtr pWin = (WindowPtr) pDraw; -- PixmapPtr pPixmap = pScreen->GetWindowPixmap(pWin); -- -- /* -- * Find the top-most window using this pixmap -- */ -- while (pWin->parent && -- pScreen->GetWindowPixmap(pWin->parent) == pPixmap) -- pWin = pWin->parent; -- -- /* -- * Walk the sub-tree to invalidate all of the -- * windows using the same pixmap -- */ -- TraverseTree(pWin, DRI2InvalidateWalk, pPixmap); -- DRI2InvalidateDrawable(&pPixmap->drawable); -- } -- else -- DRI2InvalidateDrawable(pDraw); -+ DRI2InvalidateDrawableAll(pDraw); - - return Success; - } --- -1.7.12 - diff --git a/0001-scan-pci-after-probing-devices.patch b/0001-scan-pci-after-probing-devices.patch deleted file mode 100644 index f895e46..0000000 --- a/0001-scan-pci-after-probing-devices.patch +++ /dev/null @@ -1,30 +0,0 @@ -From a26837d20ea626943398f2390bfd00c22be3468b Mon Sep 17 00:00:00 2001 -From: Dave Airlie -Date: Mon, 10 Sep 2012 12:02:55 +1000 -Subject: [PATCH] scan pci after probing devices - ---- - hw/xfree86/common/xf86platformBus.c | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/hw/xfree86/common/xf86platformBus.c b/hw/xfree86/common/xf86platformBus.c -index 502d3c4..5e05791 100644 ---- a/hw/xfree86/common/xf86platformBus.c -+++ b/hw/xfree86/common/xf86platformBus.c -@@ -213,11 +213,12 @@ xf86platformProbe(void) - int i; - Bool pci = TRUE; - -+ config_odev_probe(&xf86PlatformDeviceProbe); -+ - if (!xf86scanpci()) { - pci = FALSE; - } - -- config_odev_probe(&xf86PlatformDeviceProbe); - for (i = 0; i < xf86_num_platform_devices; i++) { - char *busid = xf86_get_platform_attrib(i, ODEV_ATTRIB_BUSID); - --- -1.7.12 - diff --git a/0003-xf86-fix-multi-seat-video-device-support.patch b/0003-xf86-fix-multi-seat-video-device-support.patch deleted file mode 100644 index 19e70d5..0000000 --- a/0003-xf86-fix-multi-seat-video-device-support.patch +++ /dev/null @@ -1,59 +0,0 @@ -From 41b5b320ed1509be1e885992fc804322161d1533 Mon Sep 17 00:00:00 2001 -From: Dave Airlie -Date: Mon, 27 Aug 2012 15:20:11 +1000 -Subject: [PATCH 3/3] xf86: fix multi-seat video device support. - -If we are not seat 0 the following apply: - -don't probe any bus other than platform -don't probe any drivers other than platform -assume the first platform device we match on the bus is the primary GPU. - -This just adds checks in the correct places to ensure this, and -with this X can now start on a secondary seat for an output device. - -Signed-off-by: Dave Airlie ---- - hw/xfree86/common/xf86Bus.c | 4 ++++ - hw/xfree86/common/xf86platformBus.c | 3 +++ - 2 files changed, 7 insertions(+) - -diff --git a/hw/xfree86/common/xf86Bus.c b/hw/xfree86/common/xf86Bus.c -index 6de8409..40f4921 100644 ---- a/hw/xfree86/common/xf86Bus.c -+++ b/hw/xfree86/common/xf86Bus.c -@@ -81,6 +81,8 @@ xf86CallDriverProbe(DriverPtr drv, Bool detect_only) - if (drv->platformProbe != NULL) { - foundScreen = xf86platformProbeDev(drv); - } -+ if (ServerIsNotSeat0()) -+ return foundScreen; - #endif - - #ifdef XSERVER_LIBPCIACCESS -@@ -214,6 +216,8 @@ xf86BusProbe(void) - { - #ifdef XSERVER_PLATFORM_BUS - xf86platformProbe(); -+ if (ServerIsNotSeat0()) -+ return; - #endif - #ifdef XSERVER_LIBPCIACCESS - xf86PciProbe(); -diff --git a/hw/xfree86/common/xf86platformBus.c b/hw/xfree86/common/xf86platformBus.c -index 502d3c4..0b06e16 100644 ---- a/hw/xfree86/common/xf86platformBus.c -+++ b/hw/xfree86/common/xf86platformBus.c -@@ -358,6 +358,9 @@ xf86platformProbeDev(DriverPtr drvp) - break; - } - else { -+ /* for non-seat0 servers assume first device is the master */ -+ if (ServerIsNotSeat0()) -+ break; - if (xf86_platform_devices[j].pdev) { - if (xf86IsPrimaryPlatform(&xf86_platform_devices[j])) - break; --- -1.7.10.2 - diff --git a/sources b/sources index 961970d..6aaebb8 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -bde3d178b756597d2ec2a19ef60d2e1f xorg-server-1.13.0.tar.bz2 +a13d8876e3e804189392119638a07a1f xorg-server-1.13.1.tar.bz2 diff --git a/xorg-x11-server.spec b/xorg-x11-server.spec index 967ad65..9142025 100644 --- a/xorg-x11-server.spec +++ b/xorg-x11-server.spec @@ -18,7 +18,7 @@ %global ansic_major 0 %global ansic_minor 4 %global videodrv_major 13 -%global videodrv_minor 0 +%global videodrv_minor 1 %global xinput_major 18 %global xinput_minor 0 %global extension_major 7 @@ -42,8 +42,8 @@ Summary: X.Org X11 X server Name: xorg-x11-server -Version: 1.13.0 -Release: 15%{?gitdate:.%{gitdate}}%{dist} +Version: 1.13.1 +Release: 1%{?gitdate:.%{gitdate}}%{dist} URL: http://www.x.org License: MIT Group: User Interface/X @@ -92,9 +92,6 @@ Patch7013: xserver-1.12-Xext-fix-selinux-build-failure.patch # needed when building without xorg (aka s390x) Patch7017: xserver-1.12.2-xorg-touch-test.patch -# send keycode/event type for slow keys enable (#816764) -Patch7020: xserver-1.12-xkb-fill-in-keycode-and-event-type-for-slow-keys-ena.patch - Patch7022: 0001-linux-Refactor-xf86-En-Dis-ableIO.patch Patch7023: 0002-linux-Make-failure-to-iopl-non-fatal.patch Patch7024: 0003-xfree86-Change-the-semantics-of-driverFunc-GET_REQUI.patch @@ -103,37 +100,14 @@ Patch7025: 0001-Always-install-vbe-and-int10-sdk-headers.patch # do not upstream - do not even use here yet Patch7027: xserver-autobind-hotplug.patch -# backport multi-seat fixes from list -Patch7042: 0003-xf86-fix-multi-seat-video-device-support.patch - -# backport dri2 drawable fix -Patch7051: 0001-dri2-invalidate-drawable-after-sharing-pixmap.patch - Patch7052: 0001-xf86-return-NULL-for-compat-output-if-no-outputs.patch -Patch7053: 0001-scan-pci-after-probing-devices.patch - -Patch7054: 0001-config-udev-ignore-change-on-drm-devices.patch - -# Bug 852841 - Mouse jumps to edges / corners when using an absolute input -# device (ie virtual machine usb tablet) -Patch7055: 0001-dix-set-the-device-transformation-matrix.patch - -# Bug 871064 - Add touchscreen fixes for F18 -Patch7056: 0001-Sync-TouchListener-memory-allocation-with-population.patch -Patch7057: 0001-Xi-Call-UpdateDeviceState-after-the-first-emulated-m.patch -Patch7058: 0001-Xi-Don-t-check-for-TOUCH_END-it-s-never-set.patch -Patch7059: 0001-Xi-don-t-deliver-TouchEnd-to-a-client-waiting-for-To.patch - # kernel doesn't use _INPUT_H anymore Patch7060: 0001-xf86-Fix-build-against-recent-Linux-kernel.patch # Fix non-PCI configuration-less setups - broken #Patch7061: v2-xf86-Fix-non-PCI-configuration-less-setups.patch -# fdo Bug 54934 - Crash on XGrabDevice() of deactivated synaptics device - -Patch7062: 0001-dix-fix-crash-on-XI-1.x-grabs-on-disabled-devices.-5.patch - # Bug 878956 - After installation is complete, Alt+F4 is broken Patch7063: 0001-linux-Prefer-ioctl-KDSKBMUTE-1-over-ioctl-KDSKBMODE-.patch @@ -146,8 +120,6 @@ Patch7066: 0001-xf86crtc-don-t-use-display-for-vx-vy-for-gpu-screens.patch # autoconfig: send events Patch7067: 0001-autoconfig-fixup-tell-changed-so-randr-clients-can-t.patch -Patch7068: 0001-Touch-Fix-duplicate-TouchBegin-selection-with-virtua.patch - %global moduledir %{_libdir}/xorg/modules %global drimoduledir %{_libdir}/dri %global sdkdir %{_includedir}/xorg @@ -620,6 +592,9 @@ rm -rf $RPM_BUILD_ROOT %{xserver_source_dir} %changelog +* Tue Dec 18 2012 Peter Hutterer 1.13.1-1 +- server 1.13.1 + * Fri Dec 14 2012 Adam Jackson 1.13.0-15 - Cherry-pick a fix for selection for TouchBegin from multiple clients diff --git a/xserver-1.12-xkb-fill-in-keycode-and-event-type-for-slow-keys-ena.patch b/xserver-1.12-xkb-fill-in-keycode-and-event-type-for-slow-keys-ena.patch deleted file mode 100644 index acf79b1..0000000 --- a/xserver-1.12-xkb-fill-in-keycode-and-event-type-for-slow-keys-ena.patch +++ /dev/null @@ -1,68 +0,0 @@ -From 5b5941862cc88193fedd2e381f8bec4dcf411ec9 Mon Sep 17 00:00:00 2001 -From: Peter Hutterer -Date: Tue, 26 Jun 2012 10:30:35 +1000 -Subject: [PATCH] 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 ---- - include/xkbsrv.h | 1 + - xkb/xkbAccessX.c | 6 ++++-- - 2 files changed, 5 insertions(+), 2 deletions(-) - -diff --git a/include/xkbsrv.h b/include/xkbsrv.h -index a19c8fb..f839edb 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 fe28e12..e7e0b73 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, --- -1.7.10.2 -