summaryrefslogtreecommitdiff
path: root/setup
diff options
context:
space:
mode:
authorRui Matos <tiagomatos@gmail.com>2013-01-20 18:48:16 +0100
committerRui Matos <tiagomatos@gmail.com>2013-01-21 16:14:49 +0100
commit63745ac30aa452b55433656087646f9e2d8a638c (patch)
treefd69b3a1e133b3ce377ccff78927c42e6c99fbb4 /setup
parentc60ece97c3751cfcee0e2bf98ea19971623fa8b1 (diff)
downloadibus-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.
Diffstat (limited to 'setup')
-rw-r--r--setup/main.py24
-rw-r--r--setup/setup.ui2
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"/>