summaryrefslogtreecommitdiff
path: root/testing/gnome-shell/bluetoothstatus-always-update-devices.patch
diff options
context:
space:
mode:
Diffstat (limited to 'testing/gnome-shell/bluetoothstatus-always-update-devices.patch')
-rw-r--r--testing/gnome-shell/bluetoothstatus-always-update-devices.patch132
1 files changed, 0 insertions, 132 deletions
diff --git a/testing/gnome-shell/bluetoothstatus-always-update-devices.patch b/testing/gnome-shell/bluetoothstatus-always-update-devices.patch
deleted file mode 100644
index 0272169f5..000000000
--- a/testing/gnome-shell/bluetoothstatus-always-update-devices.patch
+++ /dev/null
@@ -1,132 +0,0 @@
-From 76fce94b66be7bdebbedcc3bce62898da51da15a Mon Sep 17 00:00:00 2001
-From: Giovanni Campagna <gcampagna@src.gnome.org>
-Date: Wed, 13 Apr 2011 17:08:45 +0000
-Subject: BluetoothStatus: always update devices
-
-Previously, we skipped rebuilding device items in case the device
-had already been seen, but this caused the connected switch not to
-be updated. Now it has been refactored to update in case the device
-changes, and to create only when the device is completely new.
-
-https://bugzilla.gnome.org/show_bug.cgi?id=647565
----
-diff --git a/js/ui/status/bluetooth.js b/js/ui/status/bluetooth.js
-index 070016a..cee2f90 100644
---- a/js/ui/status/bluetooth.js
-+++ b/js/ui/status/bluetooth.js
-@@ -127,13 +127,6 @@ Indicator.prototype = {
- }
- },
-
-- _deviceCompare: function(d1, d2) {
-- return d1.device_path == d2.device_path &&
-- d1.bdaddr == d2.bdaddr &&
-- d1.can_connect == d2.can_connect &&
-- d1.capabilities == d2.capabilities;
-- },
--
- _updateDevices: function() {
- let devices = this._applet.get_devices();
-
-@@ -142,12 +135,8 @@ Indicator.prototype = {
- let item = this._deviceItems[i];
- let destroy = true;
- for (let j = 0; j < devices.length; j++) {
-- // we need to deep compare because BluetoothSimpleDevice is a boxed type
-- // (but we take advantage of that, because _skip will disappear the next
-- // time get_devices() is called)
-- if (this._deviceCompare(item._device, devices[j])) {
-- item.label.text = devices[j].alias;
-- devices[j]._skip = true;
-+ if (item._device.device_path == devices[j].device_path) {
-+ this._updateDeviceItem(item, devices[j]);
- destroy = false;
- break;
- }
-@@ -162,7 +151,7 @@ Indicator.prototype = {
- this._hasDevices = newlist.length > 0;
- for (let i = 0; i < devices.length; i++) {
- let d = devices[i];
-- if (d._skip)
-+ if (d._item)
- continue;
- let item = this._createDeviceItem(d);
- if (item) {
-@@ -177,17 +166,55 @@ Indicator.prototype = {
- this._deviceSep.actor.hide();
- },
-
-+ _updateDeviceItem: function(item, device) {
-+ if (!device.can_connect && device.capabilities == GnomeBluetoothApplet.Capabilities.NONE) {
-+ item.destroy();
-+ return;
-+ }
-+
-+ let prevDevice = item._device;
-+ let prevCapabilities = prevDevice.capabilities;
-+ let prevCanConnect = prevDevice.can_connect;
-+
-+ // adopt the new device object
-+ item._device = device;
-+ device._item = item;
-+
-+ // update properties
-+ item.label.text = device.alias;
-+
-+ if (prevCapabilities != device.capabilities ||
-+ prevCanConnect != device.can_connect) {
-+ // need to rebuild the submenu
-+ item.menu.removeAll();
-+ this._buildDeviceSubMenu(item, device);
-+ }
-+
-+ // update connected property
-+ if (device.can_connect)
-+ item._connectedMenuitem.setToggleState(device.connected);
-+ },
-+
- _createDeviceItem: function(device) {
- if (!device.can_connect && device.capabilities == GnomeBluetoothApplet.Capabilities.NONE)
- return null;
- let item = new PopupMenu.PopupSubMenuMenuItem(device.alias);
-+
-+ // adopt the device object, and add a back link
- item._device = device;
-+ device._item = item;
-
-+ this._buildDeviceSubMenu(item, device);
-+
-+ return item;
-+ },
-+
-+ _buildDeviceSubMenu: function(item, device) {
- if (device.can_connect) {
- item._connected = device.connected;
-- let menuitem = new PopupMenu.PopupSwitchMenuItem(_("Connection"), device.connected);
-+ item._connectedMenuitem = new PopupMenu.PopupSwitchMenuItem(_("Connection"), device.connected);
-
-- menuitem.connect('toggled', Lang.bind(this, function() {
-+ item._connectedMenuitem.connect('toggled', Lang.bind(this, function() {
- if (item._connected > ConnectionState.CONNECTED) {
- // operation already in progress, revert
- menuitem.setToggleState(menuitem.state);
-@@ -217,7 +244,7 @@ Indicator.prototype = {
- }
- }));
-
-- item.menu.addMenuItem(menuitem);
-+ item.menu.addMenuItem(item._connectedMenuitem);
- }
-
- if (device.capabilities & GnomeBluetoothApplet.Capabilities.OBEX_PUSH) {
-@@ -263,8 +290,6 @@ Indicator.prototype = {
- default:
- break;
- }
--
-- return item;
- },
-
- _updateFullMenu: function() {
---
-cgit v0.9