padOsd: Cache label coordinates/arrangements
This is actually static for a given PadDiagram, as it always represents a single device. Fixes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/2570 https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1290
This commit is contained in:
parent
27455c4458
commit
bd3f8de1e3
@ -444,14 +444,12 @@ var PadDiagram = GObject.registerClass({
|
|||||||
this._updateDiagramScale();
|
this._updateDiagramScale();
|
||||||
|
|
||||||
for (let i = 0; i < this._labels.length; i++) {
|
for (let i = 0; i < this._labels.length; i++) {
|
||||||
const { label, action, idx, dir } = this._labels[i];
|
const { label, x, y, arrangement } = this._labels[i];
|
||||||
let [found_, x, y, arrangement] = this._getLabelCoords(action, idx, dir);
|
|
||||||
this._allocateChild(label, x, y, arrangement);
|
this._allocateChild(label, x, y, arrangement);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this._editorActor && this._curEdited) {
|
if (this._editorActor && this._curEdited) {
|
||||||
const { action, idx, dir } = this._curEdited;
|
const { x, y, arrangement } = this._curEdited;
|
||||||
let [found_, x, y, arrangement] = this._getLabelCoords(action, idx, dir);
|
|
||||||
this._allocateChild(this._editorActor, x, y, arrangement);
|
this._allocateChild(this._editorActor, x, y, arrangement);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -576,12 +574,12 @@ var PadDiagram = GObject.registerClass({
|
|||||||
}
|
}
|
||||||
|
|
||||||
_addLabel(action, idx, dir) {
|
_addLabel(action, idx, dir) {
|
||||||
let [found] = this._getLabelCoords(action, idx, dir);
|
let [found, x, y, arrangement] = this._getLabelCoords(action, idx, dir);
|
||||||
if (!found)
|
if (!found)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
let label = new St.Label();
|
let label = new St.Label();
|
||||||
this._labels.push({ label, action, idx, dir });
|
this._labels.push({ label, action, idx, dir, x, y, arrangement });
|
||||||
this.add_actor(label);
|
this.add_actor(label);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user