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);