Fix overview sizing with multimonitor
Previously, the overview BoxLayout was sized and positioned explicitly using the primary monitor coordinates, as its parent was at 0,0 and with a fixed layout manager. Now we use a bin layout, so we need to position and size the stack actor, and set the overview boxlayout to expand. Take also the occasion to use a MonitorConstraint instead of handling position and size manually. https://bugzilla.gnome.org/show_bug.cgi?id=694969
This commit is contained in:
parent
f146b01e3e
commit
030e6aa507
@ -13,6 +13,7 @@ const Gdk = imports.gi.Gdk;
|
|||||||
const Background = imports.ui.background;
|
const Background = imports.ui.background;
|
||||||
const Dash = imports.ui.dash;
|
const Dash = imports.ui.dash;
|
||||||
const DND = imports.ui.dnd;
|
const DND = imports.ui.dnd;
|
||||||
|
const LayoutManager = imports.ui.layout;
|
||||||
const Main = imports.ui.main;
|
const Main = imports.ui.main;
|
||||||
const MessageTray = imports.ui.messageTray;
|
const MessageTray = imports.ui.messageTray;
|
||||||
const OverviewControls = imports.ui.overviewControls;
|
const OverviewControls = imports.ui.overviewControls;
|
||||||
@ -120,13 +121,16 @@ const Overview = new Lang.Class({
|
|||||||
|
|
||||||
let layout = new Clutter.BinLayout();
|
let layout = new Clutter.BinLayout();
|
||||||
this._stack = new Clutter.Actor({ layout_manager: layout });
|
this._stack = new Clutter.Actor({ layout_manager: layout });
|
||||||
|
this._stack.add_constraint(new LayoutManager.MonitorConstraint({ primary: true }));
|
||||||
|
|
||||||
/* Translators: This is the main view to select
|
/* Translators: This is the main view to select
|
||||||
activities. See also note for "Activities" string. */
|
activities. See also note for "Activities" string. */
|
||||||
this._overview = new St.BoxLayout({ name: 'overview',
|
this._overview = new St.BoxLayout({ name: 'overview',
|
||||||
accessible_name: _("Overview"),
|
accessible_name: _("Overview"),
|
||||||
reactive: true,
|
reactive: true,
|
||||||
vertical: true });
|
vertical: true,
|
||||||
|
x_expand: true,
|
||||||
|
y_expand: true });
|
||||||
this._overview._delegate = this;
|
this._overview._delegate = this;
|
||||||
|
|
||||||
this._groupStack = new St.Widget({ layout_manager: new Clutter.BinLayout(),
|
this._groupStack = new St.Widget({ layout_manager: new Clutter.BinLayout(),
|
||||||
@ -442,12 +446,8 @@ const Overview = new Lang.Class({
|
|||||||
// when it is next shown.
|
// when it is next shown.
|
||||||
this.hide();
|
this.hide();
|
||||||
|
|
||||||
let primary = Main.layoutManager.primaryMonitor;
|
|
||||||
let workArea = Main.layoutManager.getWorkAreaForMonitor(Main.layoutManager.primaryIndex);
|
let workArea = Main.layoutManager.getWorkAreaForMonitor(Main.layoutManager.primaryIndex);
|
||||||
|
|
||||||
this._overview.set_position(primary.x, primary.y);
|
|
||||||
this._overview.set_size(primary.width, primary.height);
|
|
||||||
|
|
||||||
this._coverPane.set_position(0, workArea.y);
|
this._coverPane.set_position(0, workArea.y);
|
||||||
this._coverPane.set_size(workArea.width, workArea.height);
|
this._coverPane.set_size(workArea.width, workArea.height);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user