diff options
author | fujiwarat <takao.fujiwara1@gmail.com> | 2013-06-19 12:18:36 +0900 |
---|---|---|
committer | fujiwarat <takao.fujiwara1@gmail.com> | 2013-06-19 12:18:36 +0900 |
commit | 579229e2cfe9c13396abaa7adc3e5a963bfd726a (patch) | |
tree | 7aad1694cf712faaba5b324ecf2966900e8dfa3d | |
parent | 75801eaa24eef877d5b5cdda7363094f1b75ced8 (diff) | |
download | ibus-anthy-579229e2cfe9c13396abaa7adc3e5a963bfd726a.tar.gz |
Fixed ibus-engine-anthy --xml without display
-rw-r--r-- | engine/engine.py | 19 | ||||
-rw-r--r-- | engine/main.py | 5 | ||||
-rw-r--r-- | engine/thumb.py | 29 | ||||
-rw-r--r-- | setup/main.py | 5 |
4 files changed, 42 insertions, 16 deletions
diff --git a/engine/engine.py b/engine/engine.py index 8a56e8f..c230a9f 100644 --- a/engine/engine.py +++ b/engine/engine.py @@ -37,12 +37,6 @@ except: from gi.repository import GLib from gi.repository import IBus -try: - from gi.repository import Gtk - clipboard_get = Gtk.Clipboard.get -except ImportError: - clipboard_get = lambda a : None - from gi.repository import Anthy NTH_UNCONVERTED_CANDIDATE = Anthy.NTH_UNCONVERTED_CANDIDATE NTH_KATAKANA_CANDIDATE = Anthy.NTH_KATAKANA_CANDIDATE @@ -2322,6 +2316,19 @@ class Engine(IBus.EngineSimple): # if user has inputed some chars return False + # Move importing Gtk into Engine from the header + # because ibus-engine-anthy --xml does not requre to open X. + try: + from gi.repository import Gtk + clipboard_get = Gtk.Clipboard.get + except ImportError: + clipboard_get = lambda a : None + except RuntimeError: + # Do we support the engine without display? + print >> sys.stderr, "Gtk couldn't be initialized" + print >> sys.stderr, 'Could not open display' + clipboard_get = lambda a : None + # Use Gtk.Clipboard.request_text() instead of # Gtk.Clipboard.wait_for_text() because DBus is timed out. clipboard = clipboard_get ('PRIMARY') diff --git a/engine/main.py b/engine/main.py index eea430b..2816df1 100644 --- a/engine/main.py +++ b/engine/main.py @@ -29,6 +29,11 @@ import locale import xml.dom.minidom from gi.repository import GLib + +# set_prgname before importing factory to show the name in warning +# messages when import modules are failed. E.g. Gtk. +GLib.set_prgname('ibus-engine-anthy') + from gi.repository import IBus import _config as config diff --git a/engine/thumb.py b/engine/thumb.py index 24b2698..57810e8 100644 --- a/engine/thumb.py +++ b/engine/thumb.py @@ -30,16 +30,6 @@ __all__ = ( from gi.repository import GLib from gi.repository import IBus -try: - from gi.repository import Gdk - get_default_root_window = Gdk.get_default_root_window - property_get = Gdk.property_get - intern = Gdk.Atom.intern -except ImportError: - get_default_root_window = lambda : None - property_get = lambda : None - intern = lambda : None - import segment _THUMB_BASIC_METHOD = 'base' @@ -391,6 +381,25 @@ class ThumbShiftKeyboard: def __get_xkb_layout(self): # Until Gdk.property_get is fixed ''' + # Move importing Gdk into ThumbShiftKeyboard from the header + # because ibus-engine-anthy --xml does not requre to open X. + try: + from gi.repository import Gdk + get_default_root_window = Gdk.get_default_root_window + property_get = Gdk.property_get + intern = Gdk.Atom.intern + except ImportError: + get_default_root_window = lambda : None + property_get = lambda : None + intern = lambda : None + except RuntimeError: + # Do we support the engine without display? + print >> sys.stderr, "Gdk couldn't be initialized" + print >> sys.stderr, 'Could not open display' + get_default_root_window = lambda : None + property_get = lambda : None + intern = lambda : None + root_window = get_default_root_window() if not root_window: return 0 diff --git a/setup/main.py b/setup/main.py index 056807b..7562e46 100644 --- a/setup/main.py +++ b/setup/main.py @@ -34,6 +34,11 @@ except: getpreferredencoding = None from gi.repository import GLib + +# set_prgname before importing other modules to show the name in warning +# messages when import modules are failed. E.g. Gtk. +GLib.set_prgname('ibus-setup-anthy') + from gi.repository import Gtk from gi.repository import Gdk from gi.repository import GdkX11 |