Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/src/jarabe/desktop/meshbox.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/jarabe/desktop/meshbox.py')
-rw-r--r--src/jarabe/desktop/meshbox.py17
1 files changed, 9 insertions, 8 deletions
diff --git a/src/jarabe/desktop/meshbox.py b/src/jarabe/desktop/meshbox.py
index a04922b..eabc737 100644
--- a/src/jarabe/desktop/meshbox.py
+++ b/src/jarabe/desktop/meshbox.py
@@ -574,13 +574,15 @@ class OlpcMeshView(CanvasPulsingIcon):
self._update_color()
def disconnect(self):
+ device_object_path = self._mesh_mgr.mesh_device.object_path
+
self._bus.remove_signal_receiver(self.__device_state_changed_cb,
signal_name='StateChanged',
- path=self._device.object_path,
+ path=device_object_path,
dbus_interface=_NM_DEVICE_IFACE)
self._bus.remove_signal_receiver(self.__wireless_properties_changed_cb,
signal_name='PropertiesChanged',
- path=self._device.object_path,
+ path=device_object_path,
dbus_interface=_NM_OLPC_MESH_IFACE)
@@ -821,6 +823,7 @@ class NetworkManagerObserver(object):
self._bus = None
self._devices = {}
self._netmgr = None
+ self._olpc_mesh_device_o = None
def listen(self):
try:
@@ -885,6 +888,7 @@ class NetworkManagerObserver(object):
if device_type == network.DEVICE_TYPE_802_11_WIRELESS:
self._devices[device_o] = DeviceObserver(self._box, device)
elif device_type == network.DEVICE_TYPE_802_11_OLPC_MESH:
+ self._olpc_mesh_device_o = device_o
self._box.enable_olpc_mesh(device)
def _get_device_path_error_cb(self, err):
@@ -899,12 +903,9 @@ class NetworkManagerObserver(object):
observer.disconnect()
del self._devices[device_o]
return
-
- device = self._bus.get_object(_NM_SERVICE, device_o)
- props = dbus.Interface(device, 'org.freedesktop.DBus.Properties')
- device_type = props.Get(_NM_DEVICE_IFACE, 'DeviceType')
- if device_type == network.DEVICE_TYPE_802_11_OLPC_MESH:
- self._box.disable_olpc_mesh(device)
+
+ if self._olpc_mesh_device_o == device_o:
+ self._box.disable_olpc_mesh(device_o)
class MeshBox(gtk.VBox):
__gtype_name__ = 'SugarMeshBox'