panel: Remove panel translucency
Since commit 447bf55e45
we turn the top bar translucent when
free-floating. While this looks fancy and reduces the appearance
of cutting into the available screen space, it has also had a
negative effect on legibility.
Nobody stepped up to address those issues in two years, so revert
back to the fully opaque top bar.
https://gitlab.gnome.org/GNOME/gnome-shell/issues/408
This commit is contained in:
parent
e2352f5126
commit
9cfb51c106
@ -729,9 +729,7 @@ StScrollBar {
|
|||||||
/* TOP BAR */
|
/* TOP BAR */
|
||||||
|
|
||||||
#panel {
|
#panel {
|
||||||
background-color: rgba(0, 0, 0, 0.35);
|
background-color: black;
|
||||||
/* transition from solid to transparent */
|
|
||||||
transition-duration: 500ms;
|
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
height: 1.86em;
|
height: 1.86em;
|
||||||
font-feature-settings: "tnum";
|
font-feature-settings: "tnum";
|
||||||
@ -748,7 +746,7 @@ StScrollBar {
|
|||||||
|
|
||||||
.panel-corner {
|
.panel-corner {
|
||||||
-panel-corner-radius: $panel-corner-radius;
|
-panel-corner-radius: $panel-corner-radius;
|
||||||
-panel-corner-background-color: rgba(0, 0, 0, 0.35);
|
-panel-corner-background-color: black;
|
||||||
-panel-corner-border-width: 2px;
|
-panel-corner-border-width: 2px;
|
||||||
-panel-corner-border-color: transparent;
|
-panel-corner-border-color: transparent;
|
||||||
|
|
||||||
@ -767,9 +765,7 @@ StScrollBar {
|
|||||||
-natural-hpadding: 12px;
|
-natural-hpadding: 12px;
|
||||||
-minimum-hpadding: 6px;
|
-minimum-hpadding: 6px;
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
color: #eee;
|
color: #ccc;
|
||||||
text-shadow: 0px 1px 2px rgba(0, 0, 0, 0.9);
|
|
||||||
transition-duration: 100ms;
|
|
||||||
|
|
||||||
.app-menu-icon {
|
.app-menu-icon {
|
||||||
-st-icon-style: symbolic;
|
-st-icon-style: symbolic;
|
||||||
@ -778,21 +774,8 @@ StScrollBar {
|
|||||||
//dimensions of the icon are hardcoded
|
//dimensions of the icon are hardcoded
|
||||||
}
|
}
|
||||||
|
|
||||||
.system-status-icon,
|
|
||||||
.app-menu-icon > StIcon,
|
|
||||||
.popup-menu-arrow {
|
|
||||||
icon-shadow: 0px 1px 2px rgba(0, 0, 0, 0.9);
|
|
||||||
}
|
|
||||||
|
|
||||||
&:hover {
|
&:hover {
|
||||||
color: lighten($fg_color, 10%);
|
color: lighten($fg_color, 10%);
|
||||||
text-shadow: 0px 1px 6px rgba(0, 0, 0, 1);
|
|
||||||
|
|
||||||
.system-status-icon,
|
|
||||||
.app-menu-icon > StIcon,
|
|
||||||
.popup-menu-arrow {
|
|
||||||
icon-shadow: 0px 1px 6px rgba(0, 0, 0, 1);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
&:active, &:overview, &:focus, &:checked {
|
&:active, &:overview, &:focus, &:checked {
|
||||||
@ -801,8 +784,6 @@ StScrollBar {
|
|||||||
background-color: rgba(0, 0, 0, 0.01);
|
background-color: rgba(0, 0, 0, 0.01);
|
||||||
box-shadow: inset 0 -2px 0px lighten($selected_bg_color,5%);
|
box-shadow: inset 0 -2px 0px lighten($selected_bg_color,5%);
|
||||||
color: lighten($fg_color,10%);
|
color: lighten($fg_color,10%);
|
||||||
|
|
||||||
& > .system-status-icon { icon-shadow: black 0 2px 2px; }
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.system-status-icon { icon-size: 1.09em; padding: 0 5px; }
|
.system-status-icon { icon-size: 1.09em; padding: 0 5px; }
|
||||||
@ -827,31 +808,6 @@ StScrollBar {
|
|||||||
.screencast-indicator { color: $warning_color; }
|
.screencast-indicator { color: $warning_color; }
|
||||||
|
|
||||||
.remote-access-indicator { color: $warning_color; }
|
.remote-access-indicator { color: $warning_color; }
|
||||||
|
|
||||||
&.solid {
|
|
||||||
background-color: black;
|
|
||||||
/* transition from transparent to solid */
|
|
||||||
transition-duration: 300ms;
|
|
||||||
|
|
||||||
.panel-corner {
|
|
||||||
-panel-corner-background-color: black;
|
|
||||||
}
|
|
||||||
|
|
||||||
.panel-button {
|
|
||||||
color: #ccc;
|
|
||||||
text-shadow: none;
|
|
||||||
|
|
||||||
&:hover, &:active, &:overview, &:focus, &:checked {
|
|
||||||
color: lighten($fg_color, 10%);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.system-status-icon,
|
|
||||||
.app-menu-icon > StIcon,
|
|
||||||
.popup-menu-arrow {
|
|
||||||
icon-shadow: none;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// calendar popover
|
// calendar popover
|
||||||
|
@ -797,11 +797,9 @@ class Panel extends St.Widget {
|
|||||||
|
|
||||||
Main.overview.connect('showing', () => {
|
Main.overview.connect('showing', () => {
|
||||||
this.add_style_pseudo_class('overview');
|
this.add_style_pseudo_class('overview');
|
||||||
this._updateSolidStyle();
|
|
||||||
});
|
});
|
||||||
Main.overview.connect('hiding', () => {
|
Main.overview.connect('hiding', () => {
|
||||||
this.remove_style_pseudo_class('overview');
|
this.remove_style_pseudo_class('overview');
|
||||||
this._updateSolidStyle();
|
|
||||||
});
|
});
|
||||||
|
|
||||||
Main.layoutManager.panelBox.add(this);
|
Main.layoutManager.panelBox.add(this);
|
||||||
@ -810,31 +808,10 @@ class Panel extends St.Widget {
|
|||||||
|
|
||||||
Main.sessionMode.connect('updated', this._updatePanel.bind(this));
|
Main.sessionMode.connect('updated', this._updatePanel.bind(this));
|
||||||
|
|
||||||
this._trackedWindows = new Map();
|
|
||||||
global.window_group.connect('actor-added', this._onWindowActorAdded.bind(this));
|
|
||||||
global.window_group.connect('actor-removed', this._onWindowActorRemoved.bind(this));
|
|
||||||
global.window_manager.connect('switch-workspace', this._updateSolidStyle.bind(this));
|
|
||||||
|
|
||||||
global.display.connect('workareas-changed', () => { this.queue_relayout(); });
|
global.display.connect('workareas-changed', () => { this.queue_relayout(); });
|
||||||
this._updatePanel();
|
this._updatePanel();
|
||||||
}
|
}
|
||||||
|
|
||||||
_onWindowActorAdded(container, metaWindowActor) {
|
|
||||||
let signalIds = [];
|
|
||||||
['allocation-changed', 'notify::visible'].forEach(s => {
|
|
||||||
signalIds.push(metaWindowActor.connect(s, this._updateSolidStyle.bind(this)));
|
|
||||||
});
|
|
||||||
this._trackedWindows.set(metaWindowActor, signalIds);
|
|
||||||
}
|
|
||||||
|
|
||||||
_onWindowActorRemoved(container, metaWindowActor) {
|
|
||||||
this._trackedWindows.get(metaWindowActor).forEach(id => {
|
|
||||||
metaWindowActor.disconnect(id);
|
|
||||||
});
|
|
||||||
this._trackedWindows.delete(metaWindowActor);
|
|
||||||
this._updateSolidStyle();
|
|
||||||
}
|
|
||||||
|
|
||||||
vfunc_get_preferred_width(forHeight) {
|
vfunc_get_preferred_width(forHeight) {
|
||||||
let primaryMonitor = Main.layoutManager.primaryMonitor;
|
let primaryMonitor = Main.layoutManager.primaryMonitor;
|
||||||
|
|
||||||
@ -1042,8 +1019,6 @@ class Panel extends St.Widget {
|
|||||||
else
|
else
|
||||||
Main.messageTray.bannerAlignment = Clutter.ActorAlign.CENTER;
|
Main.messageTray.bannerAlignment = Clutter.ActorAlign.CENTER;
|
||||||
|
|
||||||
this._updateSolidStyle();
|
|
||||||
|
|
||||||
if (this._sessionStyle)
|
if (this._sessionStyle)
|
||||||
this._removeStyleClassName(this._sessionStyle);
|
this._removeStyleClassName(this._sessionStyle);
|
||||||
|
|
||||||
@ -1060,41 +1035,6 @@ class Panel extends St.Widget {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
_updateSolidStyle() {
|
|
||||||
if (this.has_style_pseudo_class('overview') || !Main.sessionMode.hasWindows) {
|
|
||||||
this._removeStyleClassName('solid');
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!Main.layoutManager.primaryMonitor)
|
|
||||||
return;
|
|
||||||
|
|
||||||
/* Get all the windows in the active workspace that are in the primary monitor and visible */
|
|
||||||
let workspaceManager = global.workspace_manager;
|
|
||||||
let activeWorkspace = workspaceManager.get_active_workspace();
|
|
||||||
let windows = activeWorkspace.list_windows().filter(metaWindow => {
|
|
||||||
return metaWindow.is_on_primary_monitor() &&
|
|
||||||
metaWindow.showing_on_its_workspace() &&
|
|
||||||
!metaWindow.is_hidden() &&
|
|
||||||
metaWindow.get_window_type() != Meta.WindowType.DESKTOP;
|
|
||||||
});
|
|
||||||
|
|
||||||
/* Check if at least one window is near enough to the panel */
|
|
||||||
let [, panelTop] = this.get_transformed_position();
|
|
||||||
let panelBottom = panelTop + this.get_height();
|
|
||||||
let scale = St.ThemeContext.get_for_stage(global.stage).scale_factor;
|
|
||||||
let isNearEnough = windows.some(metaWindow => {
|
|
||||||
let verticalPosition = metaWindow.get_frame_rect().y;
|
|
||||||
return verticalPosition < panelBottom + 5 * scale;
|
|
||||||
});
|
|
||||||
|
|
||||||
if (isNearEnough)
|
|
||||||
this._addStyleClassName('solid');
|
|
||||||
else
|
|
||||||
this._removeStyleClassName('solid');
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
_hideIndicators() {
|
_hideIndicators() {
|
||||||
for (let role in PANEL_ITEM_IMPLEMENTATIONS) {
|
for (let role in PANEL_ITEM_IMPLEMENTATIONS) {
|
||||||
let indicator = this.statusArea[role];
|
let indicator = this.statusArea[role];
|
||||||
|
Loading…
Reference in New Issue
Block a user