[gnome-shell/wip/fmuellner/fix-zoom] layout: Use custom actor for uiGroup
- From: Florian Müllner <fmuellner src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-shell/wip/fmuellner/fix-zoom] layout: Use custom actor for uiGroup
- Date: Tue, 5 Mar 2019 11:25:56 +0000 (UTC)
commit 99019708a68d4db7e890467c8ae7ea29e41d9dca
Author: Florian Müllner <fmuellner gnome org>
Date: Tue Mar 5 11:34:27 2019 +0100
layout: Use custom actor for uiGroup
The bind constraint that replaced the Shell.GenericContainer in commit
f4682748faf4 is subtly different from the previous code:
It forces the actor to have the same size as the stage, rather than just
requesting that size.
This breaks the magnifier which relies on the UI being able to be bigger
than the display size. Fix by going back to using a custom actor.
https://gitlab.gnome.org/GNOME/gnome-shell/issues/646
js/ui/layout.js | 19 ++++++++++++++-----
1 file changed, 14 insertions(+), 5 deletions(-)
---
diff --git a/js/ui/layout.js b/js/ui/layout.js
index b6cf05c13..e3c93a923 100644
--- a/js/ui/layout.js
+++ b/js/ui/layout.js
@@ -160,6 +160,19 @@ var Monitor = class Monitor {
}
};
+const UiActor = GObject.registerClass(
+class UiActor extends St.Widget {
+ vfunc_get_preferred_width (forHeight) {
+ let width = global.stage.width;
+ return [width, width];
+ }
+
+ vfunc_get_preferred_height (forWidth) {
+ let height = global.stage.height;
+ return [height, height];
+ }
+});
+
const defaultParams = {
trackFullscreen: false,
affectsStruts: false,
@@ -200,12 +213,8 @@ var LayoutManager = GObject.registerClass({
global.stage.no_clear_hint = true;
// Set up stage hierarchy to group all UI actors under one container.
- this.uiGroup = new St.Widget({ name: 'uiGroup' });
+ this.uiGroup = new UiActor({ name: 'uiGroup' });
this.uiGroup.set_flags(Clutter.ActorFlags.NO_LAYOUT);
- this.uiGroup.add_constraint(new Clutter.BindConstraint({
- source: global.stage,
- coordinate: Clutter.BindCoordinate.ALL,
- }));
global.stage.remove_actor(global.window_group);
this.uiGroup.add_actor(global.window_group);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]