summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/gui/buy.cpp2
-rw-r--r--src/gui/sell.cpp3
-rw-r--r--src/gui/widgets/window.cpp8
-rw-r--r--src/gui/widgets/window.h5
4 files changed, 15 insertions, 3 deletions
diff --git a/src/gui/buy.cpp b/src/gui/buy.cpp
index a2398472..b4f8ca5e 100644
--- a/src/gui/buy.cpp
+++ b/src/gui/buy.cpp
@@ -268,7 +268,7 @@ void BuyDialog::logic()
{
Window::logic();
- if (!current_npc) setVisible(false);
+ if (!current_npc && isVisible()) setVisible(false);
}
void BuyDialog::setVisible(bool visible)
diff --git a/src/gui/sell.cpp b/src/gui/sell.cpp
index 4082b881..1194222b 100644
--- a/src/gui/sell.cpp
+++ b/src/gui/sell.cpp
@@ -286,8 +286,7 @@ void SellDialog::logic()
{
Window::logic();
- if (!current_npc)
- setVisible(false);
+ if (!current_npc && isVisible()) setVisible(false);
}
void SellDialog::setVisible(bool visible)
diff --git a/src/gui/widgets/window.cpp b/src/gui/widgets/window.cpp
index 0ffae6ea..e36aea97 100644
--- a/src/gui/widgets/window.cpp
+++ b/src/gui/widgets/window.cpp
@@ -279,6 +279,14 @@ void Window::widgetResized(const gcn::Event &event)
}
}
+void Window::widgetHidden(const gcn::Event &event)
+{
+ if (gui)
+ {
+ gui->setCursorType(Gui::CURSOR_POINTER);
+ }
+}
+
void Window::setCloseButton(bool flag)
{
mCloseButton = flag;
diff --git a/src/gui/widgets/window.h b/src/gui/widgets/window.h
index b3ef3fdc..199c295c 100644
--- a/src/gui/widgets/window.h
+++ b/src/gui/widgets/window.h
@@ -103,6 +103,11 @@ class Window : public gcn::Window, gcn::WidgetListener
void widgetResized(const gcn::Event &event);
/**
+ * Called whenever the widget is hidden.
+ */
+ void widgetHidden(const gcn::Event &event);
+
+ /**
* Sets whether or not the window has a close button.
*/
void setCloseButton(bool flag);