[mutter/bilelmoussaoui/gdk-x11-only: 17/23] core: Replace gtk_accelerator_parse usage




commit 399888b1799976d2dfc2cbe3b218f498a8f00266
Author: Bilal Elmoussaoui <belmouss redhat com>
Date:   Mon May 9 11:38:06 2022 +0200

    core: Replace gtk_accelerator_parse usage

 src/core/meta-pad-action-mapper.c | 25 ++++++++++++++-----------
 1 file changed, 14 insertions(+), 11 deletions(-)
---
diff --git a/src/core/meta-pad-action-mapper.c b/src/core/meta-pad-action-mapper.c
index dc43924b55..3366cb3dfb 100644
--- a/src/core/meta-pad-action-mapper.c
+++ b/src/core/meta-pad-action-mapper.c
@@ -450,17 +450,17 @@ meta_pad_action_mapper_is_button_grabbed (MetaPadActionMapper *mapper,
 
 static void
 emulate_modifiers (ClutterVirtualInputDevice *device,
-                   ClutterModifierType        mods,
+                   MetaVirtualModifier        mods,
                    ClutterKeyState            state)
 {
   guint i;
   struct {
-    ClutterModifierType mod;
+    MetaVirtualModifier mod;
     guint keyval;
   } mod_map[] = {
-    { CLUTTER_SHIFT_MASK, CLUTTER_KEY_Shift_L },
-    { CLUTTER_CONTROL_MASK, CLUTTER_KEY_Control_L },
-    { CLUTTER_MOD1_MASK, CLUTTER_KEY_Meta_L }
+    { META_VIRTUAL_SHIFT_MASK, CLUTTER_KEY_Shift_L },
+    { META_VIRTUAL_CONTROL_MASK, CLUTTER_KEY_Control_L },
+    { META_VIRTUAL_META_MASK, CLUTTER_KEY_Meta_L }
   };
 
   for (i = 0; i < G_N_ELEMENTS (mod_map); i++)
@@ -480,13 +480,16 @@ meta_pad_action_mapper_emulate_keybinding (MetaPadActionMapper *mapper,
                                            gboolean             is_press)
 {
   ClutterKeyState state;
-  guint key, mods;
+  MetaKeyCombo combo = { 0 };
 
   if (!accel || !*accel)
     return;
 
-  /* FIXME: This is appalling */
-  gtk_accelerator_parse (accel, &key, &mods);
+  if (!meta_parse_accelerator (accel, &combo))
+    {
+      g_warning ("\"%s\" is not a valid accelerator", accel);
+      return;
+    }
 
   if (!mapper->virtual_pad_keyboard)
     {
@@ -504,13 +507,13 @@ meta_pad_action_mapper_emulate_keybinding (MetaPadActionMapper *mapper,
   state = is_press ? CLUTTER_KEY_STATE_PRESSED : CLUTTER_KEY_STATE_RELEASED;
 
   if (is_press)
-    emulate_modifiers (mapper->virtual_pad_keyboard, mods, state);
+    emulate_modifiers (mapper->virtual_pad_keyboard, combo.modifiers, state);
 
   clutter_virtual_input_device_notify_keyval (mapper->virtual_pad_keyboard,
                                               clutter_get_current_event_time (),
-                                              key, state);
+                                              combo.keysym, state);
   if (!is_press)
-    emulate_modifiers (mapper->virtual_pad_keyboard, mods, state);
+    emulate_modifiers (mapper->virtual_pad_keyboard, combo.modifiers, state);
 }
 
 static gboolean


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]