Philipp Hörist pushed to branch master at gajim / gajim
Commits: dc25497c by Philipp Hörist at 2019-08-15T06:56:51Z ChatControlBase: Focus message input on textview click
- - - - - af312830 by Philipp Hörist at 2019-08-15T06:56:51Z Remove ConversationTextView key-press-event handler
The underlying HtmlTextView is not selectable anymore, so we dont need to send events to the notebook
- - - - -
1 changed file:
- gajim/chat_control_base.py
Changes:
===================================== gajim/chat_control_base.py ===================================== @@ -31,6 +31,7 @@ from gi.repository import Gtk from gi.repository import Gdk from gi.repository import GLib from gi.repository import Gio +from gi.repository import GObject
from gajim.common import events from gajim.common import app @@ -57,7 +58,6 @@ from gajim.gtk import util from gajim.gtk.util import at_the_end from gajim.gtk.util import get_show_in_roster from gajim.gtk.util import get_show_in_systray -from gajim.gtk.util import get_primary_accel_mod from gajim.gtk.util import get_hardware_key_codes from gajim.gtk.emoji_chooser import emoji_chooser
@@ -254,9 +254,6 @@ class ChatControlBase(MessageControl, ChatCommandProcessor, CommandTools): self.conv_textview = ConversationTextview(self.account) id_ = self.conv_textview.connect('quote', self.on_quote) self.handlers[id_] = self.conv_textview.tv - id_ = self.conv_textview.tv.connect( - 'key_press_event', self._conv_textview_key_press_event) - self.handlers[id_] = self.conv_textview.tv
# FIXME: DND on non editable TextView, find a better way self.drag_entered = False @@ -273,6 +270,10 @@ class ChatControlBase(MessageControl, ChatCommandProcessor, CommandTools): Gdk.DragAction.COPY) self.conv_textview.tv.drag_dest_set_target_list(dst_targets)
+ id_ = self.conv_textview.tv.connect('grab-focus', + self._on_html_textview_grab_focus) + self.handlers[id_] = self.conv_textview.tv + self.conv_scrolledwindow = self.xml.get_object( 'conversation_scrolledwindow') self.conv_scrolledwindow.add(self.conv_textview.tv) @@ -516,6 +517,13 @@ class ChatControlBase(MessageControl, ChatCommandProcessor, CommandTools): app.config.set_per(per_type, self.contact.jid, 'speller_language', gspell_lang.get_code())
+ def _on_html_textview_grab_focus(self, textview): + # Abort signal so the textview does not get focused + # Focus the MessageTextView instead + GObject.signal_stop_emission_by_name(textview, 'grab-focus') + self.msg_textview.grab_focus() + return Gdk.EVENT_STOP + def on_banner_label_populate_popup(self, label, menu): """ Override the default context menu and add our own menuitems @@ -596,19 +604,6 @@ class ChatControlBase(MessageControl, ChatCommandProcessor, CommandTools): if event.button == 3: # right click self.parent_win.popup_menu(event)
- def _conv_textview_key_press_event(self, _widget, event): - if (event.get_state() & get_primary_accel_mod() and - event.hardware_keycode in self.keycodes_c): - return Gdk.EVENT_PROPAGATE - - if (event.get_state() & Gdk.ModifierType.SHIFT_MASK and - event.keyval in (Gdk.KEY_Page_Down, Gdk.KEY_Page_Up)): - self._on_scroll(None, event.keyval) - return Gdk.EVENT_PROPAGATE - - self.parent_win.notebook.event(event) - return Gdk.EVENT_STOP - def _on_message_textview_paste_event(self, texview): clipboard = Gtk.Clipboard.get(Gdk.SELECTION_CLIPBOARD) image = clipboard.wait_for_image()
View it on GitLab: https://dev.gajim.org/gajim/gajim/compare/768c46c883688b3ac6e85c7cdac31ed0fc...