padOsd: Only allocate child labels within allocate vfunc

Make both start/stop edition and label updates queue a relayout, and
only deal with child allocations in the allocate method.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1290
This commit is contained in:
Carlos Garnacho 2020-05-29 16:05:57 +02:00 committed by Florian Müllner
parent ece1329145
commit f58cb34065

View File

@ -592,15 +592,13 @@ var PadDiagram = GObject.registerClass({
let str = getText(action, idx, dir); let str = getText(action, idx, dir);
label.set_text(str); label.set_text(str);
} }
this.queue_relayout();
} }
_applyLabel(label, action, idx, dir, str) { _applyLabel(label, action, idx, dir, str) {
if (str != null) { if (str !== null)
label.set_text(str); label.set_text(str);
let [found_, x, y, arrangement] = this._getLabelCoords(action, idx, dir);
this._allocateChild(label, x, y, arrangement);
}
label.show(); label.show();
} }
@ -620,6 +618,8 @@ var PadDiagram = GObject.registerClass({
this._prevEdited = this._curEdited; this._prevEdited = this._curEdited;
this._curEdited = null; this._curEdited = null;
} }
this.queue_relayout();
} }
startEdition(action, idx, dir) { startEdition(action, idx, dir) {
@ -641,6 +641,7 @@ var PadDiagram = GObject.registerClass({
return; return;
this._editorActor.show(); this._editorActor.show();
editedLabel.hide(); editedLabel.hide();
this.queue_relayout();
} }
}); });