Philipp Hörist pushed to branch master at gajim / gajim
Commits:
f3baca3c by Philipp Hörist at 2023-11-07T14:04:50+01:00
imprv: MessageInput: Regain focus on common key presses
- - - - -
1 changed file:
- gajim/gtk/main.py
Changes:
=====================================
gajim/gtk/main.py
=====================================
@@ -122,6 +122,7 @@ def __init__(self) -> None:
self.connect('notify::is-active', self._on_window_active)
self.connect('delete-event', self._on_window_delete)
self.connect('window-state-event', self._on_window_state_changed)
+ self.connect_after('key-press-event', self._on_key_press_event)
self._ui.connect_signals(self)
@@ -250,6 +251,42 @@ def _on_account_disabled(self, event:
events.AccountDisabled) -> None:
def update_account_unread_count(self, account: str, count: int) -> None:
self._account_side_bar.update_unread_count(account, count)
+ def _on_key_press_event(
+ self,
+ _window: MainWindow,
+ event: Gdk.EventKey
+ ) -> bool:
+
+ modifier = event.get_state() & Gtk.accelerator_get_default_mod_mask()
+
+ if not modifier:
+ if event.keyval in (
+ Gdk.KEY_Control_L,
+ Gdk.KEY_Control_R,
+ Gdk.KEY_Alt_L,
+ Gdk.KEY_Alt_R,
+ ):
+ return False
+
+ if modifier == Gdk.ModifierType.CONTROL_MASK:
+ if event.keyval == Gdk.KEY_C:
+ return False
+
+ focused_widget = self.get_focus()
+ if (isinstance(focused_widget, Gtk.TextView)
+ and focused_widget.props.editable):
+ return False
+
+ if isinstance(focused_widget, Gtk.Entry):
+ return False
+
+ message_input = self.get_chat_stack().get_message_input()
+ if not message_input.get_mapped() or not message_input.is_sensitive():
+ return False
+
+ message_input.grab_focus()
+ return self.propagate_key_event(event)
+
def _on_client_state_changed(self,
client: Client,
_signal_name: str,
View it on GitLab:
https://dev.gajim.org/gajim/gajim/-/commit/f3baca3c34c79b74f6535ead13fc1666b398b2b0
--
View it on GitLab:
https://dev.gajim.org/gajim/gajim/-/commit/f3baca3c34c79b74f6535ead13fc1666b398b2b0
You're receiving this email because of your account on dev.gajim.org.
_______________________________________________
Commits mailing list -- [email protected]
To unsubscribe send an email to [email protected]