diff --git a/data/ui/UberwriterWindow.ui b/data/ui/UberwriterWindow.ui
index af882b0..7d7516a 100644
--- a/data/ui/UberwriterWindow.ui
+++ b/data/ui/UberwriterWindow.ui
@@ -425,7 +425,6 @@
Go into focus mode
center
none
-
0
@@ -444,7 +443,6 @@
Go into fullscreen mode
start
none
-
1
diff --git a/data/ui/WindowMenu.ui b/data/ui/WindowMenu.ui
index ed309a3..29633eb 100644
--- a/data/ui/WindowMenu.ui
+++ b/data/ui/WindowMenu.ui
@@ -4,9 +4,11 @@
-
Focus Mode
+ app.focus_mode
-
Fullscreen
+ app.fullscreen
-
Dark Mode
diff --git a/uberwriter/UberwriterWindow.py b/uberwriter/UberwriterWindow.py
index b24977d..a0f035c 100644
--- a/uberwriter/UberwriterWindow.py
+++ b/uberwriter/UberwriterWindow.py
@@ -82,9 +82,7 @@ class UberwriterWindow(Window):
'open-file': (GObject.SIGNAL_ACTION, None, ()),
'save-file-as': (GObject.SIGNAL_ACTION, None, ()),
'new-file': (GObject.SIGNAL_ACTION, None, ()),
- 'toggle-focusmode': (GObject.SIGNAL_ACTION, None, ()),
'toggle-bibtex': (GObject.SIGNAL_ACTION, None, ()),
- 'toggle-fullscreen': (GObject.SIGNAL_ACTION, None, ()),
'toggle-spellcheck': (GObject.SIGNAL_ACTION, None, ()),
'toggle-preview': (GObject.SIGNAL_ACTION, None, ()),
'toggle-search': (GObject.SIGNAL_ACTION, None, ()),
@@ -162,8 +160,8 @@ class UberwriterWindow(Window):
self.update_line_and_char_count()
self.check_scroll(self.TextBuffer.get_insert())
- def toggle_fullscreen(self, widget, data=None):
- if widget.get_active():
+ def toggle_fullscreen(self, state):
+ if state.get_boolean():
self.fullscreen()
key, mod = Gtk.accelerator_parse("Escape")
self.fullscreen_button.add_accelerator("activate",
@@ -183,8 +181,8 @@ class UberwriterWindow(Window):
self.TextEditor.grab_focus()
- def set_focusmode(self, widget, data=None):
- if widget.get_active():
+ def set_focusmode(self, state):
+ if state.get_boolean():
self.init_typewriter()
self.MarkupBuffer.focusmode_highlight()
self.focusmode = True
@@ -192,7 +190,6 @@ class UberwriterWindow(Window):
self.check_scroll(self.TextBuffer.get_insert())
if self.spellcheck != False:
self.SpellChecker._misspelled.set_property('underline', 0)
- self.focusmode_menu_button.set_active(True)
self.focusmode_button.set_active(True)
else:
self.remove_typewriter()
@@ -210,7 +207,6 @@ class UberwriterWindow(Window):
self.check_scroll()
if self.spellcheck != False:
self.SpellChecker._misspelled.set_property('underline', 4)
- self.focusmode_menu_button.set_active(False)
self.focusmode_button.set_active(False)
def scroll_smoothly(self, widget, frame_clock, data = None):
@@ -599,9 +595,6 @@ class UberwriterWindow(Window):
self.set_filename()
self.set_headerbar_title("New File" + self.title_end)
- def menu_activate_focusmode(self, widget=None):
- self.focusmode_button.emit('activate')
-
def menu_activate_fullscreen(self, widget=None):
self.fullscreen_button.emit('activate')
@@ -960,8 +953,6 @@ class UberwriterWindow(Window):
self.connect('save-file-as', self.save_document_as)
self.connect('new-file', self.new_document)
self.connect('open-file', self.open_document)
- self.connect('toggle-fullscreen', self.menu_activate_fullscreen)
- self.connect('toggle-focusmode', self.menu_activate_focusmode)
#self.connect('toggle-preview', self.menu_activate_preview)
self.connect('toggle-spellcheck', self.toggle_spellcheck)
self.connect('close-window', self.on_mnu_close_activate)
@@ -1023,12 +1014,13 @@ class UberwriterWindow(Window):
# Wire up buttons
self.fullscreen_button = builder.get_object('fullscreen_toggle')
- self.fullscreen_menu_button = builder.get_object('mnu_fullscreen')
self.focusmode_button = builder.get_object('focus_toggle')
- self.focusmode_menu_button = builder.get_object('mnu_focusmode')
self.preview_button = builder.get_object('preview_toggle')
self.preview_mnu_button = builder.get_object('mnu_preview')
+ self.fullscreen_button.set_action_name("app.fullscreen")
+ self.focusmode_button.set_action_name("app.focus_mode")
+
self.fullscreen_button.set_name('fullscreen_toggle')
self.focusmode_button.set_name('focus_toggle')
self.preview_button.set_name('preview_toggle')
diff --git a/uberwriter_lib/AppWindow.py b/uberwriter_lib/AppWindow.py
index d126417..dc53b00 100644
--- a/uberwriter_lib/AppWindow.py
+++ b/uberwriter_lib/AppWindow.py
@@ -135,7 +135,6 @@ class Application(Gtk.Application):
self.add_action(action)
set_dark_mode = self.settings.get_value("dark-mode")
-
action = Gio.SimpleAction.new_stateful(
"dark_mode",
None,
@@ -143,6 +142,20 @@ class Application(Gtk.Application):
action.connect("change-state", self.on_dark_mode)
self.add_action(action)
+ action = Gio.SimpleAction.new_stateful(
+ "focus_mode",
+ None,
+ GLib.Variant.new_boolean(False))
+ action.connect("change-state", self.on_focus_mode)
+ self.add_action(action)
+
+ action = Gio.SimpleAction.new_stateful(
+ "fullscreen",
+ None,
+ GLib.Variant.new_boolean(False))
+ action.connect("change-state", self.on_fullscreen)
+ self.add_action(action)
+
builder = get_builder('App_menu')
self.set_app_menu(builder.get_object("app-menu"))
@@ -222,6 +235,13 @@ class Application(Gtk.Application):
self.dark_setting = Gtk.Settings.get_default()
self.dark_setting.set_property("gtk-application-prefer-dark-theme", value)
+ def on_focus_mode(self, action, value):
+ action.set_state(value)
+ self.window.set_focusmode(value)
+
+ def on_fullscreen(self, action, value):
+ action.set_state(value)
+ self.window.toggle_fullscreen(value)
def on_quit(self, action, param):
self.quit()