summaryrefslogtreecommitdiff
path: root/src/gui/windows/inventorywindow.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/gui/windows/inventorywindow.cpp')
-rw-r--r--src/gui/windows/inventorywindow.cpp17
1 files changed, 16 insertions, 1 deletions
diff --git a/src/gui/windows/inventorywindow.cpp b/src/gui/windows/inventorywindow.cpp
index c2a4b4636..01e5e052d 100644
--- a/src/gui/windows/inventorywindow.cpp
+++ b/src/gui/windows/inventorywindow.cpp
@@ -271,7 +271,8 @@ void InventoryWindow::postInit()
InventoryWindow::~InventoryWindow()
{
invInstances.remove(this);
- mInventory->removeInventoyListener(this);
+ if (mInventory)
+ mInventory->removeInventoyListener(this);
if (!invInstances.empty())
invInstances.front()->updateDropButton();
@@ -681,7 +682,10 @@ void InventoryWindow::close()
else
{
if (Net::getInventoryHandler())
+ {
Net::getInventoryHandler()->closeStorage(Inventory::STORAGE);
+ Net::getInventoryHandler()->forgotStorage();
+ }
scheduleDelete();
}
}
@@ -806,3 +810,14 @@ void InventoryWindow::setVisible(bool visible)
mSortDropDown->hideDrop();
Window::setVisible(visible);
}
+
+void InventoryWindow::unsetInventory()
+{
+ if (mInventory)
+ {
+ mInventory->removeInventoyListener(this);
+ if (mItems)
+ mItems->unsetInventory();
+ }
+ mInventory = nullptr;
+}