Sync with upstream git, bringing in a bunch if bug-fixes
- Add some extra fixes which are pending upstream - This also adds PointerWarping emulation to Xwayland, which should improve compatiblity with many games
This commit is contained in:
parent
b1bac6c833
commit
9536f6a6e6
69
0009-xwayland-Activate-and-enable-touch-devices.patch
Normal file
69
0009-xwayland-Activate-and-enable-touch-devices.patch
Normal file
@ -0,0 +1,69 @@
|
||||
From e912742c1e26ef853064ddf672d990e1db254492 Mon Sep 17 00:00:00 2001
|
||||
From: Olivier Fourdan <ofourdan@redhat.com>
|
||||
Date: Fri, 21 Oct 2016 10:11:45 +0200
|
||||
Subject: [PATCH xserver v2] xwayland: Activate and enable touch devices
|
||||
|
||||
On some random condition, a touch event may trigger a crash in Xwayland
|
||||
in GetTouchEvents().
|
||||
|
||||
The (simplified) backtrace goes as follow:
|
||||
|
||||
(gdb) bt
|
||||
#0 GetTouchEvents() at getevents.c:1892
|
||||
#1 QueueTouchEvents() at getevents.c:1866
|
||||
#2 xwl_touch_send_event() at xwayland-input.c:652
|
||||
#5 wl_closure_invoke() from libwayland-client.so.0
|
||||
#6 dispatch_event() from libwayland-client.so.0
|
||||
#7 wl_display_dispatch_queue_pending() from libwayland-client.so.0
|
||||
#8 xwl_read_events() at xwayland.c:483
|
||||
#9 ospoll_wait() at ospoll.c:412
|
||||
#10 WaitForSomething() at WaitFor.c:222
|
||||
#11 Dispatch() at dispatch.c:412
|
||||
#12 dix_main() at main.c:287
|
||||
#13 __libc_start_main() at libc-start.c:289
|
||||
#14 _start ()
|
||||
|
||||
The crash occurs when trying to access the sprite associated with the
|
||||
touch device, which appears to be NULL. Reason being the device itself
|
||||
is more a keyboard device than a touch device.
|
||||
|
||||
Moreover, it appears the device is neither enabled nor activated
|
||||
(inited=0, enabled=0) which doesn't seem right, but matches the code in
|
||||
init_touch() from xwayland-input.c which would enable the device if it
|
||||
was previously existing and otherwise would create the device but not
|
||||
activate it.
|
||||
|
||||
Make sure we do activate and enable touch devices just like we do for
|
||||
other input devices such as keyboard and pointer.
|
||||
|
||||
Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
|
||||
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
|
||||
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
|
||||
---
|
||||
hw/xwayland/xwayland-input.c | 7 ++++---
|
||||
1 file changed, 4 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/hw/xwayland/xwayland-input.c b/hw/xwayland/xwayland-input.c
|
||||
index 1991076..7ec3b1a 100644
|
||||
--- a/hw/xwayland/xwayland-input.c
|
||||
+++ b/hw/xwayland/xwayland-input.c
|
||||
@@ -1059,12 +1059,13 @@ init_touch(struct xwl_seat *xwl_seat)
|
||||
wl_touch_add_listener(xwl_seat->wl_touch,
|
||||
&touch_listener, xwl_seat);
|
||||
|
||||
- if (xwl_seat->touch)
|
||||
- EnableDevice(xwl_seat->touch, TRUE);
|
||||
- else {
|
||||
+ if (xwl_seat->touch == NULL) {
|
||||
xwl_seat->touch =
|
||||
add_device(xwl_seat, "xwayland-touch", xwl_touch_proc);
|
||||
+ ActivateDevice(xwl_seat->touch, TRUE);
|
||||
}
|
||||
+ EnableDevice(xwl_seat->touch, TRUE);
|
||||
+
|
||||
}
|
||||
|
||||
static void
|
||||
--
|
||||
2.9.3
|
||||
|
@ -86,6 +86,7 @@ Patch5: 0005-xfree86-Make-adding-unclaimed-devices-as-GPU-devices.patch
|
||||
Patch6: 0006-xfree86-Try-harder-to-find-atleast-1-non-GPU-Screen.patch
|
||||
Patch7: 0007-inputthread-On-Linux-leave-the-main-thread-s-name-as.patch
|
||||
Patch8: 0008-ramdac-Check-sPriv-NULL-in-xf86CheckHWCursor.patch
|
||||
Patch9: 0009-xwayland-Activate-and-enable-touch-devices.patch
|
||||
|
||||
#Patch6044: xserver-1.6.99-hush-prerelease-warning.patch
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user