From 7f5822ea9238bc0982cfec589dc62580e582b1aa Mon Sep 17 00:00:00 2001
From: Yann Leboulanger <asterix@lagaule.org>
Date: Wed, 16 Mar 2005 19:57:32 +0000
Subject: [PATCH] Ctrl/Shift+PageUp/Down and Ctrl+Tab now work when the focus
 is on the message_textview

---
 plugins/gtkgui/tabbed_chat_window.py | 18 ++++++++++++++++--
 1 file changed, 16 insertions(+), 2 deletions(-)

diff --git a/plugins/gtkgui/tabbed_chat_window.py b/plugins/gtkgui/tabbed_chat_window.py
index 6652feb101..15db995499 100644
--- a/plugins/gtkgui/tabbed_chat_window.py
+++ b/plugins/gtkgui/tabbed_chat_window.py
@@ -147,7 +147,22 @@ class Tabbed_chat_window(Chat):
 		"""When a key is pressed :
 		if enter is pressed without the shit key, message (if not empty) is sent
 		and printed in the conversation"""
-		if event.keyval == gtk.keysyms.Return:
+		jid = self.get_active_jid()
+		conversation_textview = self.xmls[jid].get_widget('conversation_textview')
+		if event.keyval == gtk.keysyms.Tab and \
+         (event.state & gtk.gdk.CONTROL_MASK): # CTRL + TAB
+			self.notebook.emit('key_press_event', event)
+		elif event.keyval == gtk.keysyms.Page_Down: # PAGE DOWN
+			if event.state & gtk.gdk.CONTROL_MASK: # CTRL + PAGE DOWN
+				self.notebook.emit('key_press_event', event)
+			if event.state & gtk.gdk.SHIFT_MASK: # SHIFT + PAGE DOWN
+				conversation_textview.emit('key_press_event', event)
+		elif event.keyval == gtk.keysyms.Page_Up: # PAGE UP
+			if event.state & gtk.gdk.CONTROL_MASK: # CTRL + PAGE UP
+				self.notebook.emit('key_press_event', event)
+			if event.state & gtk.gdk.SHIFT_MASK: # SHIFT + PAGE UP
+				conversation_textview.emit('key_press_event', event)
+		elif event.keyval == gtk.keysyms.Return:
 			if (event.state & gtk.gdk.SHIFT_MASK):
 				return False
 			if self.plugin.connected[self.account] < 2: #we are not connected
@@ -159,7 +174,6 @@ class Tabbed_chat_window(Chat):
 			message = message_buffer.get_text(start_iter, end_iter, 0)
 			if message != '':
 				keyID = ''
-				jid = self.get_active_jid()
 				if self.xmls[jid].get_widget('gpg_togglebutton').get_active():
 					keyID = self.users[jid].keyID
 				self.plugin.send('MSG', self.account, (jid, message, keyID))
-- 
GitLab