Restore statusarea items at original index

fixes #2079
This commit is contained in:
Charles Gagnon
2024-04-11 21:22:29 -04:00
parent 866fe80705
commit 066ff3cf79

View File

@@ -134,8 +134,11 @@ export const Panel = GObject.registerClass({
['activities', systemMenuInfo.name, 'dateMenu'].forEach(b => {
let container = this.statusArea[b].container;
let parent = container.get_parent();
let siblings = parent.get_children();
let index = siblings.indexOf(container);
container._dtpOriginalParent = parent;
container._dtpOriginalIndex = index && index == siblings.length - 1 ? -1: index;
parent ? parent.remove_child(container) : null;
this.panel.add_child(container);
});
@@ -360,13 +363,19 @@ export const Panel = GObject.registerClass({
['vertical', 'horizontal', 'dashtopanelMainPanel'].forEach(c => this.panel.remove_style_class_name(c));
if (!Main.sessionMode.isLocked) {
[['activities', 0], [systemMenuName, -1], ['dateMenu', 0]].forEach(b => {
let container = this.statusArea[b[0]].container;
['activities', systemMenuName, 'dateMenu'].forEach(b => {
let container = this.statusArea[b].container;
let originalParent = container._dtpOriginalParent;
this.panel.remove_child(container);
originalParent ? originalParent.insert_child_at_index(container, b[1]) : null;
originalParent && originalParent.insert_child_at_index(
container,
Math.min(container._dtpOriginalIndex, originalParent.get_children().length - 1)
);
delete container._dtpOriginalParent;
delete container._dtpOriginalIndex;
});
}