diff options
Diffstat (limited to 'setup')
-rw-r--r-- | setup/main.py | 24 | ||||
-rw-r--r-- | setup/setup.ui | 2 |
2 files changed, 25 insertions, 1 deletions
diff --git a/setup/main.py b/setup/main.py index e00abb5..338ad15 100644 --- a/setup/main.py +++ b/setup/main.py @@ -35,6 +35,7 @@ except: from gi.repository import Gtk from gi.repository import Gdk +from gi.repository import GdkX11 from gi.repository import GObject from gi.repository import Pango from gi.repository import IBus @@ -80,6 +81,29 @@ class AnthySetup(object): builder.set_translation_domain(DOMAINNAME) builder.add_from_file(builder_file) + toplevel = builder.get_object('main') + + try: + gnome_control_center_xid = int(environ['GNOME_CONTROL_CENTER_XID']) + except: + gnome_control_center_xid = 0 + + if gnome_control_center_xid != 0: + def set_transient(obj, pspec): + window = toplevel.get_window() + if window == None: + return + parent_window = GdkX11.X11Window.foreign_new_for_display(Gdk.Display.get_default(), + gnome_control_center_xid) + if parent_window != None: + window.set_transient_for(parent_window) + toplevel.set_wmclass('gnome-control-center', 'Gnome-control-center') + toplevel.set_modal(True) + toplevel.set_type_hint(Gdk.WindowTypeHint.DIALOG) + toplevel.connect('notify::window', set_transient) + + toplevel.show() + if ibus_address == None: builder.connect_signals(self) # self.__run_message_dialog needs self.__builder. diff --git a/setup/setup.ui b/setup/setup.ui index 8efbe4e..4306ecc 100644 --- a/setup/setup.ui +++ b/setup/setup.ui @@ -190,7 +190,7 @@ <!-- interface-requires gtk+ 2.16 --> <!-- interface-naming-policy toplevel-contextual --> <object class="GtkDialog" id="main"> - <property name="visible">True</property> + <property name="visible">False</property> <property name="title" translatable="yes">Setup - IBus-Anthy</property> <property name="type_hint">dialog</property> <signal handler="on_main_delete" name="delete_event"/> |