summaryrefslogtreecommitdiffstats
path: root/source/UI
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--source/UI/Window.cpp7
-rw-r--r--source/UI/Window.h2
2 files changed, 4 insertions, 5 deletions
diff --git a/source/UI/Window.cpp b/source/UI/Window.cpp
index d22255105..12c3e7350 100644
--- a/source/UI/Window.cpp
+++ b/source/UI/Window.cpp
@@ -165,8 +165,6 @@ void cWindow::OpenedByPlayer(cPlayer & a_Player)
void cWindow::ClosedByPlayer(cPlayer & a_Player)
{
- ASSERT(m_WindowType != Inventory); // Inventory windows must not be closed (the client would repeat the close packet, looping forever)
-
// Checks whether the player is still holding an item
if (a_Player.IsDraggingItem())
{
@@ -177,7 +175,7 @@ void cWindow::ClosedByPlayer(cPlayer & a_Player)
cClientHandle * ClientHandle = a_Player.GetClientHandle();
if (ClientHandle != NULL)
{
- ClientHandle->SendWindowClose(m_WindowID);
+ ClientHandle->SendWindowClose(*this);
}
{
@@ -189,7 +187,8 @@ void cWindow::ClosedByPlayer(cPlayer & a_Player)
} // for itr - m_SlotAreas[]
m_OpenedBy.remove(&a_Player);
- if (m_OpenedBy.empty())
+
+ if ((m_WindowType != Inventory) && m_OpenedBy.empty())
{
Destroy();
}
diff --git a/source/UI/Window.h b/source/UI/Window.h
index 1c5fe4084..c119d79ab 100644
--- a/source/UI/Window.h
+++ b/source/UI/Window.h
@@ -62,7 +62,7 @@ public:
char GetWindowID(void) const { return m_WindowID; }
int GetWindowType(void) const { return m_WindowType; }
- cWindowOwner * GetOwner() { return m_Owner; }
+ cWindowOwner * GetOwner(void) { return m_Owner; }
void SetOwner( cWindowOwner * a_Owner ) { m_Owner = a_Owner; }
int GetNumSlots(void) const;