summaryrefslogtreecommitdiff
path: root/src/dialogs/MultiTextEntryDialog.vala
diff options
context:
space:
mode:
authorJörg Frings-Fürst <debian@jff.email>2023-12-17 19:58:57 +0100
committerJörg Frings-Fürst <debian@jff.email>2023-12-17 19:58:57 +0100
commit270fbc11b9744b76bcc52a3cf58fe896d7352724 (patch)
treefb359e210d2d9c30f5ad36a447ea29b62ae9bb56 /src/dialogs/MultiTextEntryDialog.vala
parent841f952294b349b2b8e2afb5305ce34a3b59bb4b (diff)
parent4cb46f4de4b881e5b1f65af017dca6f3917e55e5 (diff)
Merge branch 'feature/upstream' into develop
Diffstat (limited to 'src/dialogs/MultiTextEntryDialog.vala')
-rw-r--r--src/dialogs/MultiTextEntryDialog.vala22
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) {