diff --git a/src/groupchat_control.py b/src/groupchat_control.py index d718ec67d..a7dce1a9e 100644 --- a/src/groupchat_control.py +++ b/src/groupchat_control.py @@ -272,7 +272,8 @@ class PrivateChatControl(ChatControl): use_multiple_contacts=False, show_start_chat=False, show_encryption=True, control=self, show_buttonbar_items=not hide_buttonbar_items, - gc_contact=self.gc_contact) + gc_contact=self.gc_contact, + is_anonymous=self.room_ctrl.is_anonymous) return menu class GroupchatControl(ChatControlBase): diff --git a/src/gui_menu_builder.py b/src/gui_menu_builder.py index 9df948739..eedea1bc7 100644 --- a/src/gui_menu_builder.py +++ b/src/gui_menu_builder.py @@ -153,7 +153,7 @@ def build_invite_submenu(invite_menuitem, list_, ignore_rooms=[]): def get_contact_menu(contact, account, use_multiple_contacts=True, show_start_chat=True, show_encryption=False, show_buttonbar_items=True, -control=None, gc_contact=None): +control=None, gc_contact=None, is_anonymous=True): """ Build contact popup menu for roster and chat window. If control is not set, we hide invite_contacts_menuitem @@ -236,8 +236,14 @@ control=None, gc_contact=None): if contact.supports(NS_COMMANDS): execute_command_menuitem.set_sensitive(True) - execute_command_menuitem.connect('activate', roster.on_execute_command, - contact, account, contact.resource) + if gc_contact and gc_contact.jid and not is_anonymous: + execute_command_menuitem.connect('activate', + roster.on_execute_command, gc_contact, account, + gc_contact.resource) + else: + execute_command_menuitem.connect('activate', + roster.on_execute_command, contact, account, + contact.resource) else: execute_command_menuitem.set_sensitive(False)