2003-11-14 17:48:57 +01:00
|
|
|
/************************************************************
|
|
|
|
|
|
|
|
Copyright 1996 by Thomas E. Dickey <dickey@clark.net>
|
|
|
|
|
|
|
|
All Rights Reserved
|
|
|
|
|
|
|
|
Permission to use, copy, modify, and distribute this software and its
|
|
|
|
documentation for any purpose and without fee is hereby granted,
|
|
|
|
provided that the above copyright notice appear in all copies and that
|
|
|
|
both that copyright notice and this permission notice appear in
|
|
|
|
supporting documentation, and that the name of the above listed
|
|
|
|
copyright holder(s) not be used in advertising or publicity pertaining
|
|
|
|
to distribution of the software without specific, written prior
|
|
|
|
permission.
|
|
|
|
|
|
|
|
THE ABOVE LISTED COPYRIGHT HOLDER(S) DISCLAIM ALL WARRANTIES WITH REGARD
|
|
|
|
TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
|
|
|
AND FITNESS, IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT HOLDER(S) BE
|
|
|
|
LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
|
|
|
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
|
|
|
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
|
|
|
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
|
|
|
|
|
|
|
********************************************************/
|
|
|
|
|
|
|
|
#ifndef DIXGRABS_H
|
|
|
|
#define DIXGRABS_H 1
|
|
|
|
|
2009-04-28 08:49:45 +02:00
|
|
|
struct _GrabParameters;
|
|
|
|
|
XKB: Add debug key actions for grabs & window tree
Add four new private XKB actions for debugging:
* PrGrbs: print active grabs to the log file
* Ungrab: ungrab all currently active grabs
* ClsGrb: kill clients with active grabs
* PrWins: dump the current window tree to the log file
To use these, you need to modify your XKB maps, e.g. the following to
have Ctrl+Alt+(F9-F12) mapped to the above:
- compat/xfree86:
interpret XF86LogGrabInfo {
action = Private(type=0x86, data="PrGrbs");
};
interpret XF86Ungrab {
action = Private(type=0x86, data="Ungrab");
}
interpret XF86ClearGrab {
action = Private(type=0x86, data="ClsGrb");
}
interpret XF86LogWindowTree {
action = Private(type=0x86, data="PrWins");
}
- symbols/pc:
key <FK09> { type="CTRL+ALT", [ Return, XF86LogGrabInfo ] };
key <FK10> { type="CTRL+ALT", [ Return, XF86Ungrab ] };
key <FK11> { type="CTRL+ALT", [ Return, XF86ClearGrab ] };
key <FK12> { type="CTRL+ALT", [ Return, XF86LogWindowTree ] };
At the moment, this only works if the grabbing client continues to call
AllowEvents, as the server does no event processing at all when a device
is frozen.
Signed-off-by: Daniel Stone <daniel@fooishbar.org>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2010-12-29 13:03:01 +01:00
|
|
|
extern void PrintDeviceGrabInfo(DeviceIntPtr dev);
|
|
|
|
extern void UngrabAllDevices(Bool kill_client);
|
|
|
|
|
2013-04-23 07:52:18 +02:00
|
|
|
extern GrabPtr AllocGrab(const GrabPtr src);
|
2011-11-03 07:12:09 +01:00
|
|
|
extern void FreeGrab(GrabPtr grab);
|
2011-11-04 01:44:31 +01:00
|
|
|
extern Bool CopyGrab(GrabPtr dst, const GrabPtr src);
|
2011-11-03 07:12:09 +01:00
|
|
|
|
2012-03-21 20:55:09 +01:00
|
|
|
extern GrabPtr CreateGrab(int /* client */ ,
|
|
|
|
DeviceIntPtr /* device */ ,
|
|
|
|
DeviceIntPtr /* modDevice */ ,
|
|
|
|
WindowPtr /* window */ ,
|
|
|
|
enum InputLevel /* grabtype */ ,
|
|
|
|
GrabMask * /* mask */ ,
|
|
|
|
struct _GrabParameters * /* param */ ,
|
|
|
|
int /* type */ ,
|
|
|
|
KeyCode /* keybut */ ,
|
|
|
|
WindowPtr /* confineTo */ ,
|
|
|
|
CursorPtr /* cursor */ );
|
2003-11-14 17:48:57 +01:00
|
|
|
|
2014-03-10 23:31:33 +01:00
|
|
|
extern _X_EXPORT int DeletePassiveGrab(void *value,
|
|
|
|
XID id);
|
2003-11-14 17:48:57 +01:00
|
|
|
|
2012-03-21 20:55:09 +01:00
|
|
|
extern _X_EXPORT Bool GrabMatchesSecond(GrabPtr /* pFirstGrab */ ,
|
|
|
|
GrabPtr /* pSecondGrab */ ,
|
|
|
|
Bool /*ignoreDevice */ );
|
2003-11-14 17:48:57 +01:00
|
|
|
|
2012-03-21 20:55:09 +01:00
|
|
|
extern _X_EXPORT int AddPassiveGrabToList(ClientPtr /* client */ ,
|
|
|
|
GrabPtr /* pGrab */ );
|
2003-11-14 17:48:57 +01:00
|
|
|
|
2012-03-21 20:55:09 +01:00
|
|
|
extern _X_EXPORT Bool DeletePassiveGrabFromList(GrabPtr /* pMinuendGrab */ );
|
2003-11-14 17:48:57 +01:00
|
|
|
|
2011-12-08 05:59:06 +01:00
|
|
|
extern Bool GrabIsPointerGrab(GrabPtr grab);
|
|
|
|
extern Bool GrabIsKeyboardGrab(GrabPtr grab);
|
2012-03-21 20:55:09 +01:00
|
|
|
#endif /* DIXGRABS_H */
|