Fix crash in gnome-shell when tapping a menu twice (fdo #66720)
This commit is contained in:
parent
d706dd8e98
commit
198a41aea7
@ -0,0 +1,46 @@
|
||||
From 43f732478606e952fe728a109adeb8edbb63fc13 Mon Sep 17 00:00:00 2001
|
||||
From: Peter Hutterer <peter.hutterer@who-t.net>
|
||||
Date: Tue, 9 Jul 2013 13:27:19 +1000
|
||||
Subject: [PATCH] dix: when ungrabbing an active grab, accept pointer grabs
|
||||
(#66720)
|
||||
|
||||
Ungrabbing a device during an active touch grab rejects the grab. Ungrabbing
|
||||
a device during an active pointer grab accepts the grab.
|
||||
|
||||
Rejection is not really an option for a pointer-emulated grab, if a client
|
||||
has a button mask on the window it would get a ButtonPress emulated after
|
||||
UngrabDevice. That is against the core grab behaviour.
|
||||
|
||||
X.Org Bug 66720 <http://bugs.freedesktop.org/show_bug.cgi?id=66720>
|
||||
|
||||
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
|
||||
---
|
||||
dix/events.c | 7 +++++--
|
||||
1 file changed, 5 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/dix/events.c b/dix/events.c
|
||||
index e5db348..de41d6f 100644
|
||||
--- a/dix/events.c
|
||||
+++ b/dix/events.c
|
||||
@@ -1522,13 +1522,16 @@ DeactivatePointerGrab(DeviceIntPtr mouse)
|
||||
for (i = 0; !wasPassive && mouse->touch && i < mouse->touch->num_touches; i++) {
|
||||
TouchPointInfoPtr ti = mouse->touch->touches + i;
|
||||
if (ti->active && TouchResourceIsOwner(ti, grab_resource)) {
|
||||
+ int mode = XIRejectTouch;
|
||||
/* Rejecting will generate a TouchEnd, but we must not
|
||||
emulate a ButtonRelease here. So pretend the listener
|
||||
already has the end event */
|
||||
if (grab->grabtype == CORE || grab->grabtype == XI ||
|
||||
- !xi2mask_isset(mouse->deviceGrab.grab->xi2mask, mouse, XI_TouchBegin))
|
||||
+ !xi2mask_isset(mouse->deviceGrab.grab->xi2mask, mouse, XI_TouchBegin)) {
|
||||
+ mode = XIAcceptTouch;
|
||||
ti->listeners[0].state = LISTENER_HAS_END;
|
||||
- TouchListenerAcceptReject(mouse, ti, 0, XIRejectTouch);
|
||||
+ }
|
||||
+ TouchListenerAcceptReject(mouse, ti, 0, mode);
|
||||
}
|
||||
}
|
||||
|
||||
--
|
||||
1.8.2.1
|
||||
|
@ -42,7 +42,7 @@
|
||||
Summary: X.Org X11 X server
|
||||
Name: xorg-x11-server
|
||||
Version: 1.14.2
|
||||
Release: 1%{?gitdate:.%{gitdate}}%{dist}
|
||||
Release: 2%{?gitdate:.%{gitdate}}%{dist}
|
||||
URL: http://www.x.org
|
||||
License: MIT
|
||||
Group: User Interface/X
|
||||
@ -138,6 +138,9 @@ Patch8032: 0033-dix-call-UpdateDeviceState-for-emulated-TouchEndEven.patch
|
||||
Patch8033: 0034-Abstract-cursor-refcounting.patch
|
||||
Patch8034: 0035-dix-remove-logspam-in-RefCursor.patch
|
||||
|
||||
# Bug 66720 - Server crash when ungrabbing a touch device on the second touch
|
||||
# https://bugs.freedesktop.org/show_bug.cgi?id=66720
|
||||
Patch8035: 0001-dix-when-ungrabbing-an-active-grab-accept-pointer-gr.patch
|
||||
|
||||
# upstream in -next for 1.15, e21e183059df5975e7086850d1931edb2c1bbd06
|
||||
%if !0%{?rhel}
|
||||
@ -616,6 +619,9 @@ rm -rf $RPM_BUILD_ROOT
|
||||
%{xserver_source_dir}
|
||||
|
||||
%changelog
|
||||
* Tue Jul 09 2013 Peter Hutterer <peter.hutterer@redhat.com> 1.14.2-2
|
||||
- Fix crash in gnome-shell when tapping a menu twice (fdo #66720)
|
||||
|
||||
* Thu Jul 04 2013 Peter Hutterer <peter.hutterer@redhat.com> 1.14.2-1
|
||||
- xorg-server 1.4.2
|
||||
- drop merged patches
|
||||
|
Loading…
Reference in New Issue
Block a user