diff --git a/js/ui/lightbox.js b/js/ui/lightbox.js index f8c84627f..aa1516094 100644 --- a/js/ui/lightbox.js +++ b/js/ui/lightbox.js @@ -1,5 +1,6 @@ // -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*- +const Clutter = imports.gi.Clutter; const Lang = imports.lang; const Meta = imports.gi.Meta; const St = imports.gi.St; @@ -57,11 +58,10 @@ const Lightbox = new Lang.Class({ if (params.width && params.height) { this.actor.width = params.width; this.actor.height = params.height; - this._allocationChangedSignalId = 0; } else { - this.actor.width = container.width; - this.actor.height = container.height; - this._allocationChangedSignalId = container.connect('allocation-changed', Lang.bind(this, this._allocationChanged)); + let constraint = new Clutter.BindConstraint({ source: container, + coordinate: Clutter.BindCoordinate.ALL }); + this.actor.add_constraint(constraint); } this._actorAddedSignalId = container.connect('actor-added', Lang.bind(this, this._actorAdded)); @@ -70,16 +70,6 @@ const Lightbox = new Lang.Class({ this._highlighted = null; }, - _allocationChanged : function(container, box, flags) { - Meta.later_add(Meta.LaterType.BEFORE_REDRAW, Lang.bind(this, function() { - this.actor.width = this.width; - this.actor.height = this.height; - return false; - })); - this.width = this._container.width; - this.height = this._container.height; - }, - _actorAdded : function(container, newChild) { let children = this._container.get_children(); let myIndex = children.indexOf(this.actor); @@ -187,8 +177,6 @@ const Lightbox = new Lang.Class({ * by destroying its container or by explicitly calling this.destroy(). */ _onDestroy: function() { - if (this._allocationChangedSignalId != 0) - this._container.disconnect(this._allocationChangedSignalId); this._container.disconnect(this._actorAddedSignalId); this._container.disconnect(this._actorRemovedSignalId); diff --git a/js/ui/main.js b/js/ui/main.js index 6b7218b71..6d8f4acf0 100644 --- a/js/ui/main.js +++ b/js/ui/main.js @@ -187,6 +187,9 @@ function start() { for (let i = 0; i < children.length; i++) children[i].allocate_preferred_size(flags); }); + let constraint = new Clutter.BindConstraint({ source: global.stage, + coordinate: Clutter.BindCoordinate.SIZE }); + uiGroup.add_constraint(constraint); St.set_ui_root(global.stage, uiGroup); global.window_group.reparent(uiGroup); global.overlay_group.reparent(uiGroup);