xserver-multidpi/Xi
Peter Hutterer a7e23a79c1 Xi: Add support for Enter and FocusIn grabs.
Enter grabs are checked for in CheckMotion(), each time the sprite window
changes the current grab is deactivated (if applicable) and the new grab is
activated (if applicable). Exception - if the grab is on a parent window of
the current window since we keep the grab across descendants.

Since CheckMotion() may change the grab status of a device, we mustn't get
"dev->deviceGrab.grab" in ProcessOtherEvents until after CheckMotion().
FocusIn grabs are checked in much the same manner.

The event delivery for grabs replaces the NotifyNormal on window change with
a NotifyGrab on window change. Note that this happens before the grab
activates, so the EnterNotify(NotifyGrab) is still delivered to the window,
not to the grabbing client. This is in line with the core protocol semantics
for NotifyGrab events.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-05-27 14:40:58 +10:00
..
allowev.c dix: remove un-used parameter "core" from AllowSome 2009-04-19 22:28:11 +10:00
allowev.h indent fixes (OMG SO UGLY), and nuke old RCS keywords. 2006-02-20 22:16:49 +00:00
chdevcur.c Xi: silence two compiler warnings 2009-05-22 15:44:58 +10:00
chdevcur.h Update to new XI2 names 2009-05-16 12:20:58 +10:00
chdevhier.c Input: rename DeviceIntRec->isMaster to ->type. 2009-05-22 15:44:50 +10:00
chdevhier.h Update to new XI2 names 2009-05-16 12:20:58 +10:00
chgdctl.c input: reduce the number of superfluous hierarchy events 2009-05-16 12:20:58 +10:00
chgdctl.h indent fixes (OMG SO UGLY), and nuke old RCS keywords. 2006-02-20 22:16:49 +00:00
chgfctl.c Remove #define NEED_EVENTS and NEED_REPLIES 2008-12-12 11:43:32 +10:00
chgfctl.h Static cleanup on Xi/ 2007-03-25 21:18:39 -04:00
chgkbd.c Remove #define NEED_EVENTS and NEED_REPLIES 2008-12-12 11:43:32 +10:00
chgkbd.h Xi: disallow changing core keyboard and pointer 2006-10-29 03:43:34 +03:00
chgkmap.c Remove #define NEED_EVENTS and NEED_REPLIES 2008-12-12 11:43:32 +10:00
chgkmap.h indent fixes (OMG SO UGLY), and nuke old RCS keywords. 2006-02-20 22:16:49 +00:00
chgprop.c Remove #define NEED_EVENTS and NEED_REPLIES 2008-12-12 11:43:32 +10:00
chgprop.h indent fixes (OMG SO UGLY), and nuke old RCS keywords. 2006-02-20 22:16:49 +00:00
chgptr.c Remove #define NEED_EVENTS and NEED_REPLIES 2008-12-12 11:43:32 +10:00
chgptr.h Static cleanup on Xi/ 2007-03-25 21:18:39 -04:00
closedev.c Remove #define NEED_EVENTS and NEED_REPLIES 2008-12-12 11:43:32 +10:00
closedev.h Static cleanup on Xi/ 2007-03-25 21:18:39 -04:00
devbell.c Remove #define NEED_EVENTS and NEED_REPLIES 2008-12-12 11:43:32 +10:00
devbell.h indent fixes (OMG SO UGLY), and nuke old RCS keywords. 2006-02-20 22:16:49 +00:00
exevents.c Xi: Add support for Enter and FocusIn grabs. 2009-05-27 14:40:58 +10:00
exglobals.h Xi: purge old device enter/leave masks. 2009-03-20 15:17:57 +10:00
extinit.c Xi: add request processing for XIGetSelectedEvents. 2009-05-25 14:58:12 +10:00
getbmap.c Remove #define NEED_EVENTS and NEED_REPLIES 2008-12-12 11:43:32 +10:00
getbmap.h indent fixes (OMG SO UGLY), and nuke old RCS keywords. 2006-02-20 22:16:49 +00:00
getcptr.c Xi: name-space and fix XI2 requests 2009-03-20 15:17:55 +10:00
getcptr.h Xi: name-space and fix XI2 requests 2009-03-20 15:17:55 +10:00
getdctl.c Remove #define NEED_EVENTS and NEED_REPLIES 2008-12-12 11:43:32 +10:00
getdctl.h Static cleanup on Xi/ 2007-03-25 21:18:39 -04:00
getfctl.c Remove #define NEED_EVENTS and NEED_REPLIES 2008-12-12 11:43:32 +10:00
getfctl.h Static cleanup on Xi/ 2007-03-25 21:18:39 -04:00
getfocus.c Remove #define NEED_EVENTS and NEED_REPLIES 2008-12-12 11:43:32 +10:00
getfocus.h indent fixes (OMG SO UGLY), and nuke old RCS keywords. 2006-02-20 22:16:49 +00:00
getkmap.c Input: Remove core keysyms from KeyClassRec 2009-01-22 15:08:59 +11:00
getkmap.h indent fixes (OMG SO UGLY), and nuke old RCS keywords. 2006-02-20 22:16:49 +00:00
getmmap.c Input: Remove modifierKeyMap 2009-01-22 15:08:55 +11:00
getmmap.h indent fixes (OMG SO UGLY), and nuke old RCS keywords. 2006-02-20 22:16:49 +00:00
getprop.c Remove #define NEED_EVENTS and NEED_REPLIES 2008-12-12 11:43:32 +10:00
getprop.h indent fixes (OMG SO UGLY), and nuke old RCS keywords. 2006-02-20 22:16:49 +00:00
getselev.c Remove #define NEED_EVENTS and NEED_REPLIES 2008-12-12 11:43:32 +10:00
getselev.h indent fixes (OMG SO UGLY), and nuke old RCS keywords. 2006-02-20 22:16:49 +00:00
getvers.c Xi: remove the GetExtensionVersion hack. 2009-04-19 22:24:13 +10:00
getvers.h indent fixes (OMG SO UGLY), and nuke old RCS keywords. 2006-02-20 22:16:49 +00:00
grabdev.c input: use a GrabMask union in GrabDevice to allow for XI2 masks. 2009-04-19 22:28:11 +10:00
grabdev.h indent fixes (OMG SO UGLY), and nuke old RCS keywords. 2006-02-20 22:16:49 +00:00
grabdevb.c input: reshuffle CreateGrab and friends to take a GrabParameters param. 2009-05-01 09:07:37 +10:00
grabdevb.h indent fixes (OMG SO UGLY), and nuke old RCS keywords. 2006-02-20 22:16:49 +00:00
grabdevk.c input: reshuffle CreateGrab and friends to take a GrabParameters param. 2009-05-01 09:07:37 +10:00
grabdevk.h indent fixes (OMG SO UGLY), and nuke old RCS keywords. 2006-02-20 22:16:49 +00:00
gtmotion.c Remove #define NEED_EVENTS and NEED_REPLIES 2008-12-12 11:43:32 +10:00
gtmotion.h indent fixes (OMG SO UGLY), and nuke old RCS keywords. 2006-02-20 22:16:49 +00:00
listdev.c Input: rename DeviceIntRec->isMaster to ->type. 2009-05-22 15:44:50 +10:00
listdev.h Xi: Change ChangeMasterDeviceClasses to new XI2 events. 2009-03-20 15:17:55 +10:00
Makefile.am Xi: add GrabButton and GrabKeysym code. 2009-05-06 14:37:33 +10:00
opendev.c Input: rename DeviceIntRec->isMaster to ->type. 2009-05-22 15:44:50 +10:00
opendev.h indent fixes (OMG SO UGLY), and nuke old RCS keywords. 2006-02-20 22:16:49 +00:00
querydev.c Input: rename DeviceIntRec->isMaster to ->type. 2009-05-22 15:44:50 +10:00
querydev.h Xi: Change ChangeMasterDeviceClasses to new XI2 events. 2009-03-20 15:17:55 +10:00
querydp.c Xi: fix length field in XIQueryPointer. 2009-05-18 16:30:12 +10:00
querydp.h Update to new XI2 names 2009-05-16 12:20:58 +10:00
queryst.c Input: Remove core keysyms from KeyClassRec 2009-01-22 15:08:59 +11:00
queryst.h indent fixes (OMG SO UGLY), and nuke old RCS keywords. 2006-02-20 22:16:49 +00:00
queryversion.c Xi: add XIQueryVersion request handling. 2009-03-20 15:17:54 +10:00
queryversion.h Xi: add XIQueryVersion request handling. 2009-03-20 15:17:54 +10:00
selectev.c input: update to inputproto 1.9.99.8 XI2 defines. 2009-05-08 14:33:44 +10:00
selectev.h indent fixes (OMG SO UGLY), and nuke old RCS keywords. 2006-02-20 22:16:49 +00:00
sendexev.c Remove #define NEED_EVENTS and NEED_REPLIES 2008-12-12 11:43:32 +10:00
sendexev.h indent fixes (OMG SO UGLY), and nuke old RCS keywords. 2006-02-20 22:16:49 +00:00
setbmap.c Xi: initialize the device before applying button map changes. 2009-02-03 11:12:01 +10:00
setbmap.h indent fixes (OMG SO UGLY), and nuke old RCS keywords. 2006-02-20 22:16:49 +00:00
setcptr.c Input: rename DeviceIntRec->isMaster to ->type. 2009-05-22 15:44:50 +10:00
setcptr.h Xi: name-space and fix XI2 requests 2009-03-20 15:17:55 +10:00
setdval.c Remove #define NEED_EVENTS and NEED_REPLIES 2008-12-12 11:43:32 +10:00
setdval.h indent fixes (OMG SO UGLY), and nuke old RCS keywords. 2006-02-20 22:16:49 +00:00
setfocus.c Remove #define NEED_EVENTS and NEED_REPLIES 2008-12-12 11:43:32 +10:00
setfocus.h indent fixes (OMG SO UGLY), and nuke old RCS keywords. 2006-02-20 22:16:49 +00:00
setmmap.c dix: Force deviced ids of 2 and higher for actual devices. 2009-03-20 15:17:54 +10:00
setmmap.h indent fixes (OMG SO UGLY), and nuke old RCS keywords. 2006-02-20 22:16:49 +00:00
setmode.c Remove #define NEED_EVENTS and NEED_REPLIES 2008-12-12 11:43:32 +10:00
setmode.h indent fixes (OMG SO UGLY), and nuke old RCS keywords. 2006-02-20 22:16:49 +00:00
stubs.c Remove #define NEED_EVENTS and NEED_REPLIES 2008-12-12 11:43:32 +10:00
ungrdev.c input: replace GrabRec's coreGrab field with grabtype. 2009-04-19 22:28:08 +10:00
ungrdev.h indent fixes (OMG SO UGLY), and nuke old RCS keywords. 2006-02-20 22:16:49 +00:00
ungrdevb.c input: ensure various ProcUngrabKey/Buttons have the right grabtype set. 2009-05-04 17:40:29 +10:00
ungrdevb.h indent fixes (OMG SO UGLY), and nuke old RCS keywords. 2006-02-20 22:16:49 +00:00
ungrdevk.c input: ensure various ProcUngrabKey/Buttons have the right grabtype set. 2009-05-04 17:40:29 +10:00
ungrdevk.h indent fixes (OMG SO UGLY), and nuke old RCS keywords. 2006-02-20 22:16:49 +00:00
warpdevp.c Update to new XI2 names 2009-05-16 12:20:58 +10:00
warpdevp.h Update to new XI2 names 2009-05-16 12:20:58 +10:00
xiallowev.c Input: rename DeviceIntRec->isMaster to ->type. 2009-05-22 15:44:50 +10:00
xiallowev.h Xi: add support for XIAllowEvents. 2009-04-19 22:28:11 +10:00
xigrabdev.c Input: rename DeviceIntRec->isMaster to ->type. 2009-05-22 15:44:50 +10:00
xigrabdev.h Xi: Add support for XI2 active grabs and ungrabs. 2009-04-19 22:28:11 +10:00
xipassivegrab.c Xi: Add support for Enter and FocusIn grabs. 2009-05-27 14:40:58 +10:00
xipassivegrab.h Xi: add GrabButton and GrabKeysym code. 2009-05-06 14:37:33 +10:00
xiproperty.c Xi: silence two compiler warnings 2009-05-22 15:44:58 +10:00
xiproperty.h Xi: Add XI2 property requests. 2009-05-08 14:33:23 +10:00
xiselectev.c Xi: add request processing for XIGetSelectedEvents. 2009-05-25 14:58:12 +10:00
xiselectev.h Xi: add request processing for XIGetSelectedEvents. 2009-05-25 14:58:12 +10:00
xisetdevfocus.c Update to new XI2 names 2009-05-16 12:20:58 +10:00
xisetdevfocus.h Update to new XI2 names 2009-05-16 12:20:58 +10:00