diff --git a/modules/corelib/ui/uiminiwindowcontainer.lua b/modules/corelib/ui/uiminiwindowcontainer.lua index cc0144e9e..9e395d646 100644 --- a/modules/corelib/ui/uiminiwindowcontainer.lua +++ b/modules/corelib/ui/uiminiwindowcontainer.lua @@ -176,21 +176,27 @@ function UIMiniWindowContainer:scheduleInsert(widget, index) oldParent:removeChild(widget) end self:insertChild(index, widget) + end - while true do - local placed = false - for nIndex, nWidget in pairs(self.scheduledWidgets) do - if nIndex - 1 <= self:getChildCount() then + while true do + local placed = false + for nIndex, nWidget in pairs(self.scheduledWidgets) do + if nIndex - 1 <= self:getChildCount() then + local nOldParent = nWidget:getParent() + if nOldParent ~= self then + if nOldParent then + nOldParent:removeChild(nWidget) + end self:insertChild(nIndex, nWidget) - self.scheduledWidgets[nIndex] = nil - placed = true - break end - end - if not placed then + self.scheduledWidgets[nIndex] = nil + placed = true break end end + if not placed then + break + end end end end