diff --git a/data/jorts.metainfo.xml.in b/data/jorts.metainfo.xml.in index 65a19b2f..bbe348ef 100644 --- a/data/jorts.metainfo.xml.in +++ b/data/jorts.metainfo.xml.in @@ -101,6 +101,7 @@
  • Version 4 to align with Gtk version
  • Ctrl+Scroll to zoom-in, zoom-out
  • More zoom options
  • +
  • Keyboard shortcuts work from popover now
  • A couple visual bugfixes as well!
  • Various under the hood performance improvements
  • diff --git a/src/Application.vala b/src/Application.vala index 63a6020c..187aa56f 100644 --- a/src/Application.vala +++ b/src/Application.vala @@ -57,7 +57,6 @@ public class Jorts.Application : Gtk.Application { public const string ACTION_PREFIX = "app."; public const string ACTION_QUIT = "action_quit"; public const string ACTION_NEW = "action_new"; - public const string ACTION_DELETE = "action_delete"; public const string ACTION_TOGGLE_SCRIBBLY = "action_toggle_scribbly"; public const string ACTION_TOGGLE_ACTIONBAR = "action_toggle_actionbar"; public const string ACTION_SHOW_PREFERENCES = "action_show_preferences"; @@ -89,29 +88,30 @@ public class Jorts.Application : Gtk.Application { add_action_entries (ACTION_ENTRIES, this); set_accels_for_action ("app.action_quit", {"Q"}); set_accels_for_action ("app.action_new", {"N"}); - set_accels_for_action ("app.action_delete", {"W"}); set_accels_for_action ("app.action_save", {"S"}); - set_accels_for_action ("app.action_zoom_out", {"minus", "KP_Subtract"}); - set_accels_for_action ("app.action_zoom_default", {"equal", "0", "KP_0"}); - set_accels_for_action ("app.action_zoom_in", {"plus", "KP_Add"}); - set_accels_for_action ("app.action_toggle_scribbly", {"H"}); - set_accels_for_action ("app.action_toggle_mono", {"m"}); set_accels_for_action ("app.action_toggle_actionbar", {"T"}); set_accels_for_action ("app.action_show_preferences", {"P"}); - set_accels_for_action ("app.action_focus_title", {"L"}); - set_accels_for_action ("app.action_show_emoji", {"period"}); - set_accels_for_action ("app.action_show_menu", {"G", "O"}); - - set_accels_for_action ("app.action_theme_1", {"1"}); - set_accels_for_action ("app.action_theme_2", {"2"}); - set_accels_for_action ("app.action_theme_3", {"3"}); - set_accels_for_action ("app.action_theme_4", {"4"}); - set_accels_for_action ("app.action_theme_5", {"5"}); - set_accels_for_action ("app.action_theme_6", {"6"}); - set_accels_for_action ("app.action_theme_7", {"7"}); - set_accels_for_action ("app.action_theme_8", {"8"}); - set_accels_for_action ("app.action_theme_9", {"9"}); - set_accels_for_action ("app.action_theme_0", {"0", "KP_0"}); + set_accels_for_action ("app.action_toggle_scribbly", {"H"}); + + set_accels_for_action ("win.action_delete", {"W"}); + set_accels_for_action ("win.action_zoom_out", {"minus", "KP_Subtract"}); + set_accels_for_action ("win.action_zoom_default", {"equal", "0", "KP_0"}); + set_accels_for_action ("win.action_zoom_in", {"plus", "KP_Add"}); + set_accels_for_action ("win.action_toggle_mono", {"m"}); + set_accels_for_action ("win.action_focus_title", {"L"}); + set_accels_for_action ("win.action_show_emoji", {"period"}); + set_accels_for_action ("win.action_show_menu", {"G", "O"}); + + set_accels_for_action ("win.action_theme_1", {"1"}); + set_accels_for_action ("win.action_theme_2", {"2"}); + set_accels_for_action ("win.action_theme_3", {"3"}); + set_accels_for_action ("win.action_theme_4", {"4"}); + set_accels_for_action ("win.action_theme_5", {"5"}); + set_accels_for_action ("win.action_theme_6", {"6"}); + set_accels_for_action ("win.action_theme_7", {"7"}); + set_accels_for_action ("win.action_theme_8", {"8"}); + set_accels_for_action ("win.action_theme_9", {"9"}); + set_accels_for_action ("win.action_theme_0", {"0", "KP_0"}); // Force the eOS icon theme, and set the blueberry as fallback, if for some reason it fails for individual notes diff --git a/src/Views/PopoverView.vala b/src/Views/PopoverView.vala index 8aa6927f..c5ac9797 100644 --- a/src/Views/PopoverView.vala +++ b/src/Views/PopoverView.vala @@ -32,6 +32,35 @@ public class Jorts.PopoverView : Gtk.Popover { public signal void zoom_changed (Jorts.Zoomkind zoomkind); public signal void monospace_changed (bool if_monospace); + static construct + { + add_binding_action(Gdk.Key.plus, Gdk.ModifierType.CONTROL_MASK, StickyNoteWindow.ACTION_PREFIX + StickyNoteWindow.ACTION_ZOOM_IN, null); + add_binding_action(Gdk.Key.equal, Gdk.ModifierType.CONTROL_MASK, StickyNoteWindow.ACTION_PREFIX + StickyNoteWindow.ACTION_ZOOM_DEFAULT, null); + add_binding_action(48, Gdk.ModifierType.CONTROL_MASK, StickyNoteWindow.ACTION_PREFIX + StickyNoteWindow.ACTION_ZOOM_DEFAULT, null); + add_binding_action(Gdk.Key.minus, Gdk.ModifierType.CONTROL_MASK, StickyNoteWindow.ACTION_PREFIX + StickyNoteWindow.ACTION_ZOOM_OUT, null); + + add_binding_action(Gdk.Key.w, Gdk.ModifierType.CONTROL_MASK, Application.ACTION_PREFIX + Application.ACTION_NEW, null); + add_binding_action(Gdk.Key.w, Gdk.ModifierType.CONTROL_MASK, StickyNoteWindow.ACTION_PREFIX + StickyNoteWindow.ACTION_DELETE, null); + add_binding_action(Gdk.Key.m, Gdk.ModifierType.CONTROL_MASK, StickyNoteWindow.ACTION_PREFIX + StickyNoteWindow.ACTION_TOGGLE_MONO, null); + add_binding_action(Gdk.Key.g, Gdk.ModifierType.CONTROL_MASK, StickyNoteWindow.ACTION_PREFIX + StickyNoteWindow.ACTION_SHOW_MENU, null); + add_binding_action(Gdk.Key.o, Gdk.ModifierType.CONTROL_MASK, StickyNoteWindow.ACTION_PREFIX + StickyNoteWindow.ACTION_SHOW_MENU, null); + add_binding_action(Gdk.Key.l, Gdk.ModifierType.CONTROL_MASK, StickyNoteWindow.ACTION_PREFIX + StickyNoteWindow.ACTION_FOCUS_TITLE, null); + + // Compiler whines about Gdk.Key.1 because name is a number so it doesnt see it. + // So we use magic numbers + add_binding_action(49, Gdk.ModifierType.ALT_MASK, StickyNoteWindow.ACTION_PREFIX + StickyNoteWindow.ACTION_THEME_1, null); + add_binding_action(50, Gdk.ModifierType.ALT_MASK, StickyNoteWindow.ACTION_PREFIX + StickyNoteWindow.ACTION_THEME_2, null); + add_binding_action(51, Gdk.ModifierType.ALT_MASK, StickyNoteWindow.ACTION_PREFIX + StickyNoteWindow.ACTION_THEME_3, null); + add_binding_action(52, Gdk.ModifierType.ALT_MASK, StickyNoteWindow.ACTION_PREFIX + StickyNoteWindow.ACTION_THEME_4, null); + add_binding_action(53, Gdk.ModifierType.ALT_MASK, StickyNoteWindow.ACTION_PREFIX + StickyNoteWindow.ACTION_THEME_5, null); + add_binding_action(54, Gdk.ModifierType.ALT_MASK, StickyNoteWindow.ACTION_PREFIX + StickyNoteWindow.ACTION_THEME_6, null); + add_binding_action(55, Gdk.ModifierType.ALT_MASK, StickyNoteWindow.ACTION_PREFIX + StickyNoteWindow.ACTION_THEME_7, null); + add_binding_action(56, Gdk.ModifierType.ALT_MASK, StickyNoteWindow.ACTION_PREFIX + StickyNoteWindow.ACTION_THEME_8, null); + add_binding_action(57, Gdk.ModifierType.ALT_MASK, StickyNoteWindow.ACTION_PREFIX + StickyNoteWindow.ACTION_THEME_9, null); + add_binding_action(48, Gdk.ModifierType.ALT_MASK, StickyNoteWindow.ACTION_PREFIX + StickyNoteWindow.ACTION_THEME_0, null); + } + + /****************/ public PopoverView (Jorts.StickyNoteWindow window) { position = Gtk.PositionType.TOP; diff --git a/src/Widgets/ActionBar.vala b/src/Widgets/ActionBar.vala index ab0edd07..0c06e273 100644 --- a/src/Widgets/ActionBar.vala +++ b/src/Widgets/ActionBar.vala @@ -42,7 +42,7 @@ ) }; delete_item.add_css_class ("themedbutton"); - delete_item.action_name = Application.ACTION_PREFIX + Application.ACTION_DELETE; + delete_item.action_name = StickyNoteWindow.ACTION_PREFIX + StickyNoteWindow.ACTION_DELETE; /* **** RIGHT **** */ emojichooser_popover = new Gtk.EmojiChooser (); diff --git a/src/Windows/StickyNoteWindow.vala b/src/Windows/StickyNoteWindow.vala index 7d38ba1f..4db4f3dc 100644 --- a/src/Windows/StickyNoteWindow.vala +++ b/src/Windows/StickyNoteWindow.vala @@ -32,30 +32,31 @@ public class Jorts.StickyNoteWindow : Gtk.Window { private Gtk.EventControllerKey keypress_controller; private Gtk.EventControllerScroll scroll_controller; - private const string ACTION_PREFIX = "app."; - private const string ACTION_SHOW_EMOJI = "action_show_emoji"; - private const string ACTION_SHOW_MENU = "action_show_menu"; - private const string ACTION_FOCUS_TITLE = "action_focus_title"; - private const string ACTION_ZOOM_OUT = "action_zoom_out"; - private const string ACTION_ZOOM_DEFAULT = "action_zoom_default"; - private const string ACTION_ZOOM_IN = "action_zoom_in"; - private const string ACTION_TOGGLE_MONO = "action_toggle_mono"; - - private const string ACTION_THEME_1 = "action_theme_1"; - private const string ACTION_THEME_2 = "action_theme_2"; - private const string ACTION_THEME_3 = "action_theme_3"; - private const string ACTION_THEME_4 = "action_theme_4"; - private const string ACTION_THEME_5 = "action_theme_5"; - private const string ACTION_THEME_6 = "action_theme_6"; - private const string ACTION_THEME_7 = "action_theme_7"; - private const string ACTION_THEME_8 = "action_theme_8"; - private const string ACTION_THEME_9 = "action_theme_9"; - private const string ACTION_THEME_0 = "action_theme_0"; + public const string ACTION_PREFIX = "win."; + public const string ACTION_SHOW_EMOJI = "action_show_emoji"; + public const string ACTION_SHOW_MENU = "action_show_menu"; + public const string ACTION_FOCUS_TITLE = "action_focus_title"; + public const string ACTION_ZOOM_OUT = "action_zoom_out"; + public const string ACTION_ZOOM_DEFAULT = "action_zoom_default"; + public const string ACTION_ZOOM_IN = "action_zoom_in"; + public const string ACTION_TOGGLE_MONO = "action_toggle_mono"; + public const string ACTION_DELETE = "action_delete"; + + public const string ACTION_THEME_1 = "action_theme_1"; + public const string ACTION_THEME_2 = "action_theme_2"; + public const string ACTION_THEME_3 = "action_theme_3"; + public const string ACTION_THEME_4 = "action_theme_4"; + public const string ACTION_THEME_5 = "action_theme_5"; + public const string ACTION_THEME_6 = "action_theme_6"; + public const string ACTION_THEME_7 = "action_theme_7"; + public const string ACTION_THEME_8 = "action_theme_8"; + public const string ACTION_THEME_9 = "action_theme_9"; + public const string ACTION_THEME_0 = "action_theme_0"; public static Gee.MultiMap action_accelerators; private const GLib.ActionEntry[] ACTION_ENTRIES = { - { Application.ACTION_DELETE, action_delete}, + { ACTION_DELETE, action_delete}, { ACTION_SHOW_EMOJI, action_show_emoji}, { ACTION_SHOW_MENU, action_show_menu}, { ACTION_FOCUS_TITLE, action_focus_title}, @@ -82,7 +83,7 @@ public class Jorts.StickyNoteWindow : Gtk.Window { var actions = new SimpleActionGroup (); actions.add_action_entries (ACTION_ENTRIES, this); - insert_action_group ("app", actions); + insert_action_group ("win", actions); zoomcontroller = new Jorts.ZoomController (this);