From 46b1b5db0a6d3ee0695735c9cf0e88a8767478fb Mon Sep 17 00:00:00 2001
From: Yann Leboulanger <asterix@lagaule.org>
Date: Wed, 18 May 2011 22:48:28 +0200
Subject: [PATCH] prevent having more than one password required dialog per
 room. Fixes #6790

---
 src/gui_interface.py | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/src/gui_interface.py b/src/gui_interface.py
index 5877a706fc..3329ba359a 100644
--- a/src/gui_interface.py
+++ b/src/gui_interface.py
@@ -261,11 +261,16 @@ class Interface:
                 ctrl = self.msg_win_mgr.get_gc_control(room_jid, account)
                 win.remove_tab(ctrl, 3)
 
-        dlg = dialogs.InputDialog(_('Password Required'),
+        gc_control = self.msg_win_mgr.get_gc_control(room_jid, account)
+        if gc_control:
+            if gc_control.error_dialog:
+                gc_control.error_dialog.destroy()
+
+        gc_control.error_dialog = dialogs.InputDialog(_('Password Required'),
             _('A Password is required to join the room %s. Please type it.') % \
             room_jid, is_modal=False, ok_handler=on_ok,
             cancel_handler=on_cancel)
-        dlg.input_entry.set_visibility(False)
+        gc_control.error_dialog.input_entry.set_visibility(False)
 
     def handle_event_gc_presence(self, obj):
         gc_control = obj.gc_control
-- 
GitLab