diff options
author | Jörg Frings-Fürst <debian@jff.email> | 2023-12-17 19:58:04 +0100 |
---|---|---|
committer | Jörg Frings-Fürst <debian@jff.email> | 2023-12-17 19:58:04 +0100 |
commit | f5a0cee8ccecc7b6c6c2d8e9fb6f6eecd53531fe (patch) | |
tree | 4fe410ce27a30bc752d350aa042dae8fd042d0a1 /src/dialogs/MultiTextEntryDialog.vala | |
parent | 87ba373882f475f02a524a120b59ea9fcccf14e5 (diff) |
New upstream version 0.32.4upstream/0.32.4
Diffstat (limited to 'src/dialogs/MultiTextEntryDialog.vala')
-rw-r--r-- | src/dialogs/MultiTextEntryDialog.vala | 22 |
1 files changed, 21 insertions, 1 deletions
diff --git a/src/dialogs/MultiTextEntryDialog.vala b/src/dialogs/MultiTextEntryDialog.vala index ddbd59b..097dabf 100644 --- a/src/dialogs/MultiTextEntryDialog.vala +++ b/src/dialogs/MultiTextEntryDialog.vala @@ -5,16 +5,36 @@ * See the COPYING file in this distribution. */ + class DismissableTextView : Gtk.TextView { + public signal void edit_done(); + + public override bool key_press_event(Gdk.EventKey ev) { + if (!(Gdk.ModifierType.CONTROL_MASK in ev.state)) { + return base.key_press_event(ev); + } + + if (Gdk.keyval_name(ev.keyval) == "KP_Enter" || + Gdk.keyval_name(ev.keyval) == "Return") { + edit_done(); + return true; + } + + return base.key_press_event(ev); + } + } + [GtkTemplate (ui = "/org/gnome/Shotwell/ui/multitextentrydialog.ui")] public class MultiTextEntryDialog : Gtk.Dialog { public delegate bool OnModifyValidateType(string text); private unowned OnModifyValidateType on_modify_validate; [GtkChild] - private unowned Gtk.TextView entry; + private unowned DismissableTextView entry; public MultiTextEntryDialog() { Object (use_header_bar: Resources.use_header_bar()); + + entry.edit_done.connect(() => {response(Gtk.ResponseType.OK);}); } public void setup(OnModifyValidateType? modify_validate, string title, string label, string? initial_text) { |