summaryrefslogtreecommitdiff
path: root/libs
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2009-03-11 19:28:20 +0000
committerPaul Davis <paul@linuxaudiosystems.com>2009-03-11 19:28:20 +0000
commite4f80e68846c88fe7fe60243a0d6a8dd010990b5 (patch)
tree170f6161df86784d67e903d777493f71b3d684b0 /libs
parent463b95ec658d5ff88c48f6bd09dc058d20e80c7a (diff)
correct (or at least better) handling of shifted shortcuts under OS X
git-svn-id: svn://localhost/ardour2/branches/2.0-ongoing@4794 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs')
-rw-r--r--libs/gtkmm2ext/sync-menu.c18
1 files changed, 11 insertions, 7 deletions
diff --git a/libs/gtkmm2ext/sync-menu.c b/libs/gtkmm2ext/sync-menu.c
index 894446c424..3b93436e5d 100644
--- a/libs/gtkmm2ext/sync-menu.c
+++ b/libs/gtkmm2ext/sync-menu.c
@@ -313,6 +313,7 @@ carbon_menu_item_update_accelerator (CarbonMenuItem *carbon_item,
gint n_keys;
gint use_command;
gboolean add_modifiers = FALSE;
+ UInt8 modifiers = 0; /* implies Command key */
if (gdk_keymap_get_entries_for_keyval (keymap, key->accel_key,
&keys, &n_keys) == 0)
@@ -347,16 +348,20 @@ carbon_menu_item_update_accelerator (CarbonMenuItem *carbon_item,
}
} else {
- SetMenuItemCommandKey (carbon_item->menu, carbon_item->index,
- true, keys[0].keycode);
+
+ SetMenuItemCommandKey (carbon_item->menu, carbon_item->index, true, keys[0].keycode);
+ if (keys[0].level == 1)
+ {
+ /* regular key, but it needs shift to make it work */
+ modifiers |= kMenuShiftModifier;
+ }
+
g_free (keys);
- add_modifiers = TRUE;
+ add_modifiers = TRUE;
}
if (add_modifiers)
{
- UInt8 modifiers = 0; /* implies Command key */
-
use_command = 0;
if (key->accel_mods)
@@ -387,7 +392,6 @@ carbon_menu_item_update_accelerator (CarbonMenuItem *carbon_item,
SetMenuItemModifiers (carbon_item->menu, carbon_item->index,
modifiers);
-
return;
}
}
@@ -589,7 +593,7 @@ menu_event_handler_func (EventHandlerCallRef event_handler_call_ref,
sizeof (widget), 0, &widget);
if (err == noErr && GTK_IS_WIDGET (widget))
{
- g_idle_add (dummy_gtk_menu_item_activate, widget);
+ g_idle_add ((GSourceFunc) dummy_gtk_menu_item_activate, widget);
// gtk_menu_item_activate (GTK_MENU_ITEM (widget));
_in_carbon_menu_event_handler = 0;
return noErr;