[Overview] Lightbox workspaces on menu popup

Overlay a translucent rectangle to dim the workspaces/dash rather
than setting the workspaces' opacity.
Also slightly darken all lightboxes.

https://bugzilla.gnome.org/show_bug.cgi?id=602466
This commit is contained in:
Florian Müllner 2010-01-10 06:09:18 +01:00 committed by Florian Müllner
parent efd30a0eef
commit 730681aabc
2 changed files with 15 additions and 3 deletions

View File

@ -1067,7 +1067,7 @@ StTooltip {
} }
.lightbox { .lightbox {
background-color: rgba(0, 0, 0, 0.27); background-color: rgba(0, 0, 0, 0.4);
} }
/* Magnifier */ /* Magnifier */

View File

@ -14,6 +14,7 @@ const _ = Gettext.gettext;
const AppDisplay = imports.ui.appDisplay; const AppDisplay = imports.ui.appDisplay;
const DocDisplay = imports.ui.docDisplay; const DocDisplay = imports.ui.docDisplay;
const GenericDisplay = imports.ui.genericDisplay; const GenericDisplay = imports.ui.genericDisplay;
const Lightbox = imports.ui.lightbox;
const Main = imports.ui.main; const Main = imports.ui.main;
const Panel = imports.ui.panel; const Panel = imports.ui.panel;
const Dash = imports.ui.dash; const Dash = imports.ui.dash;
@ -176,11 +177,19 @@ Overview.prototype = {
_init : function() { _init : function() {
this._group = new St.Group({ style_class: 'overview' }); this._group = new St.Group({ style_class: 'overview' });
this._group._delegate = this; this._group._delegate = this;
this._group.connect('destroy', Lang.bind(this,
function() {
if (this._lightbox) {
this._lightbox.destroy();
this._lightbox = null;
}
}));
this.infoBar = new InfoBar(); this.infoBar = new InfoBar();
this._group.add_actor(this.infoBar.actor); this._group.add_actor(this.infoBar.actor);
this._workspacesManager = null; this._workspacesManager = null;
this._lightbox = null;
this.visible = false; this.visible = false;
this.animationInProgress = false; this.animationInProgress = false;
@ -362,7 +371,10 @@ Overview.prototype = {
this._activeDisplayPane.close(); this._activeDisplayPane.close();
return true; return true;
})); }));
this.workspaces.actor.opacity = 64; if (!this._lightbox)
this._lightbox = new Lightbox.Lightbox(this._group, false);
this._lightbox.actor.show();
this._lightbox.highlight(this._paneContainer);
} else if (pane == this._activeDisplayPane) { } else if (pane == this._activeDisplayPane) {
this._activeDisplayPane = null; this._activeDisplayPane = null;
if (backgroundEventId != null) { if (backgroundEventId != null) {
@ -371,7 +383,7 @@ Overview.prototype = {
} }
this._transparentBackground.lower_bottom(); this._transparentBackground.lower_bottom();
this._paneContainer.hide(); this._paneContainer.hide();
this.workspaces.actor.opacity = 255; this._lightbox.actor.hide(true);
} }
})); }));
}, },