Skip to content

Commit 6d40e38

Browse files
author
Youssef Abou-Kewik
committed
Poor man's solution to accel keys
1 parent 40ef01b commit 6d40e38

3 files changed

Lines changed: 30 additions & 15 deletions

File tree

meld/conf.py

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,3 +45,17 @@ def uninstalled():
4545
data_dir = os.environ.get('XDG_DATA_DIRS', "/usr/local/share/:/usr/share/")
4646
data_dir = ":".join((melddir, data_dir))
4747
os.environ['XDG_DATA_DIRS'] = data_dir
48+
49+
def is_darwin():
50+
return sys.platform == "darwin"
51+
52+
def keymap(accel_key):
53+
if not is_darwin():
54+
return accel_key
55+
else:
56+
import re
57+
pattern = re.compile("control", re.IGNORECASE)
58+
accel1 = pattern.sub("Primary", accel_key)
59+
pattern = re.compile("ctrl", re.IGNORECASE)
60+
accel = pattern.sub("Primary", accel1)
61+
return accel

meld/meldwindow.py

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@
3333
from .ui import notebooklabel
3434

3535
from .util.compat import string_types
36-
from meld.conf import _
36+
from meld.conf import _, keymap
3737
from meld.recent import recent_comparisons
3838
from meld.settings import interface_settings, settings
3939

@@ -46,24 +46,24 @@ def __init__(self):
4646

4747
actions = (
4848
("FileMenu", None, _("_File")),
49-
("New", Gtk.STOCK_NEW, _("_New Comparison..."), "<control>N",
49+
("New", Gtk.STOCK_NEW, _("_New Comparison..."), keymap("<control>N"),
5050
_("Start a new comparison"),
5151
self.on_menu_file_new_activate),
5252
("Save", Gtk.STOCK_SAVE, None, None,
5353
_("Save the current file"),
5454
self.on_menu_save_activate),
55-
("SaveAs", Gtk.STOCK_SAVE_AS, _("Save As..."), "<control><shift>S",
55+
("SaveAs", Gtk.STOCK_SAVE_AS, _("Save As..."), keymap("<control><shift>S"),
5656
_("Save the current file with a different name"),
5757
self.on_menu_save_as_activate),
5858
("Close", Gtk.STOCK_CLOSE, None, None,
5959
_("Close the current file"),
6060
self.on_menu_close_activate),
6161

6262
("EditMenu", None, _("_Edit")),
63-
("Undo", Gtk.STOCK_UNDO, None, "<control>Z",
63+
("Undo", Gtk.STOCK_UNDO, None, keymap("<control>Z"),
6464
_("Undo the last action"),
6565
self.on_menu_undo_activate),
66-
("Redo", Gtk.STOCK_REDO, None, "<control><shift>Z",
66+
("Redo", Gtk.STOCK_REDO, None, keymap("<control><shift>Z"),
6767
_("Redo the last undone action"),
6868
self.on_menu_redo_activate),
6969
("Cut", Gtk.STOCK_CUT, None, None, _("Cut the selection"),
@@ -74,14 +74,14 @@ def __init__(self):
7474
self.on_menu_paste_activate),
7575
("Find", Gtk.STOCK_FIND, _("Find..."), None, _("Search for text"),
7676
self.on_menu_find_activate),
77-
("FindNext", None, _("Find Ne_xt"), "<control>G",
77+
("FindNext", None, _("Find Ne_xt"), keymap("<control>G"),
7878
_("Search forwards for the same text"),
7979
self.on_menu_find_next_activate),
80-
("FindPrevious", None, _("Find _Previous"), "<control><shift>G",
80+
("FindPrevious", None, _("Find _Previous"), keymap("<control><shift>G"),
8181
_("Search backwards for the same text"),
8282
self.on_menu_find_previous_activate),
8383
("Replace", Gtk.STOCK_FIND_AND_REPLACE,
84-
_("_Replace..."), "<control>H",
84+
_("_Replace..."), keymap("<control>H"),
8585
_("Find and replace text"),
8686
self.on_menu_replace_activate),
8787

@@ -104,23 +104,23 @@ def __init__(self):
104104
("Stop", Gtk.STOCK_STOP, None, "Escape",
105105
_("Stop the current action"),
106106
self.on_toolbar_stop_clicked),
107-
("Refresh", Gtk.STOCK_REFRESH, None, "<control>R",
107+
("Refresh", Gtk.STOCK_REFRESH, None, keymap("<control>R"),
108108
_("Refresh the view"),
109109
self.on_menu_refresh_activate),
110110

111111
("TabMenu", None, _("_Tabs")),
112-
("PrevTab", None, _("_Previous Tab"), "<Ctrl><Alt>Page_Up",
112+
("PrevTab", None, _("_Previous Tab"), keymap("<Ctrl><Alt>Page_Up"),
113113
_("Activate previous tab"),
114114
self.on_prev_tab),
115-
("NextTab", None, _("_Next Tab"), "<Ctrl><Alt>Page_Down",
115+
("NextTab", None, _("_Next Tab"), keymap("<Ctrl><Alt>Page_Down"),
116116
_("Activate next tab"),
117117
self.on_next_tab),
118118
("MoveTabPrev", None,
119-
_("Move Tab _Left"), "<Ctrl><Alt><Shift>Page_Up",
119+
_("Move Tab _Left"), keymap("<Ctrl><Alt><Shift>Page_Up"),
120120
_("Move current tab to left"),
121121
self.on_move_tab_prev),
122122
("MoveTabNext", None,
123-
_("Move Tab _Right"), "<Ctrl><Alt><Shift>Page_Down",
123+
_("Move Tab _Right"), keymap("<Ctrl><Alt><Shift>Page_Down"),
124124
_("Move current tab to right"),
125125
self.on_move_tab_next),
126126
)
@@ -203,9 +203,9 @@ def app_action(*args):
203203

204204
# Add alternate keybindings for Prev/Next Change
205205
accels = self.ui.get_accel_group()
206-
(keyval, mask) = Gtk.accelerator_parse("<Ctrl>D")
206+
(keyval, mask) = Gtk.accelerator_parse(keymap("<Ctrl>D"))
207207
accels.connect(keyval, mask, 0, self.on_menu_edit_down_activate)
208-
(keyval, mask) = Gtk.accelerator_parse("<Ctrl>E")
208+
(keyval, mask) = Gtk.accelerator_parse(keymap("<Ctrl>E"))
209209
accels.connect(keyval, mask, 0, self.on_menu_edit_up_activate)
210210
(keyval, mask) = Gtk.accelerator_parse("F5")
211211
accels.connect(keyval, mask, 0, self.on_menu_refresh_activate)

osx/Meld

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ export GTK_PATH="$bundle_res"
2929
export GSETTINGS_SCHEMA_DIR="$bundle_res"/share/glib-2.0
3030

3131
export GDK_PIXBUF_MODULEDIR="$bundle_lib/gdk-pixbuf-2.0/2.10.0/loaders"
32+
export GDK_RENDERING="image"
3233
export PANGO_RC_FILE="$bundle_etc/pango/pangorc"
3334
export PANGO_LIBDIR="$bundle_lib"
3435
export PANGO_SYSCONFDIR="$bundle_etc"

0 commit comments

Comments
 (0)