layout: Allow adding already parented actors for chrome tracking

let trackChrome accept actors that are not children of chrome actors.
this will be useful for the MetaCloseDialog in gnome-shell, which
is already included in the MetaWindowGroup, but needs to be tracked
as chrome for the dialog to receive pointer events on X11.

https://bugzilla.gnome.org/show_bug.cgi?id=762083
This commit is contained in:
Carlos Garnacho 2017-07-14 22:23:53 +02:00 committed by Florian Müllner
parent 516d19eb39
commit 74bd009c86

View File

@ -769,8 +769,7 @@ const LayoutManager = new Lang.Class({
// @actor: a descendant of the chrome to begin tracking
// @params: parameters describing how to track @actor
//
// Tells the chrome to track @actor, which must be a descendant
// of an actor added via addChrome(). This can be used to extend the
// Tells the chrome to track @actor. This can be used to extend the
// struts or input region to cover specific children.
//
// @params can have any of the same values as in addChrome(),
@ -783,10 +782,9 @@ const LayoutManager = new Lang.Class({
ancestor = ancestor.get_parent();
index = this._findActor(ancestor);
}
if (!ancestor)
throw new Error('actor is not a descendent of a chrome actor');
let ancestorData = this._trackedActors[index];
let ancestorData = ancestor ? this._trackedActors[index]
: defaultParams;
if (!params)
params = {};
// We can't use Params.parse here because we want to drop