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:
parent
ece1329145
commit
f58cb34065
@ -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();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user