gtk_accelerator_parse(mb[i].accel, &accelerator_key, &accelerator_mods);
#ifdef OSXAPP
if(accelerator_mods & GDK_CONTROL_MASK &&
- accelerator_key != 'v' && // don't use Cmd+V
+ accelerator_key != 'v' && // don't use Cmd+V as this is a OS text edit command
accelerator_key != 'c' && // and Cmd+C
accelerator_key != 'x' && // and CMD+X
- accelerator_key != 'a' && // and CMD+A
- accelerator_key != 'w' && // and evreything else in mode menu for umiformity's sake
- accelerator_key != 'b' &&
- accelerator_key != 't' &&
- accelerator_key != 'g' &&
- accelerator_key != 'e'
+ accelerator_key != 'a' // and CMD+A
) { // in OSX use Meta (Cmd) where Linux uses Ctrl
accelerator_mods &= ~GDK_CONTROL_MASK; // clear Ctrl flag
accelerator_mods |= GDK_META_MASK; // set Meta flag
- }
+ } else if (accelerator_mods & GDK_CONTROL_MASK &&
+ accelerator_key == 'v' ||
+ accelerator_key == 'c' ||
+ accelerator_key == 'x' ||
+ accelerator_key == 'a'
+ ) { // For these conflicting commands, lets make them alt-cmd
+ accelerator_mods &= ~GDK_CONTROL_MASK; // clear Ctrl flag
+ accelerator_mods |= GDK_META_MASK;
+ accelerator_mods |= GDK_MOD1_MASK;
+ }
+ if (accelerator_mods & GDK_SHIFT_MASK &&
+ GDK_META_MASK &&
+ GDK_MOD1_MASK
+ ) { // If there is a shift, we can get rid of alt as it is awfully cumbersome to press
+ accelerator_mods &= ~GDK_MOD1_MASK; // clear ALT flag
+ }
#endif
gtk_widget_add_accelerator (GTK_WIDGET(entry), "activate",GtkAccelerators,
accelerator_key, accelerator_mods, GTK_ACCEL_VISIBLE);