| ... |
... |
@@ -795,7 +795,7 @@ class ChatControlBase(ChatCommandProcessor, CommandTools, EventHelper): |
|
795
|
795
|
ft = app.interface.instances['file_transfers']
|
|
796
|
796
|
ft.send_file(self.account, self.contact, path)
|
|
797
|
797
|
|
|
798
|
|
- def _on_message_textview_key_press_event(self, widget, event):
|
|
|
798
|
+ def _on_message_textview_key_press_event(self, textview, event):
|
|
799
|
799
|
if event.keyval == Gdk.KEY_space:
|
|
800
|
800
|
self.space_pressed = True
|
|
801
|
801
|
|
| ... |
... |
@@ -805,7 +805,7 @@ class ChatControlBase(ChatCommandProcessor, CommandTools, EventHelper): |
|
805
|
805
|
# If the space key has been pressed and now it hasn't,
|
|
806
|
806
|
# we save the buffer into the undo list. But be careful we're not
|
|
807
|
807
|
# pressing Control again (as in ctrl+z)
|
|
808
|
|
- _buffer = widget.get_buffer()
|
|
|
808
|
+ _buffer = textview.get_buffer()
|
|
809
|
809
|
start_iter, end_iter = _buffer.get_bounds()
|
|
810
|
810
|
self.msg_textview.save_undo(_buffer.get_text(start_iter,
|
|
811
|
811
|
end_iter,
|
| ... |
... |
@@ -884,34 +884,29 @@ class ChatControlBase(ChatCommandProcessor, CommandTools, EventHelper): |
|
884
|
884
|
else: # Ctrl+Down
|
|
885
|
885
|
self.scroll_messages('down', message_buffer, 'sent')
|
|
886
|
886
|
return True
|
|
887
|
|
- elif event.keyval == Gdk.KEY_Return or \
|
|
888
|
|
- event.keyval == Gdk.KEY_KP_Enter: # ENTER
|
|
889
|
|
- message_textview = widget
|
|
890
|
|
- message_buffer = message_textview.get_buffer()
|
|
891
|
|
- message_textview.replace_emojis()
|
|
892
|
|
- start_iter, end_iter = message_buffer.get_bounds()
|
|
893
|
|
- message = message_buffer.get_text(start_iter, end_iter, False)
|
|
894
|
|
- xhtml = self.msg_textview.get_xhtml()
|
|
|
887
|
+ elif (event.keyval == Gdk.KEY_Return or
|
|
|
888
|
+ event.keyval == Gdk.KEY_KP_Enter): # ENTER
|
|
895
|
889
|
|
|
896
|
890
|
if event_state & Gdk.ModifierType.SHIFT_MASK:
|
|
897
|
|
- send_message = False
|
|
898
|
|
- else:
|
|
899
|
|
- is_ctrl_enter = bool(event_state & Gdk.ModifierType.CONTROL_MASK)
|
|
900
|
|
- send_message = is_ctrl_enter == app.settings.get('send_on_ctrl_enter')
|
|
|
891
|
+ textview.insert_newline()
|
|
|
892
|
+ return True
|
|
|
893
|
+
|
|
|
894
|
+ if event_state & Gdk.ModifierType.CONTROL_MASK:
|
|
|
895
|
+ if not app.settings.get('send_on_ctrl_enter'):
|
|
|
896
|
+ textview.insert_newline()
|
|
|
897
|
+ return True
|
|
901
|
898
|
|
|
902
|
|
- if send_message and not app.account_is_available(self.account):
|
|
|
899
|
+ if not app.account_is_available(self.account):
|
|
903
|
900
|
# we are not connected
|
|
904
|
901
|
app.interface.raise_dialog('not-connected-while-sending')
|
|
905
|
|
- elif send_message:
|
|
906
|
|
- self.send_message(message, xhtml=xhtml)
|
|
907
|
|
- else:
|
|
908
|
|
- message_buffer.insert_at_cursor('\n')
|
|
909
|
|
- mark = message_buffer.get_insert()
|
|
910
|
|
- iter_ = message_buffer.get_iter_at_mark(mark)
|
|
911
|
|
- if message_buffer.get_end_iter().equal(iter_):
|
|
912
|
|
- GLib.idle_add(util.scroll_to_end, self.msg_scrolledwindow)
|
|
|
902
|
+ return True
|
|
913
|
903
|
|
|
|
904
|
+ textview.replace_emojis()
|
|
|
905
|
+ message = textview.get_text()
|
|
|
906
|
+ xhtml = textview.get_xhtml()
|
|
|
907
|
+ self.send_message(message, xhtml=xhtml)
|
|
914
|
908
|
return True
|
|
|
909
|
+
|
|
915
|
910
|
elif event.keyval == Gdk.KEY_z: # CTRL+z
|
|
916
|
911
|
if event_state & Gdk.ModifierType.CONTROL_MASK:
|
|
917
|
912
|
self.msg_textview.undo()
|