diff --git a/modules/Bluetooth.qml b/modules/Bluetooth.qml index f991349..884a708 100644 --- a/modules/Bluetooth.qml +++ b/modules/Bluetooth.qml @@ -76,7 +76,7 @@ M.BarSection { required property var bar - readonly property bool _anyHover: root._hovered || bluetoothMenu.panelHovered + readonly property bool _anyHover: root._hovered || bluetoothMenu.panelHovered || bluetoothMenu._busy M.BluetoothMenu { id: bluetoothMenu diff --git a/modules/BluetoothMenu.qml b/modules/BluetoothMenu.qml index 565baf9..4d0e415 100644 --- a/modules/BluetoothMenu.qml +++ b/modules/BluetoothMenu.qml @@ -12,6 +12,8 @@ M.HoverPanel { onVisibleChanged: if (visible) scanner.running = true + readonly property bool _busy: powerProc.running || toggleProc.running + property var _devices: [] property bool _btEnabled: true @@ -196,7 +198,6 @@ M.HoverPanel { toggleProc.action = entry.modelData.connected ? "disconnect" : "connect"; toggleProc.mac = entry.modelData.mac; toggleProc.running = true; - menuWindow.dismiss(); } } } diff --git a/modules/Network.qml b/modules/Network.qml index 75b8acc..f0d3865 100644 --- a/modules/Network.qml +++ b/modules/Network.qml @@ -63,7 +63,10 @@ M.BarSection { Timer { id: _debounce interval: 300 - onTriggered: proc.running = true + onTriggered: { + proc.running = true; + networkMenu.triggerRefresh(); + } } // Fallback poll Timer { diff --git a/modules/NetworkMenu.qml b/modules/NetworkMenu.qml index 30fb449..ad493a2 100644 --- a/modules/NetworkMenu.qml +++ b/modules/NetworkMenu.qml @@ -14,6 +14,11 @@ M.HoverPanel { readonly property bool _busy: connectProc.running || disconnectProc.running || radioProc.running + function triggerRefresh() { + if (visible) + scanner.running = true; + } + property var _networks: [] property bool _wifiEnabled: true