chrome: don't show visibleInOverview chrome when the screensaver is active
visibleInOverview chrome was visible even when the screensaver was active. Although we may eventually need visibleInScreenSaver, that should be a separate flag. Fix this by tracking the screensaver active state, and hiding the chrome when the screensaver is active. https://bugzilla.gnome.org/show_bug.cgi?id=654550
This commit is contained in:
parent
5f86e29830
commit
896d8e830c
@ -8,6 +8,7 @@ const Signals = imports.signals;
|
|||||||
|
|
||||||
const Main = imports.ui.main;
|
const Main = imports.ui.main;
|
||||||
const Params = imports.misc.params;
|
const Params = imports.misc.params;
|
||||||
|
const ScreenSaver = imports.misc.screenSaver;
|
||||||
|
|
||||||
// This manages the shell "chrome"; the UI that's visible in the
|
// This manages the shell "chrome"; the UI that's visible in the
|
||||||
// normal mode (ie, outside the Overview), that surrounds the main
|
// normal mode (ie, outside the Overview), that surrounds the main
|
||||||
@ -49,6 +50,14 @@ Chrome.prototype = {
|
|||||||
Main.overview.connect('hidden',
|
Main.overview.connect('hidden',
|
||||||
Lang.bind(this, this._overviewHidden));
|
Lang.bind(this, this._overviewHidden));
|
||||||
|
|
||||||
|
this._screenSaverProxy = new ScreenSaver.ScreenSaverProxy();
|
||||||
|
this._screenSaverProxy.connect('ActiveChanged', Lang.bind(this, this._onScreenSaverActiveChanged));
|
||||||
|
this._screenSaverProxy.GetActiveRemote(Lang.bind(this,
|
||||||
|
function(result, err) {
|
||||||
|
if (!err)
|
||||||
|
this._onScreenSaverActiveChanged(this._screenSaverProxy, result);
|
||||||
|
}));
|
||||||
|
|
||||||
this._relayout();
|
this._relayout();
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -212,6 +221,11 @@ Chrome.prototype = {
|
|||||||
this._queueUpdateRegions();
|
this._queueUpdateRegions();
|
||||||
},
|
},
|
||||||
|
|
||||||
|
_onScreenSaverActiveChanged: function(proxy, screenSaverActive) {
|
||||||
|
this.actor.visible = !screenSaverActive;
|
||||||
|
this._queueUpdateRegions();
|
||||||
|
},
|
||||||
|
|
||||||
_findMonitorForRect: function(x, y, w, h) {
|
_findMonitorForRect: function(x, y, w, h) {
|
||||||
// First look at what monitor the center of the rectangle is at
|
// First look at what monitor the center of the rectangle is at
|
||||||
let cx = x + w/2;
|
let cx = x + w/2;
|
||||||
|
Loading…
Reference in New Issue
Block a user