From 891f30ff6386f40796b8033180b8311c5bd8c935 Mon Sep 17 00:00:00 2001 From: Colin Walters Date: Sat, 13 Jul 2013 14:58:36 -0400 Subject: [PATCH] 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 --- js/ui/shellDBus.js | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/js/ui/shellDBus.js b/js/ui/shellDBus.js index 4ef03c149..45a2054cb 100644 --- a/js/ui/shellDBus.js +++ b/js/ui/shellDBus.js @@ -90,6 +90,12 @@ const GnomeShell = new Lang.Class({ function(display, 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, + _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() { - return Main.overview.visible; + return this._cachedOverviewVisible; }, set OverviewActive(visible) {