mirror of
https://gitlab.gnome.org/GNOME/gitg
synced 2024-10-01 05:33:49 +00:00
Activities can process key events
Commit activity uses <kbd>Ctrl</kbd>+<kbd>Enter</kbd> to launch commit dialog
This commit is contained in:
parent
ada23635b2
commit
81cece0ded
|
@ -141,6 +141,20 @@ namespace GitgCommit
|
|||
return action == "commit";
|
||||
}
|
||||
|
||||
public bool on_key_pressed (Gdk.EventKey event) {
|
||||
var mmask = Gtk.accelerator_get_default_mod_mask();
|
||||
|
||||
if ((mmask & event.state) == Gdk.ModifierType.CONTROL_MASK)
|
||||
{
|
||||
if ((event.keyval == Gdk.Key.Return || event.keyval == Gdk.Key.KP_Enter))
|
||||
{
|
||||
on_commit_clicked ();
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
private delegate void StageUnstageCallback(Sidebar.Item item);
|
||||
private delegate void StageUnstageSubmoduleCommitCallback(Gitg.Commit commit);
|
||||
|
||||
|
|
|
@ -271,6 +271,8 @@ public class Window : Gtk.ApplicationWindow, GitgExt.Application, Initable
|
|||
bool ret = d_search_bar.handle_event(event);
|
||||
if (ret) {
|
||||
d_search_bar.search_mode_enabled = true;
|
||||
} else {
|
||||
ret = d_activities.current.on_key_pressed(event);
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
|
|
@ -41,6 +41,18 @@ public interface Activity : Object, UIElement
|
|||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Activity receives a key event to process it.
|
||||
*
|
||||
* @param event the key event
|
||||
*
|
||||
* @return true if the key event is consumed by this activity.
|
||||
*/
|
||||
public virtual bool on_key_pressed (Gdk.EventKey event)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue