shellDBus: Emit a PropertyChanged for OverviewActive

I was going to add another DBus property to signal when the shell was
done loading and was idle, and while implementing that I noticed we
aren't emitting PropertyChanged for, well, any property.  Let's fix
OverviewActive.

It's unfortunate it's so tedious to correctly implement a DBus
property =/

https://bugzilla.gnome.org/show_bug.cgi?id=704163
This commit is contained in:
Colin Walters 2013-07-13 14:58:36 -04:00 committed by Florian Müllner
parent 45e42d7b9e
commit 891f30ff63

View File

@ -90,6 +90,12 @@ const GnomeShell = new Lang.Class({
function(display, action, deviceid, timestamp) { function(display, action, deviceid, timestamp) {
this._emitAcceleratorActivated(action, deviceid, timestamp); this._emitAcceleratorActivated(action, deviceid, timestamp);
})); }));
this._cachedOverviewVisible = false;
Main.overview.connect('showing',
Lang.bind(this, this._checkOverviewVisibleChanged));
Main.overview.connect('hidden',
Lang.bind(this, this._checkOverviewVisibleChanged));
}, },
/** /**
@ -235,8 +241,15 @@ const GnomeShell = new Lang.Class({
Mode: global.session_mode, Mode: global.session_mode,
_checkOverviewVisibleChanged: function() {
if (Main.overview.visible !== this._cachedOverviewVisible) {
this._cachedOverviewVisible = Main.overview.visible;
this._dbusImpl.emit_property_changed('OverviewActive', new GLib.Variant('b', this._cachedOverviewVisible));
}
},
get OverviewActive() { get OverviewActive() {
return Main.overview.visible; return this._cachedOverviewVisible;
}, },
set OverviewActive(visible) { set OverviewActive(visible) {