diff --git a/js/ui/panel.js b/js/ui/panel.js index d6b3b8b80d..587f178a29 100644 --- a/js/ui/panel.js +++ b/js/ui/panel.js @@ -1970,7 +1970,12 @@ PanelZoneDNDHandler.prototype = { let children = this._panelZone.get_children(); let curAppletPos = 0; - let insertAppletPos = 0; + let insertAppletPos = -1; + + const { + panel: { panelId: sourceAppletPanel }, + locationLabel: sourceAppletLocation, + } = source.actor._applet; for (let i = 0, len = children.length; i < len; i++) { if (children[i]._delegate instanceof Applet.Applet){ @@ -1982,7 +1987,12 @@ PanelZoneDNDHandler.prototype = { } } - source.actor._applet._newOrder = insertAppletPos; + const isSameLocation = ( + sourceAppletPanel === this._panelId + && sourceAppletLocation === this._zoneString + && insertAppletPos === -1 + ); + if (!isSameLocation) source.actor._applet._newOrder = insertAppletPos === -1 ? 0 : insertAppletPos; source.actor._applet._newPanelLocation = this._panelZone; source.actor._applet._zoneString = this._zoneString; source.actor._applet._newPanelId = this._panelId;