xserver: Branch 'master'
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Fri Jul 31 05:31:00 UTC 2020
hw/xfree86/xkb/xkbPrivate.c | 17 -----------------
xkb/xkbActions.c | 42 +++++++++++++++++++++++++++++++++++++++++-
2 files changed, 41 insertions(+), 18 deletions(-)
New commits:
commit 9d8e7c4828747f6bba438528c6ef6e2577b50522
Author: Ignacio Casal Quinteiro <qignacio at amazon.com>
Date: Thu Jul 16 10:19:43 2020 +0200
XKB: Add debug key actions for grabs & window tree
Replicate 7d2543a3cb3089241982ce4f8984fd723d5312a1 but for
all types of X servers
diff --git a/hw/xfree86/xkb/xkbPrivate.c b/hw/xfree86/xkb/xkbPrivate.c
index 4b9ef3397..009610892 100644
--- a/hw/xfree86/xkb/xkbPrivate.c
+++ b/hw/xfree86/xkb/xkbPrivate.c
@@ -30,23 +30,6 @@ XkbDDXPrivate(DeviceIntPtr dev, KeyCode key, XkbAction *act)
xf86ProcessActionEvent(ACTION_PREV_MODE, NULL);
else if (strcasecmp(msgbuf, "+vmode") == 0)
xf86ProcessActionEvent(ACTION_NEXT_MODE, NULL);
- else if (strcasecmp(msgbuf, "prgrbs") == 0) {
- DeviceIntPtr tmp;
-
- xf86Msg(X_INFO, "Printing all currently active device grabs:\n");
- for (tmp = inputInfo.devices; tmp; tmp = tmp->next)
- if (tmp->deviceGrab.grab)
- PrintDeviceGrabInfo(tmp);
- xf86Msg(X_INFO, "End list of active device grabs\n");
-
- PrintPassiveGrabs();
- }
- else if (strcasecmp(msgbuf, "ungrab") == 0)
- UngrabAllDevices(FALSE);
- else if (strcasecmp(msgbuf, "clsgrb") == 0)
- UngrabAllDevices(TRUE);
- else if (strcasecmp(msgbuf, "prwins") == 0)
- PrintWindowTree();
}
return 0;
diff --git a/xkb/xkbActions.c b/xkb/xkbActions.c
index 2ffd3fadc..db29091e7 100644
--- a/xkb/xkbActions.c
+++ b/xkb/xkbActions.c
@@ -43,6 +43,7 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE.
#include "mi.h"
#include "mipointer.h"
#include "inpututils.h"
+#include "dixgrabs.h"
#define EXTENSION_EVENT_BASE 64
DevPrivateKeyRec xkbDevicePrivateKeyRec;
@@ -992,6 +993,45 @@ _XkbFilterSwitchScreen(XkbSrvInfoPtr xkbi,
return 1;
}
+static int
+XkbHandlePrivate(DeviceIntPtr dev, KeyCode keycode, XkbAction *pAction)
+{
+ XkbAnyAction *xkb_act = &(pAction->any);
+
+ if (xkb_act->type == XkbSA_XFree86Private) {
+ char msgbuf[XkbAnyActionDataSize + 1];
+
+ memcpy(msgbuf, xkb_act->data, XkbAnyActionDataSize);
+ msgbuf[XkbAnyActionDataSize] = '\0';
+
+ if (strcasecmp(msgbuf, "prgrbs") == 0) {
+ DeviceIntPtr tmp;
+
+ LogMessage(X_INFO, "Printing all currently active device grabs:\n");
+ for (tmp = inputInfo.devices; tmp; tmp = tmp->next)
+ if (tmp->deviceGrab.grab)
+ PrintDeviceGrabInfo(tmp);
+ LogMessage(X_INFO, "End list of active device grabs\n");
+
+ PrintPassiveGrabs();
+ }
+ else if (strcasecmp(msgbuf, "ungrab") == 0) {
+ LogMessage(X_INFO, "Ungrabbing devices\n");
+ UngrabAllDevices(FALSE);
+ }
+ else if (strcasecmp(msgbuf, "clsgrb") == 0) {
+ LogMessage(X_INFO, "Clear grabs\n");
+ UngrabAllDevices(TRUE);
+ }
+ else if (strcasecmp(msgbuf, "prwins") == 0) {
+ LogMessage(X_INFO, "Printing window tree\n");
+ PrintWindowTree();
+ }
+ }
+
+ return XkbDDXPrivate(dev, keycode, pAction);
+}
+
static int
_XkbFilterXF86Private(XkbSrvInfoPtr xkbi,
XkbFilterPtr filter, unsigned keycode, XkbAction *pAction)
@@ -1006,7 +1046,7 @@ _XkbFilterXF86Private(XkbSrvInfoPtr xkbi,
filter->active = 1;
filter->filterOthers = 0;
filter->filter = _XkbFilterXF86Private;
- XkbDDXPrivate(dev, keycode, pAction);
+ XkbHandlePrivate(dev, keycode, pAction);
return 0;
}
else if (filter->keycode == keycode) {
More information about the xorg-commit
mailing list