diff options
author | Rui Matos <tiagomatos@gmail.com> | 2013-01-20 18:48:16 +0100 |
---|---|---|
committer | Rui Matos <tiagomatos@gmail.com> | 2013-01-21 16:14:49 +0100 |
commit | 63745ac30aa452b55433656087646f9e2d8a638c (patch) | |
tree | fd69b3a1e133b3ce377ccff78927c42e6c99fbb4 | |
parent | c60ece97c3751cfcee0e2bf98ea19971623fa8b1 (diff) | |
download | ibus-anthy-63745ac30aa452b55433656087646f9e2d8a638c.tar.gz |
setup: Look like a modal dialog when under gnome-control-center
In order to look better integrated when launched from
gnome-control-center we should look like a modal dialog.
-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"/> |