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