summaryrefslogtreecommitdiffstats
path: root/source/xap/blueman/fix_on_off_loop.diff
diff options
context:
space:
mode:
Diffstat (limited to 'source/xap/blueman/fix_on_off_loop.diff')
-rw-r--r--source/xap/blueman/fix_on_off_loop.diff58
1 files changed, 58 insertions, 0 deletions
diff --git a/source/xap/blueman/fix_on_off_loop.diff b/source/xap/blueman/fix_on_off_loop.diff
new file mode 100644
index 000000000..ac11c1351
--- /dev/null
+++ b/source/xap/blueman/fix_on_off_loop.diff
@@ -0,0 +1,58 @@
+revno: 602
+committer: walmis
+timestamp: Sun 2009-10-25 15:49:33 +0000
+message:
+ fix bluetooth on/off loop
+
+=== modified file 'blueman/plugins/applet/PowerManager.py'
+--- blueman/plugins/applet/PowerManager.py 2009-10-25 15:16:14 +0000
++++ blueman/plugins/applet/PowerManager.py 2009-10-25 15:49:33 +0000
+@@ -66,22 +66,6 @@
+ dprint("adapter powered on while in off state, turning bluetooth on")
+ self.bluetooth_off = False
+
+-
+- def on_manager_state_changed(self, state):
+- if state:
+- adapters = self.Applet.Manager.ListAdapters()
+- for adapter in adapters:
+- props = adapter.GetProperties()
+- if not props["Powered"]:
+- self.bluetooth_off = True
+- if self.state_change_deferred != -1:
+- break
+- else:
+- return
+-
+- if self.state_change_deferred != -1:
+- self.bluetooth_off = self.state_change_deferred
+- self.state_change_deferred = -1
+
+ def on_bluetooth_toggled(self):
+ self.bluetooth_off = not self.bluetooth_off
+@@ -97,9 +81,17 @@
+
+ return pixbuf
+
++ def process_deferred(self):
++ if self.state_change_deferred != -1:
++ dprint("Setting deferred status")
++ self.bluetooth_off = self.state_change_deferred
++ self.state_change_deferred = -1
++
+ def on_adapter_added(self, path):
+ adapter = Bluez.Adapter(path)
+ def on_ready():
++ self.process_deferred()
++
+ if self.bluetooth_off:
+ adapter.SetProperty("Powered", False)
+ else:
+@@ -134,6 +126,7 @@
+ self.__dict__[key] = value
+
+ if not self.Applet.Manager:
++ dprint("deferring status change")
+ self.state_change_deferred = value
+ return
+