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
This commit is contained in:
parent
ec3653240a
commit
dd846f1ba2
@ -86,6 +86,8 @@ class Indicator extends PanelMenu.SystemIndicator {
|
|||||||
|
|
||||||
Main.sessionMode.connect('updated', this._sessionUpdated.bind(this));
|
Main.sessionMode.connect('updated', this._sessionUpdated.bind(this));
|
||||||
this._sessionUpdated();
|
this._sessionUpdated();
|
||||||
|
|
||||||
|
this._sync();
|
||||||
}
|
}
|
||||||
|
|
||||||
_sessionUpdated() {
|
_sessionUpdated() {
|
||||||
|
Loading…
Reference in New Issue
Block a user