diff --git a/help/C/shortcuts.page b/help/C/shortcuts.page index ea691638..67a0f688 100644 --- a/help/C/shortcuts.page +++ b/help/C/shortcuts.page @@ -55,6 +55,14 @@

Mark unread

CtrlU or ShiftU

+ +

Open the Label Conversation menu

+

L

+ + +

Open the Move Conversation menu

+

M

+

Move focus to the next/previous pane

F6 / ShiftF6

diff --git a/src/client/application/geary-controller.vala b/src/client/application/geary-controller.vala index 25d76426..1e698cf3 100644 --- a/src/client/application/geary-controller.vala +++ b/src/client/application/geary-controller.vala @@ -429,10 +429,12 @@ public class GearyController : Geary.BaseObject { _("Add label"), null }; copy_menu.label = _("_Label"); entries += copy_menu; + add_accelerator("l", ACTION_COPY_MENU); Gtk.ActionEntry move_menu = { ACTION_MOVE_MENU, null, TRANSLATABLE, "M", _("Move conversation"), null }; move_menu.label = _("_Move"); entries += move_menu; + add_accelerator("m", ACTION_MOVE_MENU); Gtk.ActionEntry new_message = { ACTION_NEW_MESSAGE, null, null, "N", _("Compose new message (Ctrl+N, N)"), on_new_message }; diff --git a/src/client/components/pill-toolbar.vala b/src/client/components/pill-toolbar.vala index 0bde8c25..79f4b506 100644 --- a/src/client/components/pill-toolbar.vala +++ b/src/client/components/pill-toolbar.vala @@ -35,9 +35,10 @@ public interface PillBar : Gtk.Container { public virtual void setup_button(Gtk.Button b, string? icon_name, string action_name, bool show_label = false) { - b.related_action = action_group.get_action(action_name); - b.tooltip_text = b.related_action.tooltip; - b.related_action.notify["tooltip"].connect(() => { b.tooltip_text = b.related_action.tooltip; }); + Gtk.Action related_action = action_group.get_action(action_name); + b.tooltip_text = related_action.tooltip; + related_action.notify["tooltip"].connect(() => { b.tooltip_text = related_action.tooltip; }); + b.related_action = related_action; // Load icon by name with this fallback order: specified icon name, the action's icon name, // the action's stock ID ... although stock IDs are being deprecated, that's how we specify @@ -88,6 +89,15 @@ public interface PillBar : Gtk.Container { Gtk.MenuButton b = new Gtk.MenuButton(); setup_button(b, icon_name, action_name); b.popup = menu; + + if (b.related_action != null) { + b.related_action.activate.connect(() => { + b.clicked(); + }); + // Null out the action since by connecting it to clicked + // above, invoking would cause an infinite loop otherwise. + b.related_action = null; + } return b; }