summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBartosz Jaroszewski <b.jarosze@gmail.com>2023-05-02 16:19:40 +0200
committerBartosz Jaroszewski <b.jarosze@gmail.com>2023-05-02 16:19:40 +0200
commit17e9615270c3b740ed726caa080813449e41e2a5 (patch)
tree971796fd6c347590059328717f694835df865e94
parent789e1279d98412b7e105801a3a44709a782a6353 (diff)
gnome 44
-rw-r--r--extension.js22
-rw-r--r--metadata.json5
-rw-r--r--quickSettings.js46
3 files changed, 14 insertions, 59 deletions
diff --git a/extension.js b/extension.js
index a459daa..d003d22 100644
--- a/extension.js
+++ b/extension.js
@@ -32,6 +32,8 @@ const Utils = Me.imports.utils;
const Settings = Me.imports.settings.Settings;
const BatteryProvider = Me.imports.power.UPowerBatteryProvider;
+const PopupMenu = imports.ui.popupMenu;
+
class BluetoothQuickConnect {
constructor(quickSettings, bluetooth, settings) {
@@ -39,15 +41,17 @@ class BluetoothQuickConnect {
this._logger.info('Initializing extension');
if (quickSettings) {
let btIndicator = quickSettings._bluetooth;
- let oldItem = btIndicator.quickSettingsItems[0];
- let newItem = new Me.imports.quickSettings.BluetoothToggleMenu(oldItem);
-
- btIndicator.quickSettingsItems = [newItem];
- quickSettings.menu.addItem(newItem);
- quickSettings.menu._grid.set_child_below_sibling(newItem, oldItem);
- quickSettings.menu._grid.remove_child(oldItem);
- this._proxy = oldItem._client._proxy;
- this._menu = newItem.itemsSection;
+ let bluetoothToggle = btIndicator.quickSettingsItems[0];
+ bluetoothToggle._updateDeviceVisibility = () => {
+ bluetoothToggle._deviceSection.actor.visible = false;
+ bluetoothToggle._placeholderItem.actor.visible = false;
+ }
+ bluetoothToggle._updateDeviceVisibility();
+
+ this._proxy = bluetoothToggle._client._proxy;
+ this._menu = new PopupMenu.PopupMenuSection();
+
+ bluetoothToggle.menu.addMenuItem(this._menu, 0);
} else {
this._menu = bluetooth._item.menu;
this._proxy = bluetooth._proxy;
diff --git a/metadata.json b/metadata.json
index 7ccace1..70b3688 100644
--- a/metadata.json
+++ b/metadata.json
@@ -6,9 +6,6 @@
"settings-schema": "org.gnome.shell.extensions.bluetooth-quick-connect",
"gettext-domain": "bluetooth-quick-connect",
"shell-version": [
- "40",
- "41",
- "42",
- "43"
+ "44"
]
}
diff --git a/quickSettings.js b/quickSettings.js
deleted file mode 100644
index 8f0dc9f..0000000
--- a/quickSettings.js
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2010-2022 GNOME Shell contributors
-// Copyright 2022 Simon McVittie
-// SPDX-License-Identifier: GPL-2.0-or-later
-//
-// Adapted from gnome-shell js/ui/status/bluetooth.js
-
-/* exported BluetoothToggleMenu */
-
-
-const ExtensionUtils = imports.misc.extensionUtils;
-const Me = ExtensionUtils.getCurrentExtension();
-
-const Gettext = imports.gettext.domain(Me.metadata['gettext-domain']);
-const _ = Gettext.gettext;
-
-const PopupMenu = imports.ui.popupMenu;
-
-const {GObject} = imports.gi;
-const {QuickMenuToggle} = imports.ui.quickSettings;
-
-var BluetoothToggleMenu = GObject.registerClass(
-class BluetoothToggleMenu extends QuickMenuToggle {
- _init(originalBluetoothToggle) {
- super._init({label: originalBluetoothToggle.label});
-
- this._original = originalBluetoothToggle;
- this._client = this._original._client;
-
- this._original.bind_property('visible', this, 'visible',
- GObject.BindingFlags.SYNC_CREATE);
- this._original.bind_property('checked', this, 'checked',
- GObject.BindingFlags.SYNC_CREATE);
- this._original.bind_property('icon-name', this, 'icon-name',
- GObject.BindingFlags.SYNC_CREATE);
-
- this.connect('clicked', () => this._client.toggleActive());
-
- this.menu.setHeader('bluetooth-active-symbolic', originalBluetoothToggle.label);
-
- this.itemsSection = new PopupMenu.PopupMenuSection();
- this.menu.addMenuItem(this.itemsSection);
- this.menu.addMenuItem(new PopupMenu.PopupSeparatorMenuItem());
- this.menu.addSettingsAction(_("Bluetooth Settings"), 'gnome-bluetooth-panel.desktop');
- }
-});
-