From a10e4b856208db187fb2c5599f6806a7951b021b Mon Sep 17 00:00:00 2001 From: Travis Shirk Date: Sat, 14 Jan 2006 20:40:48 +0000 Subject: [PATCH] CTRL+Tab and CTRL+SHIFT+Tab, closes #1396 --- src/chat_control.py | 22 +++++++++++++++++----- src/gajim.py | 3 ++- 2 files changed, 19 insertions(+), 6 deletions(-) diff --git a/src/chat_control.py b/src/chat_control.py index 3b524aa61..3a6c3f08c 100644 --- a/src/chat_control.py +++ b/src/chat_control.py @@ -170,9 +170,15 @@ class ChatControlBase(MessageControl): self.msg_textview.grab_focus() # Paste into the msg textview self.msg_textview.emit('key_press_event', event) + # CTRL + u: emacs style clear line elif event.keyval == gtk.keysyms.u: - # emacs style clear line self.clear(self.msg_textview) # clear message textview too + elif event.keyval == gtk.keysyms.ISO_Left_Tab: # CTRL + SHIFT + TAB + self.parent_win.move_to_next_unread_tab(False) + return True + elif event.keyval == gtk.keysyms.Tab: # CTRL + TAB + self.parent_win.move_to_next_unread_tab(True) + return True elif event.keyval == gtk.keysyms.m and \ (event.state & gtk.gdk.MOD1_MASK): # alt + m opens emoticons menu if gajim.config.get('useemoticons'): @@ -212,14 +218,20 @@ class ChatControlBase(MessageControl): if event.keyval not in (gtk.keysyms.ISO_Left_Tab, gtk.keysyms.Tab): self.last_key_tabs = False if event.state & gtk.gdk.SHIFT_MASK: + # CTRL + SHIFT + TAB + if event.state & gtk.gdk.CONTROL_MASK and \ + event.keyval == gtk.keysyms.ISO_Left_Tab: + self.parent_win.move_to_next_unread_tab(False) + return True # SHIFT + PAGE_[UP|DOWN]: send to conv_textview - if event.keyval == gtk.keysyms.Page_Down or \ + elif event.keyval == gtk.keysyms.Page_Down or \ event.keyval == gtk.keysyms.Page_Up: self.conv_textview.emit('key_press_event', event) return True - elif event.state & gtk.gdk.CONTROL_MASK or \ - (event.keyval == gtk.keysyms.Control_L) or \ - (event.keyval == gtk.keysyms.Control_R): + elif event.state & gtk.gdk.CONTROL_MASK: + if event.keyval == gtk.keysyms.Tab: # CTRL + TAB + self.parent_win.move_to_next_unread_tab(True) + return True # we pressed a control key or ctrl+sth: we don't block # the event in order to let ctrl+c (copy text) and # others do their default work diff --git a/src/gajim.py b/src/gajim.py index 8108ad0f0..db0221240 100755 --- a/src/gajim.py +++ b/src/gajim.py @@ -442,7 +442,8 @@ class Interface: show_notification = True chat_control = gajim.interface.msg_win_mgr.get_control(jid) - if chat_control and chat_control.type_id == message_control.TYPE_GC: # it's a Private Message + if chat_control and chat_control.type_id == message_control.TYPE_GC: + # it's a Private Message nick = gajim.get_nick_from_fjid(array[0]) fjid = array[0] if not gajim.interface.msg_win_mgr.has_window(fjid) and \