changeset bedc052ab189 in tryton:default
details: https://hg.tryton.org/tryton?cmd=changeset&node=bedc052ab189
description:
        Use CONTROL key as mnemonic modifier on MacOS

        The default MOD1 (which is ALT on MacOS) is used to type special 
character on
        MacOS so it is better to use a modifier that is not used for character 
like
        CONTROL.

        issue10045
        review340241002
diffstat:

 tryton/common/__init__.py    |  5 +++--
 tryton/common/common.py      |  6 ++++++
 tryton/gui/main.py           |  5 +++++
 tryton/gui/window/dblogin.py |  2 ++
 4 files changed, 16 insertions(+), 2 deletions(-)

diffs (80 lines):

diff -r 7d48c1888350 -r bedc052ab189 tryton/common/__init__.py
--- a/tryton/common/__init__.py Tue Mar 23 23:48:32 2021 +0100
+++ b/tryton/common/__init__.py Sat Mar 27 11:41:13 2021 +0100
@@ -9,7 +9,7 @@
     RPCProgress, RPCExecute, RPCContextReload, Tooltips, COLOR_SCHEMES,
     filter_domain, timezoned_date, untimezoned_date, humanize, get_hostname,
     get_port, resize_pixbuf, data2pixbuf, apply_label_attributes, ellipsize,
-    get_align, date_format, idle_add, check_version, TRYTON_ICON)
+    get_align, date_format, idle_add, check_version, TRYTON_ICON, setup_window)
 from .domain_inversion import (
     domain_inversion, eval_domain, localize_domain, merge, inverse_leaf,
     filter_leaf, prepare_reference_domain, extract_reference_models, concat,
@@ -29,4 +29,5 @@
     get_align, date_format, idle_add, domain_inversion, eval_domain,
     localize_domain, merge, inverse_leaf, filter_leaf,
     prepare_reference_domain, extract_reference_models, concat, simplify,
-    unique_value, EvalEnvironment, timedelta, check_version, TRYTON_ICON]
+    unique_value, EvalEnvironment, timedelta, check_version, TRYTON_ICON,
+    setup_window]
diff -r 7d48c1888350 -r bedc052ab189 tryton/common/common.py
--- a/tryton/common/common.py   Tue Mar 23 23:48:32 2021 +0100
+++ b/tryton/common/common.py   Sat Mar 27 11:41:13 2021 +0100
@@ -590,6 +590,7 @@
             parent = get_toplevel_window()
         dialog = self.build_dialog(parent, *args, **kwargs)
         dialog.set_icon(TRYTON_ICON)
+        setup_window(dialog)
         self.running = True
         dialog.show_all()
         response = dialog.run()
@@ -1303,3 +1304,8 @@
     def wrapper(*args, **kwargs):
         GLib.idle_add(func, *args, **kwargs)
     return wrapper
+
+
+def setup_window(window):
+    if sys.platform == 'darwin':
+        window.set_mnemonic_modifier(Gdk.ModifierType.CONTROL_MASK)
diff -r 7d48c1888350 -r bedc052ab189 tryton/gui/main.py
--- a/tryton/gui/main.py        Tue Mar 23 23:48:32 2021 +0100
+++ b/tryton/gui/main.py        Sat Mar 27 11:41:13 2021 +0100
@@ -128,6 +128,7 @@
         self.window.set_icon(TRYTON_ICON)
         self.window.connect("destroy", self.on_quit)
         self.window.connect("delete_event", self.on_quit)
+        common.setup_window(self.window)
 
         self.header = Gtk.HeaderBar.new()
         self.header.set_show_close_button(True)
@@ -276,6 +277,10 @@
         rpc.logout()
         self.quit()
 
+    def add_window(self, window):
+        super().add_window(window)
+        common.setup_window(window)
+
     def _get_primary_menu(self):
         menu = Gio.Menu.new()
         menu.append(_("Preferences..."), 'app.preferences')
diff -r 7d48c1888350 -r bedc052ab189 tryton/gui/window/dblogin.py
--- a/tryton/gui/window/dblogin.py      Tue Mar 23 23:48:32 2021 +0100
+++ b/tryton/gui/window/dblogin.py      Sat Mar 27 11:41:13 2021 +0100
@@ -37,6 +37,7 @@
             set_underline(_("Close")), Gtk.ResponseType.CLOSE)
         self.dialog.set_position(Gtk.WindowPosition.CENTER_ON_PARENT)
         self.dialog.set_icon(TRYTON_ICON)
+        common.setup_window(self.dialog)
 
         tooltips = common.Tooltips()
 
@@ -393,6 +394,7 @@
         self.dialog.set_icon(TRYTON_ICON)
         self.dialog.set_position(Gtk.WindowPosition.CENTER_ALWAYS)
         self.dialog.set_resizable(False)
+        common.setup_window(self.dialog)
 
         tooltips = common.Tooltips()
         button_cancel = Gtk.Button(label=_('_Cancel'), use_underline=True)

Reply via email to