Skip to content

Commit

Permalink
Change accelerators again to be more mac like
Browse files Browse the repository at this point in the history
After playing around with the beta quite a bit, it really bothered me
to have half be ‘cmd’ and half be ‘ctrl’, to the point where it almost
made me want to do away with ‘cmd’ altogether  (really non-standard on
OSX). This way is a little smarter and only changes the conflicting
accelerators to alt-cmd which while being a little more mac standard,
as well as be acceptable ascetically when combined with other
accelerators that are just cmd.
  • Loading branch information
JoshuaPettus committed Jan 30, 2016
1 parent 29e4282 commit 43c0079
Showing 1 changed file with 18 additions and 8 deletions.
26 changes: 18 additions & 8 deletions gtk/xoptions.c
Original file line number Diff line number Diff line change
Expand Up @@ -445,19 +445,29 @@ CreateMenuPopup (Option *opt, int n, int def)
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);
Expand Down

0 comments on commit 43c0079

Please sign in to comment.