overviewControls: Simplify dash placement
Now that the dash is always visible, it doesn't make sense to keep it in a separate layer from the main overview group and use a separate spacer actor as a placeholder. Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1575>
This commit is contained in:
parent
827c137391
commit
b3c13d6128
@ -343,33 +343,14 @@ var DashFader = GObject.registerClass(
|
|||||||
class DashFader extends FaderControl {
|
class DashFader extends FaderControl {
|
||||||
_init(dash) {
|
_init(dash) {
|
||||||
super._init({
|
super._init({
|
||||||
y_expand: true,
|
|
||||||
x_expand: true,
|
x_expand: true,
|
||||||
y_align: Clutter.ActorAlign.END,
|
x_align: Clutter.ActorAlign.CENTER,
|
||||||
});
|
});
|
||||||
|
|
||||||
this._dash = dash;
|
this._dash = dash;
|
||||||
this.add_child(this._dash);
|
this.add_child(this._dash);
|
||||||
}
|
}
|
||||||
|
|
||||||
vfunc_allocate(box) {
|
|
||||||
this.set_allocation(box);
|
|
||||||
|
|
||||||
box = this.get_theme_node().get_content_box(box);
|
|
||||||
|
|
||||||
const availWidth = Math.round(box.get_width());
|
|
||||||
const availHeight = Math.round(box.get_height());
|
|
||||||
const [, natHeight] = this._dash.get_preferred_height(availWidth);
|
|
||||||
|
|
||||||
const actorBox = new Clutter.ActorBox();
|
|
||||||
actorBox.x1 = box.x1;
|
|
||||||
actorBox.x2 = actorBox.x1 + availWidth;
|
|
||||||
actorBox.y1 = box.y1;
|
|
||||||
actorBox.y2 = actorBox.y1 + (this._dash.y_expand ? availHeight : natHeight);
|
|
||||||
|
|
||||||
this._dash.allocate(box);
|
|
||||||
}
|
|
||||||
|
|
||||||
_onWindowDragBegin() {
|
_onWindowDragBegin() {
|
||||||
this.fadeHalf();
|
this.fadeHalf();
|
||||||
}
|
}
|
||||||
@ -379,31 +360,6 @@ class DashFader extends FaderControl {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
var DashSpacer = GObject.registerClass(
|
|
||||||
class DashSpacer extends Clutter.Actor {
|
|
||||||
_init(source) {
|
|
||||||
super._init();
|
|
||||||
|
|
||||||
this._bindConstraint = new Clutter.BindConstraint({
|
|
||||||
source,
|
|
||||||
coordinate: Clutter.BindCoordinate.SIZE,
|
|
||||||
});
|
|
||||||
this.add_constraint(this._bindConstraint);
|
|
||||||
}
|
|
||||||
|
|
||||||
vfunc_get_preferred_width(forHeight) {
|
|
||||||
if (this._bindConstraint)
|
|
||||||
return this._bindConstraint.source.get_preferred_width(forHeight);
|
|
||||||
return super.vfunc_get_preferred_width(forHeight);
|
|
||||||
}
|
|
||||||
|
|
||||||
vfunc_get_preferred_height(forWidth) {
|
|
||||||
if (this._bindConstraint)
|
|
||||||
return this._bindConstraint.source.get_preferred_height(forWidth);
|
|
||||||
return super.vfunc_get_preferred_height(forWidth);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
var ControlsManager = GObject.registerClass(
|
var ControlsManager = GObject.registerClass(
|
||||||
class ControlsManager extends St.Widget {
|
class ControlsManager extends St.Widget {
|
||||||
_init(searchEntry) {
|
_init(searchEntry) {
|
||||||
@ -416,7 +372,6 @@ class ControlsManager extends St.Widget {
|
|||||||
|
|
||||||
this.dash = new Dash.Dash();
|
this.dash = new Dash.Dash();
|
||||||
this._dashFader = new DashFader(this.dash);
|
this._dashFader = new DashFader(this.dash);
|
||||||
this._dashSpacer = new DashSpacer(this._dashFader);
|
|
||||||
|
|
||||||
let workspaceManager = global.workspace_manager;
|
let workspaceManager = global.workspace_manager;
|
||||||
let activeWorkspaceIndex = workspaceManager.get_active_workspace_index();
|
let activeWorkspaceIndex = workspaceManager.get_active_workspace_index();
|
||||||
@ -452,8 +407,6 @@ class ControlsManager extends St.Widget {
|
|||||||
});
|
});
|
||||||
this.add_actor(this._group);
|
this.add_actor(this._group);
|
||||||
|
|
||||||
this.add_actor(this._dashFader);
|
|
||||||
|
|
||||||
const box = new St.BoxLayout({
|
const box = new St.BoxLayout({
|
||||||
x_expand: true,
|
x_expand: true,
|
||||||
y_expand: true,
|
y_expand: true,
|
||||||
@ -462,7 +415,7 @@ class ControlsManager extends St.Widget {
|
|||||||
box.add_child(this._thumbnailsSlider);
|
box.add_child(this._thumbnailsSlider);
|
||||||
|
|
||||||
this._group.add_child(box);
|
this._group.add_child(box);
|
||||||
this._group.add_actor(this._dashSpacer);
|
this._group.add_actor(this._dashFader);
|
||||||
|
|
||||||
this.connect('destroy', this._onDestroy.bind(this));
|
this.connect('destroy', this._onDestroy.bind(this));
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user