From 76d0f16d4a0dcc92013bb546d667143732661ad2 Mon Sep 17 00:00:00 2001
From: Yann Leboulanger <asterix@lagaule.org>
Date: Mon, 13 Jan 2014 20:25:07 +0100
Subject: [PATCH] force sending muc invitation to the jid/resource if we're
 chatting with a specific resource. Fixes #7582

---
 src/gui_menu_builder.py | 12 +++++++++---
 1 file changed, 9 insertions(+), 3 deletions(-)

diff --git a/src/gui_menu_builder.py b/src/gui_menu_builder.py
index 8a91fa6784..2edd1c837a 100644
--- a/src/gui_menu_builder.py
+++ b/src/gui_menu_builder.py
@@ -64,9 +64,11 @@ def build_resources_submenu(contacts, account, action, room_jid=None,
     return sub_menu
 
 def build_invite_submenu(invite_menuitem, list_, ignore_rooms=[],
-show_bookmarked=False):
+show_bookmarked=False, force_resource=False):
     """
     list_ in a list of (contact, account)
+    force_resource means we want to send invitation even if there is only one
+        resource
     """
     roster = gajim.interface.roster
     # used if we invite only one contact with several resources
@@ -104,7 +106,7 @@ show_bookmarked=False):
     elif len(list_) == 1 and contact.supports(NS_MUC):
         invite_menuitem.set_sensitive(True)
         # use resource if it's self contact
-        if contact.jid == gajim.get_jid_from_account(account):
+        if contact.jid == gajim.get_jid_from_account(account) or force_resource:
             resource = contact.resource
         else:
             resource = None
@@ -455,8 +457,12 @@ control=None, gc_contact=None, is_anonymous=True):
             build_invite_submenu(invite_menuitem, [(gc_contact, account)],
                 show_bookmarked=bookmarked)
     else:
+        force_resource = False
+        if control and control.resource:
+            force_resource = True
         build_invite_submenu(invite_menuitem, [(contact, account)],
-            show_bookmarked=contact.supports(NS_CONFERENCE))
+            show_bookmarked=contact.supports(NS_CONFERENCE),
+            force_resource=force_resource)
 
     if gajim.account_is_disconnected(account):
         invite_menuitem.set_sensitive(False)
-- 
GitLab