[PULL unreviewed] touch fixes for #56578
Peter Hutterer
peter.hutterer at who-t.net
Wed May 22 22:57:29 PDT 2013
Still unreviewed, don't expect them to get reviewed or even understood, so
can we please merge this so it gets some testing outside of my box and the
few that see the bug. This fixes a rather bad bug where we just read/write
to a dangling pointer on almost every touch event.
The following changes since commit 2f1aedcaed8fd99b823d451bf1fb02330c078f67:
input: print warnings if drivers don't initialize properly (2013-05-10 11:05:00 +1000)
are available in the git repository at:
git://people.freedesktop.org/~whot/xserver touch-grab-race-condition-56578-v3
for you to fetch changes up to 9a5ad65330693b3273972b63d10f2907d9ab954a:
Abstract cursor refcounting (2013-05-15 19:17:57 +1000)
----------------------------------------------------------------
Peter Hutterer (28):
Xi: not having an ownership mask does not mean automatic acceptance
dix: don't prepend an activated passive grab to the listeners
Xi: if we delivered a TouchEnd to a passive grab, end it
Xi: update the core listener state if we delivered the touch event
Xi: fix lookup in ActivateEarlyAccept
Xi: if a passive async grab is activated from an emulated touch, accept
Xi: save state for early acceptance
Xi: when punting to a new owner, always create TouchEnd events
Xi: use public.processInputProc to replay the touch history
Xi: Don't emit a TouchEnd event to a frozen device
dix: move EmitTouchEnd to touch.c
dix: XAllowEvents() on a touch event means accepting it
dix: invert a loop condition
dix: use a tmp variable for the to-be-removed touch listener
dix: drop DeviceIntRec's activeGrab struct
dix: use a temporary variable for listeners[0]
dix: freeing a null grab is a bug, complain if doing so
dix: AllocGrab can copy if an argument is passed in
dix: always copy grabs, don't reference them
dix: remove all listeners when freeing a touch
Move TouchListenerGone call to CloseDownClient
Xi: check for HAS_ACCEPTED only for grab listeners
dix: free the old grab when activating a new grab
dix: fix cursor refcounting
Xi: fix warning - remove unused 'rc'
dix: devices must have valuators before touch is initialized
dix: call UpdateDeviceState() for emulated TouchEndEvents
Abstract cursor refcounting
Xext/saver.c | 8 +--
Xi/exevents.c | 120 ++++++++++++++++++++---------------------
Xi/ungrdevb.c | 2 +-
Xi/ungrdevk.c | 2 +-
Xi/xipassivegrab.c | 2 +-
dix/cursor.c | 33 +++++++++++-
dix/devices.c | 5 +-
dix/dispatch.c | 1 +
dix/events.c | 89 +++++++++++++++---------------
dix/grabs.c | 21 ++++----
dix/touch.c | 114 ++++++++++++++++++++++++++++++++-------
dix/window.c | 15 ++----
hw/xfree86/modes/xf86Cursors.c | 4 +-
hw/xfree86/ramdac/xf86Cursor.c | 28 +++++-----
include/cursor.h | 4 ++
include/dixgrabs.h | 2 +-
include/eventstr.h | 1 +
include/input.h | 2 +
include/inputstr.h | 2 +-
render/animcur.c | 3 +-
xfixes/cursor.c | 6 +--
21 files changed, 287 insertions(+), 177 deletions(-)
More information about the xorg-devel
mailing list