From c69adb9607f2d94e0a78261e4c3a05662e4243dd Mon Sep 17 00:00:00 2001 From: Joshua Pettus Date: Fri, 29 Jan 2016 21:32:58 -0500 Subject: [PATCH] Change accelerators again to be more mac like MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit 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. --- gtk/xoptions.c | 26 ++++++++++++++++++-------- 1 files changed, 18 insertions(+), 8 deletions(-) diff --git a/gtk/xoptions.c b/gtk/xoptions.c index c49d139..07295fd 100644 --- a/gtk/xoptions.c +++ b/gtk/xoptions.c @@ -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); -- 1.7.0.4