Comment 31 for bug 829186

Martin Pitt (pitti) wrote :

For ubiquity's xklavier usage, it seems that this isn't working at all right now. With the existing pygobject 2.28 on oneiric, when I do

>>> from gi.repository import Gdk
>>> import xklavier
>>> display = Gdk.Display.get_default()
>>> engine = xklavier.Engine(display)
__main__:1: Warning: cannot register existing type `GdkDisplay'
__main__:1: Warning: g_once_init_leave: assertion `initialization_value != 0' failed
__main__:1: invalid cast from `GdkX11Display' to `invalid'

and then it hangs eternally. When I run the same with pygobject 2.90, I get

>>> from gi.repository import Gdk
>>> import xklavier
/usr/lib/python2.7/dist-packages/gobject/ Warning: g_boxed_type_register_static: assertion `g_type_from_name (name) == 0' failed
  import gobject._gobject
>>> display = Gdk.Display.get_default()
>>> engine = xklavier.Engine(display)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: must be gobject.GObject, not gtk.gdk.X11Display

However, even if that would work, ubiquity's set_indicator_keymaps() currently uses gconf, but the current GNOME desktop uses gsettings.

As the function does not seem to work at all in any circumstance now, would it be ok to disable it for now with

--- ubiquity/ 2011-06-02 10:57:49 +0000
+++ ubiquity/ 2011-08-26 07:23:25 +0000
@@ -561,6 +561,10 @@
     return model

 def set_indicator_keymaps(locale):
+ import warnings
+ warning.warn('set_indicator_keymaps: this function currently does not work')
+ return
     import libxml2
     import xklavier
     from gi.repository import Gdk