From 8c94a5afb97d43731009f07e2c0cfef319cdf42c Mon Sep 17 00:00:00 2001 From: Stefano Facchini Date: Wed, 22 Feb 2012 18:18:15 +0100 Subject: [PATCH] main: don't use a BindConstraint for uiGroup A BindConstraint on the size of uiGroup forces full redraws of the scene. Instead, implement and use get_preferred_width and get_preferred_height. https://bugzilla.gnome.org/show_bug.cgi?id=670636 --- js/ui/main.js | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/js/ui/main.js b/js/ui/main.js index ac9330c10..07a31744c 100644 --- a/js/ui/main.js +++ b/js/ui/main.js @@ -194,9 +194,16 @@ 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); + uiGroup.connect('get-preferred-width', + function(actor, forHeight, alloc) { + let width = global.stage.width; + [alloc.min_size, alloc.natural_size] = [width, width]; + }); + uiGroup.connect('get-preferred-height', + function(actor, forWidth, alloc) { + let height = global.stage.height; + [alloc.min_size, alloc.natural_size] = [height, height]; + }); global.window_group.reparent(uiGroup); global.overlay_group.reparent(uiGroup); global.stage.add_actor(uiGroup);