[gnome-shell] rfkill: Always sync state on construction
- From: verdre <jonasd src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-shell] rfkill: Always sync state on construction
- Date: Sun, 2 Aug 2020 20:03:20 +0000 (UTC)
commit dd846f1ba2f3e93d5840dd48bef4eb67ba050848
Author: Andre Moreira Magalhaes <andre endlessm com>
Date: Fri Jul 31 18:11:48 2020 -0300
rfkill: Always sync state on construction
This fixes an issue where the indicator can be out of sync until the
RfkillManager (used by it) properties change.
The problem is that multiple instances of the indicator will use
the same RfkillManager instance (getRfkillManager() returns a singleton)
that only guarantees to emit the changed signal in two scenarios:
when the D-Bus proxy connects and when the proxy properties change.
If by the time an indicator is instantiated the RfkillManager's D-Bus
proxy is already connected, that indicator would only sync its state
when the RfkillManager properties change.
Let's fix that by always syncing the state on construction - in the worst
case scenario the RfkillManager's D-Bus proxy won't have connected yet
and the indicator state will be temporarily out of sync but once it gets
connected the indicator will sync again with the correct state.
https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/1386
js/ui/status/rfkill.js | 2 ++
1 file changed, 2 insertions(+)
---
diff --git a/js/ui/status/rfkill.js b/js/ui/status/rfkill.js
index 658116e2e9..9f8b09dd2e 100644
--- a/js/ui/status/rfkill.js
+++ b/js/ui/status/rfkill.js
@@ -86,6 +86,8 @@ class Indicator extends PanelMenu.SystemIndicator {
Main.sessionMode.connect('updated', this._sessionUpdated.bind(this));
this._sessionUpdated();
+
+ this._sync();
}
_sessionUpdated() {
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]