From f688d376f54273c9deb82377bfd2ea8a1a8f137e Mon Sep 17 00:00:00 2001 From: John Ralls Date: Mon, 5 Feb 2018 14:52:56 -0800 Subject: [PATCH] [MacOS] Replace GDK_CONTROL_MASK with GDK_META_MASK in accelerators. Fixes #10231 and works on all versions of Gtk3 by avoiding GdkModifierIntent. --- gramps/gui/glade.py | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/gramps/gui/glade.py b/gramps/gui/glade.py index b6985dea7..1dcc0226e 100644 --- a/gramps/gui/glade.py +++ b/gramps/gui/glade.py @@ -46,6 +46,7 @@ from gi.repository import Gtk # #------------------------------------------------------------------------ from gramps.gen.const import GLADE_DIR, GRAMPS_LOCALE as glocale +from gramps.gen.constfunc import is_quartz #------------------------------------------------------------------------ # @@ -142,11 +143,19 @@ class Glade(Gtk.Builder): # toplevel is given if toplevel: loadlist = [toplevel] + also_load - self.add_objects_from_file(path, loadlist) + with open(path, 'r', encoding='utf-8') as builder_file: + data = builder_file.read().replace('\n', '') + if is_quartz(): + data = data.replace('GDK_CONTROL_MASK', 'GDK_META_MASK') + self.add_objects_from_string(data, loadlist) self.__toplevel = self.get_object(toplevel) # toplevel not given else: - self.add_from_file(path) + with open(path, 'r', encoding='utf-8') as builder_file: + data = builder_file.read().replace('\n', '') + if is_quartz(): + data = data.replace('GDK_CONTROL_MASK', 'GDK_META_MASK') + self.add_from_string(data) # first, use filename as possible toplevel widget name self.__toplevel = self.get_object(filename.rpartition('.')[0])