layout: add chrome actors directly to uiGroup
Rather than having a single chrome layer and putting all of the chrome into that, put the chrome actors directly into uiGroup, so that they can be stacked independently of one another relative to other actors. (This requires making uiGroup a ShellGenericContainer, so we can use skip_paint to avoid painting non-visibleInFullscreen chrome when we're in fullscreen.) https://bugzilla.gnome.org/show_bug.cgi?id=657986
This commit is contained in:
@@ -193,7 +193,13 @@ function start() {
|
||||
loadTheme();
|
||||
|
||||
// Set up stage hierarchy to group all UI actors under one container.
|
||||
uiGroup = new Clutter.Group();
|
||||
uiGroup = new Shell.GenericContainer({ name: 'uiGroup' });
|
||||
uiGroup.connect('allocate',
|
||||
function (actor, box, flags) {
|
||||
let children = uiGroup.get_children();
|
||||
for (let i = 0; i < children.length; i++)
|
||||
children[i].allocate_preferred_size(flags);
|
||||
});
|
||||
St.set_ui_root(global.stage, uiGroup);
|
||||
global.window_group.reparent(uiGroup);
|
||||
global.overlay_group.reparent(uiGroup);
|
||||
|
Reference in New Issue
Block a user