Added redirect_err() for easier debugging.
[drlaunch] / src / portrait.py
index ea58c4b..4b2b457 100644 (file)
@@ -19,6 +19,7 @@
 
 import dbus
 import dbus.glib
+from dbus.mainloop.glib import DBusGMainLoop
 
 import hildon
 import osso
@@ -80,7 +81,23 @@ class FremantleRotation(object):
         self._osso_context = osso.Context(app_id, version, False)
         program = hildon.Program.get_instance()
         program.connect('notify::is-topmost', self._on_topmost_changed)
-        system_bus = dbus.Bus.get_system()
+
+       # Hack for dbus. See:
+       # https://garage.maemo.org/pipermail/pymaemo-developers/2010-April/001445.html
+       # https://garage.maemo.org/pipermail/pymaemo-developers/2010-April/001454.html
+       # https://garage.maemo.org/pipermail/pymaemo-developers/2010-April/thread.html
+       # https://bugs.maemo.org/show_bug.cgi?id=8611
+       #
+       # If we use dbus.Bus.get_system() or dbus.SystemBus() then the
+       # program fails whenever bluezwitch is installed. This could
+       # also happen whenever another widget is using System Bus (sure?).
+       # 
+        #V13 system_bus = dbus.Bus.get_system()
+       dbus.mainloop.glib.DBusGMainLoop(set_as_default=True)
+       busaddress='unix:path=/var/run/dbus/system_bus_socket'
+       system_bus=dbus.bus.BusConnection(busaddress)
+       self.system_bus=system_bus
+
         system_bus.add_signal_receiver(self._on_orientation_signal, \
                 signal_name='sig_device_orientation_ind', \
                 dbus_interface='com.nokia.mce.signal', \