diff options
author | fiaxh <git@lightrise.org> | 2019-04-15 17:29:18 +0200 |
---|---|---|
committer | fiaxh <git@lightrise.org> | 2019-04-15 17:29:18 +0200 |
commit | ca9b00d5e8e494ec46bc28259a104ade3adaa40c (patch) | |
tree | 4a215ea997b0454866c5390801ede9d902009b34 | |
parent | 76c7dec75f052cfaf9c3b469ba9d658a71075b6b (diff) | |
download | dino-ca9b00d5e8e494ec46bc28259a104ade3adaa40c.tar.gz dino-ca9b00d5e8e494ec46bc28259a104ade3adaa40c.zip |
Forward KeyEvent (and change focus) on key press in conversation view (not chat input)
fixes #28
fixes #513
-rw-r--r-- | main/src/ui/chat_input/view.vala | 2 | ||||
-rw-r--r-- | main/src/ui/unified_window.vala | 14 |
2 files changed, 15 insertions, 1 deletions
diff --git a/main/src/ui/chat_input/view.vala b/main/src/ui/chat_input/view.vala index 5e1ccb71..a33e8b53 100644 --- a/main/src/ui/chat_input/view.vala +++ b/main/src/ui/chat_input/view.vala @@ -26,7 +26,7 @@ public class View : Box { [GtkChild] private Frame frame; [GtkChild] private ScrolledWindow scrolled; - [GtkChild] private TextView text_input; + [GtkChild] public TextView text_input; [GtkChild] private Box outer_box; [GtkChild] private Button file_button; [GtkChild] private Separator file_separator; diff --git a/main/src/ui/unified_window.vala b/main/src/ui/unified_window.vala index 3e8c75e9..e48d4667 100644 --- a/main/src/ui/unified_window.vala +++ b/main/src/ui/unified_window.vala @@ -72,6 +72,20 @@ public class UnifiedWindow : Gtk.Window { box.add(paned); chat_input = ((ChatInput.View) builder.get_object("chat_input")).init(stream_interactor); conversation_frame = ((ConversationSummary.ConversationView) builder.get_object("conversation_frame")).init(stream_interactor); + conversation_frame.key_press_event.connect((event) => { + // Don't forward / change focus on Control / Alt + if (event.keyval == Gdk.Key.Control_L || event.keyval == Gdk.Key.Control_R || + event.keyval == Gdk.Key.Alt_L || event.keyval == Gdk.Key.Alt_R) { + return false; + } + // Don't forward / change focus on Control + ... + if ((event.state & ModifierType.CONTROL_MASK) > 0) { + return false; + } + chat_input.text_input.key_press_event(event); + chat_input.text_input.grab_focus(); + return true; + }); conversation_selector = ((ConversationSelector) builder.get_object("conversation_list")).init(stream_interactor); goto_end_revealer = (Revealer) builder.get_object("goto_end_revealer"); goto_end_button = (Button) builder.get_object("goto_end_button"); |