Philipp Hörist pushed to branch master at gajim / gajim

Commits:

2 changed files:

Changes:

  • gajim/chat_control_base.py
    ... ... @@ -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()
    

  • gajim/gtk/message_input.py
    ... ... @@ -122,6 +122,14 @@ class MessageInputTextView(Gtk.TextView):
    122 122
         def insert_text(self, text):
    
    123 123
             self.get_buffer().insert_at_cursor(text)
    
    124 124
     
    
    125
    +    def insert_newline(self):
    
    126
    +        buffer_ = self.get_buffer()
    
    127
    +        buffer_.insert_at_cursor('\n')
    
    128
    +        mark = buffer_.get_insert()
    
    129
    +        iter_ = buffer_.get_iter_at_mark(mark)
    
    130
    +        if buffer_.get_end_iter().equal(iter_):
    
    131
    +            GLib.idle_add(scroll_to_end, self.get_parent())
    
    132
    +
    
    125 133
         def has_text(self):
    
    126 134
             buf = self.get_buffer()
    
    127 135
             start, end = buf.get_bounds()