accel: Add display arg to gtk_accelerator_parse_with_keycode()
authorBenjamin Otte <otte@redhat.com>
Mon, 20 Aug 2018 22:44:47 +0000 (00:44 +0200)
committerMatthias Clasen <mclasen@redhat.com>
Thu, 26 Mar 2020 03:14:28 +0000 (23:14 -0400)
It was using the default display unconditionally.

gtk/gtkaccelgroup.c
gtk/gtkaccelgroup.h
testsuite/gtk/accel.c

index 24f14b96d00caa3d84211865b1458e10592a7e8a..76817a0d1207002c4703f573717eb2aa7a1cb269 100644 (file)
@@ -912,6 +912,7 @@ is_keycode (const gchar *string)
 /**
  * gtk_accelerator_parse_with_keycode:
  * @accelerator: string representing an accelerator
+ * @display: (allow-none): the #GdkDisplay to look up @accelerator_codes in
  * @accelerator_key: (out) (allow-none): return location for accelerator
  *     keyval, or %NULL
  * @accelerator_codes: (out) (array zero-terminated=1) (transfer full) (allow-none):
@@ -937,6 +938,7 @@ is_keycode (const gchar *string)
  */
 gboolean
 gtk_accelerator_parse_with_keycode (const gchar     *accelerator,
+                                    GdkDisplay      *display,
                                     guint           *accelerator_key,
                                     guint          **accelerator_codes,
                                     GdkModifierType *accelerator_mods)
@@ -1100,7 +1102,7 @@ gtk_accelerator_parse_with_keycode (const gchar     *accelerator,
 
           if (keyval && accelerator_codes != NULL)
             {
-              GdkKeymap *keymap = gdk_display_get_keymap (gdk_display_get_default ());
+              GdkKeymap *keymap = gdk_display_get_keymap (display ? display : gdk_display_get_default ());
               GdkKeymapKey *keys;
               gint n_keys, i, j;
 
@@ -1193,7 +1195,7 @@ gtk_accelerator_parse (const gchar     *accelerator,
                        guint           *accelerator_key,
                        GdkModifierType *accelerator_mods)
 {
-  return gtk_accelerator_parse_with_keycode (accelerator, accelerator_key, NULL, accelerator_mods);
+  return gtk_accelerator_parse_with_keycode (accelerator, NULL, accelerator_key, NULL, accelerator_mods);
 }
 
 /**
index cc5d64c58a03889d9c32116638f5bc1d0d2d3151..2efa8688999dab1ae52479c78f9d96eb627bbc5e 100644 (file)
@@ -189,6 +189,7 @@ gboolean gtk_accelerator_parse                    (const gchar     *accelerator,
                                               GdkModifierType *accelerator_mods);
 GDK_AVAILABLE_IN_ALL
 gboolean gtk_accelerator_parse_with_keycode   (const gchar     *accelerator,
+                                               GdkDisplay      *display,
                                                guint           *accelerator_key,
                                                guint          **accelerator_codes,
                                                GdkModifierType *accelerator_mods);
index 51e6fc7beef1a9be2efa77c2a887fb8217aabc6a..c49a10e72fb9313e78a29162bdee51ab6ac460c5 100644 (file)
@@ -29,6 +29,7 @@ test_one_accel (const char *accel,
 
   accel_key = 0;
   g_assert (gtk_accelerator_parse_with_keycode (accel,
+                                                gdk_display_get_default (),
                                                 &accel_key,
                                                 &keycodes,
                                                 &mods));