From a9a6b048fb4a8fe7ca963b03faf0f9e0eef3eb05 Mon Sep 17 00:00:00 2001 From: Yann Leboulanger <asterix@lagaule.org> Date: Wed, 28 Mar 2018 16:14:54 +0200 Subject: [PATCH] set a transient_for for join groupchat dialog when needed. Fixes #8994 --- gajim/dialogs.py | 5 ++++- gajim/disco.py | 3 ++- gajim/gui_interface.py | 6 ++++-- 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/gajim/dialogs.py b/gajim/dialogs.py index 804ae8840c..9a045ad5b1 100644 --- a/gajim/dialogs.py +++ b/gajim/dialogs.py @@ -2364,7 +2364,8 @@ class SubscriptionRequestWindow(Gtk.ApplicationWindow): self.destroy() class JoinGroupchatWindow(Gtk.ApplicationWindow): - def __init__(self, account, room_jid, password=None, automatic=None): + def __init__(self, account, room_jid, password=None, automatic=None, + transient_for=None): Gtk.ApplicationWindow.__init__(self) self.set_name('JoinGroupchat') self.set_application(app.app) @@ -2372,6 +2373,8 @@ class JoinGroupchatWindow(Gtk.ApplicationWindow): self.set_resizable(False) self.set_position(Gtk.WindowPosition.CENTER) self.set_title(_('Join Groupchat')) + if transient_for: + self.set_transient_for(transient_for) self.automatic = automatic self.password = password diff --git a/gajim/disco.py b/gajim/disco.py index 0a807ed89a..48f1ff8276 100644 --- a/gajim/disco.py +++ b/gajim/disco.py @@ -1399,7 +1399,8 @@ class ToplevelAgentBrowser(AgentBrowser): if not iter_: return service = model[iter_][0] - app.interface.join_gc_minimal(self.account, service) + app.interface.join_gc_minimal(self.account, service, + transient_for=self.window.window) def update_actions(self): if self.execute_button: diff --git a/gajim/gui_interface.py b/gajim/gui_interface.py index d99eb7ff3e..ed7fc29902 100644 --- a/gajim/gui_interface.py +++ b/gajim/gui_interface.py @@ -1818,7 +1818,8 @@ class Interface: ctrl.scroll_to_end() - def join_gc_minimal(self, account, room_jid, password=None): + def join_gc_minimal(self, account, room_jid, password=None, + transient_for=None): if account is not None: if app.in_groupchat(account, room_jid): # If we already in the groupchat, join_gc_room will bring @@ -1855,7 +1856,8 @@ class Interface: dialogs.ErrorDialog(_('JID is not a Groupchat'), transient_for=app.app.get_active_window()) return - dialogs.JoinGroupchatWindow(account, room_jid, password=password) + dialogs.JoinGroupchatWindow(account, room_jid, password=password, + transient_for=transient_for) disco_account = connected_accounts[0] if account is None else account app.connections[disco_account].discoverMUC( -- GitLab