From 8b777b0bffdf1a51830325a382b926bd571c2f1d Mon Sep 17 00:00:00 2001
From: Denis Fomin <fominde@gmail.com>
Date: Fri, 6 Jul 2012 01:38:18 +0400
Subject: [PATCH] fix set parent window for ProfileWindow and
 ChoseGPGKeyDialog.

---
 data/gui/profile_window.ui | 1 -
 src/config.py              | 2 +-
 src/dialogs.py             | 3 +--
 src/gui_interface.py       | 2 +-
 src/profile_window.py      | 3 +--
 src/roster_window.py       | 2 +-
 6 files changed, 5 insertions(+), 8 deletions(-)

diff --git a/data/gui/profile_window.ui b/data/gui/profile_window.ui
index 2fb532e5e9..88ba214e47 100644
--- a/data/gui/profile_window.ui
+++ b/data/gui/profile_window.ui
@@ -4,7 +4,6 @@
   <!-- interface-naming-policy toplevel-contextual -->
   <object class="GtkWindow" id="profile_window">
     <property name="title" translatable="yes">Personal Information</property>
-    <property name="window_position">center-on-parent</property>
     <property name="type_hint">dialog</property>
     <signal name="destroy" handler="on_profile_window_destroy"/>
     <signal name="key_press_event" handler="on_profile_window_key_press_event"/>
diff --git a/src/config.py b/src/config.py
index 9b306e3c03..e1aeb4d654 100644
--- a/src/config.py
+++ b/src/config.py
@@ -2459,7 +2459,7 @@ class AccountsWindow:
         jid = gajim.get_jid_from_account(self.current_account)
         if 'profile' not in gajim.interface.instances[self.current_account]:
             gajim.interface.instances[self.current_account]['profile'] = \
-                profile_window.ProfileWindow(self.current_account, self.window)
+                profile_window.ProfileWindow(self.current_account, transient_for=self.window)
             gajim.connections[self.current_account].request_vcard(jid)
 
     def on_checkbutton_toggled(self, widget, config_name,
diff --git a/src/dialogs.py b/src/dialogs.py
index 8e831b4e73..b3faf81219 100644
--- a/src/dialogs.py
+++ b/src/dialogs.py
@@ -283,8 +283,7 @@ class ChooseGPGKeyDialog:
         xml = gtkgui_helpers.get_gtk_builder('choose_gpg_key_dialog.ui')
         self.window = xml.get_object('choose_gpg_key_dialog')
         self.window.set_title(title_text)
-        if not transient_for:
-            self.window.set_transient_for(gajim.interface.roster.window)
+        self.window.set_transient_for(transient_for)
         self.keys_treeview = xml.get_object('keys_treeview')
         prompt_label = xml.get_object('prompt_label')
         prompt_label.set_text(prompt_text)
diff --git a/src/gui_interface.py b/src/gui_interface.py
index c2d1155429..df0557dcb2 100644
--- a/src/gui_interface.py
+++ b/src/gui_interface.py
@@ -237,7 +237,7 @@ class Interface:
         jid = gajim.get_jid_from_account(account)
         if 'profile' not in self.instances[account]:
             self.instances[account]['profile'] = \
-                    profile_window.ProfileWindow(account)
+            profile_window.ProfileWindow(account, gajim.interface.roster.window)
             gajim.connections[account].request_vcard(jid)
 
     def handle_gc_error(self, gc_control, pritext, sectext):
diff --git a/src/profile_window.py b/src/profile_window.py
index 00096ddfea..5c506e9415 100644
--- a/src/profile_window.py
+++ b/src/profile_window.py
@@ -45,8 +45,7 @@ class ProfileWindow:
     def __init__(self, account, transient_for=None):
         self.xml = gtkgui_helpers.get_gtk_builder('profile_window.ui')
         self.window = self.xml.get_object('profile_window')
-        if not transient_for:
-            self.window.set_transient_for(gajim.interface.roster.window)
+        self.window.set_transient_for(transient_for)
         self.progressbar = self.xml.get_object('progressbar')
         self.statusbar = self.xml.get_object('statusbar')
         self.context_id = self.statusbar.get_context_id('profile')
diff --git a/src/roster_window.py b/src/roster_window.py
index 49e407e739..0f2b2ae61f 100644
--- a/src/roster_window.py
+++ b/src/roster_window.py
@@ -3215,7 +3215,7 @@ class RosterWindow:
 
         dialogs.ChooseGPGKeyDialog(_('Assign OpenPGP Key'),
             _('Select a key to apply to the contact'), public_keys,
-            on_key_selected, selected=keyID)
+            on_key_selected, selected=keyID, transient_for=self.window)
 
     def on_set_custom_avatar_activate(self, widget, contact, account):
         def on_ok(widget, path_to_file):
-- 
GitLab