mirror of
https://github.com/X11Libre/xserver.git
synced 2026-09-21 20:26:45 +00:00
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>
This commit is contained in:
parent
ec2fe9660d
commit
a7e23a79c1
6 changed files with 215 additions and 27 deletions
|
|
@ -107,6 +107,13 @@ extern int GrabKey(
|
|||
GrabType /* grabtype */,
|
||||
GrabMask* /* eventMask */);
|
||||
|
||||
extern int GrabWindow(
|
||||
ClientPtr /* client */,
|
||||
DeviceIntPtr /* dev */,
|
||||
int /* type */,
|
||||
GrabParameters* /* param */,
|
||||
GrabMask* /* eventMask */);
|
||||
|
||||
extern int SelectForWindow(
|
||||
DeviceIntPtr /* dev */,
|
||||
WindowPtr /* pWin */,
|
||||
|
|
|
|||
Loading…
Reference in a new issue