summaryrefslogtreecommitdiffstats
path: root/source/xap/blueman/fix_on_off_loop.diff
blob: ac11c1351bbd35830d2a2647cd05fcf65457641d (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
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