Make the message control text entry grab focus when new controls are created and each time the tabs

are switched.  Fixes #4227
This commit is contained in:
Travis Shirk 2008-08-22 03:03:15 +00:00
parent e8bd2d3f66
commit 55c1868d92
3 changed files with 9 additions and 4 deletions

View File

@ -304,6 +304,7 @@ class ChatControlBase(MessageControl):
self.user_nick = None
self.smooth = True
self.msg_textview.grab_focus()
def on_msg_textview_populate_popup(self, textview, menu):
'''we override the default context menu and we prepend an option to switch languages'''
@ -1155,6 +1156,7 @@ class ChatControl(ChatControlBase):
self.update_ui()
# restore previous conversation
self.restore_conversation()
self.msg_textview.grab_focus()
def update_toolbar(self):
# Add to roster

View File

@ -367,7 +367,7 @@ class GroupchatControl(ChatControlBase):
gajim.gc_connected[self.account][self.room_jid] = False
# disable win, we are not connected yet
ChatControlBase.got_disconnected(self)
ChatControlBase.got_disconnected(self)
self.update_ui()
self.conv_textview.tv.grab_focus()
@ -890,6 +890,8 @@ class GroupchatControl(ChatControlBase):
if self.parent_win:
self.parent_win.redraw_tab(self)
self.msg_textview.grab_focus()
def got_disconnected(self):
self.list_treeview.get_model().clear()
nick_list = gajim.contacts.get_nick_list(self.account, self.room_jid)

View File

@ -730,6 +730,10 @@ class MessageWindow(object):
new_ctrl.set_control_active(True)
self.show_title(control = new_ctrl)
control = self.get_active_control()
if isinstance(control, ChatControlBase):
control.msg_textview.grab_focus()
def _on_notebook_key_press(self, widget, event):
# Ctrl+PageUP / DOWN has to be handled by notebook
if (event.state & gtk.gdk.CONTROL_MASK and
@ -986,9 +990,6 @@ class MessageWindowMgr(gobject.GObject):
if not self.one_window_opened(contact, acct, type):
self._resize_window(win, acct, type)
self._position_window(win, acct, type)
#FIXME: make sure when first chat tab is shown textview grabs focus
#this wont work but something close to that should be fine:
# win.window.grab_focus()
self._windows[win_key] = win
return win