move accelerators tom (group)chat_control to message_window. fixes traceback with minimized groupchats

This commit is contained in:
Yann Leboulanger 2007-09-16 09:02:04 +00:00
parent 37b755ecef
commit f9a7a5c373
3 changed files with 18 additions and 22 deletions

View file

@ -967,12 +967,6 @@ class ChatControl(ChatControlBase):
id = widget.connect('clicked', self.on_actions_button_clicked) id = widget.connect('clicked', self.on_actions_button_clicked)
self.handlers[id] = widget self.handlers[id] = widget
ag = gtk.accel_groups_from_object(self.parent_win.window)[0]
key, mod = gtk.accelerator_parse("<Control>h")
ag.connect_group(key, mod, gtk.ACCEL_VISIBLE, self.accel_group_func)
key, mod = gtk.accelerator_parse("<Control>i")
ag.connect_group(key, mod, gtk.ACCEL_VISIBLE, self.accel_group_func)
compact_view = gajim.config.get('compact_view') compact_view = gajim.config.get('compact_view')
self.chat_buttons_set_visible(compact_view) self.chat_buttons_set_visible(compact_view)
self.widget_set_visible(self.xml.get_widget('banner_eventbox'), self.widget_set_visible(self.xml.get_widget('banner_eventbox'),
@ -1664,13 +1658,6 @@ class ChatControl(ChatControlBase):
# destroy menu # destroy menu
menu.destroy() menu.destroy()
def accel_group_func(self, accel_group, acceleratable, keyval, modifier):
if modifier & gtk.gdk.CONTROL_MASK:
if keyval == gtk.keysyms.h:
self._on_history_menuitem_activate()
if keyval == gtk.keysyms.i:
self._on_contact_information_menuitem_activate(None)
def send_chatstate(self, state, contact = None): def send_chatstate(self, state, contact = None):
''' sends OUR chatstate as STANDLONE chat state message (eg. no body) ''' sends OUR chatstate as STANDLONE chat state message (eg. no body)
to contact only if new chatstate is different from the previous one to contact only if new chatstate is different from the previous one

View file

@ -193,10 +193,6 @@ class GroupchatControl(ChatControlBase):
self.on_list_treeview_leave_notify_event) self.on_list_treeview_leave_notify_event)
self.handlers[id] = widget self.handlers[id] = widget
ag = gtk.accel_groups_from_object(self.parent_win.window)[0]
key, mod = gtk.accelerator_parse("<Control>h")
ag.connect_group(key, mod, gtk.ACCEL_VISIBLE, self.accel_group_func)
self.room_jid = self.contact.jid self.room_jid = self.contact.jid
self.nick = contact.name self.nick = contact.name
self.name = self.room_jid.split('@')[0] self.name = self.room_jid.split('@')[0]
@ -540,11 +536,6 @@ class GroupchatControl(ChatControlBase):
self.change_nick_menuitem.set_sensitive(False) self.change_nick_menuitem.set_sensitive(False)
return self.gc_popup_menu return self.gc_popup_menu
def accel_group_func(self, accel_group, acceleratable, keyval, modifier):
if modifier & gtk.gdk.CONTROL_MASK:
if keyval == gtk.keysyms.h:
self._on_history_menuitem_activate()
def on_message(self, nick, msg, tim, has_timestamp = False, xhtml = None, def on_message(self, nick, msg, tim, has_timestamp = False, xhtml = None,
status_code = []): status_code = []):
if '100' in status_code: if '100' in status_code:

View file

@ -71,6 +71,12 @@ class MessageWindow:
self.handlers[id] = self.window self.handlers[id] = self.window
accel_group = gtk.AccelGroup() accel_group = gtk.AccelGroup()
key, mod = gtk.accelerator_parse('<Control>h')
accel_group.connect_group(key, mod, gtk.ACCEL_VISIBLE,
self.accel_group_func)
key, mod = gtk.accelerator_parse('<Control>i')
accel_group.connect_group(key, mod, gtk.ACCEL_VISIBLE,
self.accel_group_func)
self.window.add_accel_group(accel_group) self.window.add_accel_group(accel_group)
# gtk+ doesn't make use of the motion notify on gtkwindow by default # gtk+ doesn't make use of the motion notify on gtkwindow by default
@ -244,6 +250,18 @@ class MessageWindow:
elif event.keyval == gtk.keysyms.Page_Up: # CTRL + PAGE UP elif event.keyval == gtk.keysyms.Page_Up: # CTRL + PAGE UP
self.notebook.emit('key_press_event', event) self.notebook.emit('key_press_event', event)
def accel_group_func(self, accel_group, acceleratable, keyval, modifier):
control = self.get_active_control()
if not control:
# No more control in this window
return
if modifier & gtk.gdk.CONTROL_MASK:
if keyval == gtk.keysyms.h:
control._on_history_menuitem_activate()
if control.type_id == message_control.TYPE_CHAT and \
keyval == gtk.keysyms.i:
control._on_contact_information_menuitem_activate(None)
def _on_close_button_clicked(self, button, control): def _on_close_button_clicked(self, button, control):
'''When close button is pressed: close a tab''' '''When close button is pressed: close a tab'''
self.remove_tab(control, self.CLOSE_CLOSE_BUTTON) self.remove_tab(control, self.CLOSE_CLOSE_BUTTON)