#include "gtkaccelgroup.h"
#include "gtkaccelgroupprivate.h"
#include "gtkaccellabel.h"
-#include "gtkaccelmap.h"
+#include "gtkaccelmapprivate.h"
#include "gtkintl.h"
#include "gtkmarshalers.h"
#include "gtkprivate.h"
gchar *endptr;
gint tmp_keycode;
- keyval = GDK_KEY_VoidSymbol;
-
memcpy (keystring, accelerator, 4);
keystring [4] = '\000';
}
}
- if (keyval != GDK_KEY_VoidSymbol && accelerator_codes != NULL)
+ if (keyval && accelerator_codes != NULL)
{
GdkKeymapKey *keys;
gint n_keys, i, j;
{
*accelerator_codes = g_new0 (guint, n_keys + 1);
+ /* Prefer level-0 keys to modified keys */
for (i = 0, j = 0; i < n_keys; ++i)
{
if (keys[i].level == 0)
(*accelerator_codes)[j++] = keys[i].keycode;
}
+ /* No level-0 keys? Find in the whole keymap */
+ if (j == 0)
+ {
+ for (i = 0, j = 0; i < n_keys; ++i)
+ (*accelerator_codes)[j++] = keys[i].keycode;
+ }
+
if (j == 0)
{
g_free (*accelerator_codes);