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

Commits:
18a3258c by Tomasz Miąsko at 2017-01-25T17:05:49+01:00
Fix inserting a newline on shift-enter.

Return false from key-press-event to propagate event to a default
handler that will insert a newline into the entry widget.

- - - - -
ffeeb8f9 by Tomasz Miąsko at 2017-01-25T17:05:49+01:00
Simplify send or insert newline logic.

- - - - -
2e133d25 by Tomasz Miąsko at 2017-01-25T17:05:49+01:00
Fix tab switching with ctrl+page up and ctrl+page down.

- - - - -
0b7d6cc1 by Tomasz Miąsko at 2017-01-25T17:05:49+01:00
Fix moving between lines with up and down arrows.

- - - - -
b678165d by Tomasz Miąsko at 2017-01-25T18:04:12+01:00
Use the same code path for shift-enter as for ctrl-enter.

- - - - -
b1940459 by Philipp Hörist at 2017-01-26T19:17:32+01:00
Merge branch 'fix-gtk3-shortcuts' into 'master'

Fix keyboard shortcuts in GTK3

See merge request !41
- - - - -


2 changed files:

- src/chat_control_base.py
- src/message_window.py


Changes:

=====================================
src/chat_control_base.py
=====================================
--- a/src/chat_control_base.py
+++ b/src/chat_control_base.py
@@ -668,49 +668,37 @@ class ChatControlBase(MessageControl, 
ChatCommandProcessor, CommandTools):
                     self.scroll_messages('up', message_buffer, 'received')
                 else:  # Ctrl+UP
                     self.scroll_messages('up', message_buffer, 'sent')
-            return True
+                return True
         elif event.keyval == Gdk.KEY_Down:
             if event_state & Gdk.ModifierType.CONTROL_MASK:
                 if event_state & Gdk.ModifierType.SHIFT_MASK: # Ctrl+Shift+Down
                     self.scroll_messages('down', message_buffer, 'received')
                 else:  # Ctrl+Down
                     self.scroll_messages('down', message_buffer, 'sent')
-            return True
-
+                return True
         elif event.keyval == Gdk.KEY_Return or \
         event.keyval == Gdk.KEY_KP_Enter:  # ENTER
-            if event_state & Gdk.ModifierType.SHIFT_MASK:
-                return True
             message_textview = widget
             message_buffer = message_textview.get_buffer()
             start_iter, end_iter = message_buffer.get_bounds()
             message = message_buffer.get_text(start_iter, end_iter, False)
             xhtml = self.msg_textview.get_xhtml()
 
-            if gajim.config.get('send_on_ctrl_enter'):
-                if event_state & Gdk.ModifierType.CONTROL_MASK:  # CTRL + ENTER
-                    send_message = True
-                else:
-                    end_iter = message_buffer.get_end_iter()
-                    message_buffer.insert_at_cursor('\n')
-                    send_message = False
-
-            else: # send on Enter, do newline on Ctrl Enter
-                if event_state & Gdk.ModifierType.CONTROL_MASK:  # Ctrl + ENTER
-                    end_iter = message_buffer.get_end_iter()
-                    message_buffer.insert_at_cursor('\n')
-                    send_message = False
-                else: # ENTER
-                    send_message = True
-
-            if gajim.connections[self.account].connected < 2 and send_message:
+            if event_state & Gdk.ModifierType.SHIFT_MASK:
+                send_message = False
+            else:
+                is_ctrl_enter = bool(event_state & 
Gdk.ModifierType.CONTROL_MASK)
+                send_message = is_ctrl_enter == 
gajim.config.get('send_on_ctrl_enter')
+
+            if send_message and gajim.connections[self.account].connected < 2:
                 # we are not connected
                 dialogs.ErrorDialog(_('A connection is not available'),
-                        _('Your message can not be sent until you are 
connected.'))
-                send_message = False
+                    _('Your message can not be sent until you are connected.'))
+            elif send_message:
+                self.send_message(message, xhtml=xhtml)
+            else:
+                message_buffer.insert_at_cursor('\n')
 
-            if send_message:
-                self.send_message(message, xhtml=xhtml) # send the message
             return True
         elif event.keyval == Gdk.KEY_z: # CTRL+z
             if event_state & Gdk.ModifierType.CONTROL_MASK:


=====================================
src/message_window.py
=====================================
--- a/src/message_window.py
+++ b/src/message_window.py
@@ -401,7 +401,7 @@ class MessageWindow(object):
             elif keyval in (Gdk.KEY_Page_Up, Gdk.KEY_Page_Down):
                 # CTRL + PageUp | PageDown
                 # Create event and send it to notebook
-                event = Gdk.Event(Gdk.EventType.KEY_PRESS)
+                event = Gdk.Event.new(Gdk.EventType.KEY_PRESS)
                 event.window = self.window.get_window()
                 event.time = int(time.time())
                 event.state = Gdk.ModifierType.CONTROL_MASK



View it on GitLab: 
https://dev.gajim.org/gajim/gajim/compare/179777239e17ae9917051e8ab218c4d48932eb5c...b1940459e2025bcc71ea81d2cfdead76e8bfba94
_______________________________________________
Commits mailing list
[email protected]
https://lists.gajim.org/cgi-bin/listinfo/commits

Reply via email to