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