From d9eab6bbcd939f1238283ac9bbe003e06de4169c Mon Sep 17 00:00:00 2001 From: Erik Schilling Date: Sun, 18 Sep 2011 02:39:48 +0800 Subject: Fixed item popup still visible after closing inventory window. Reviewed-by: Bertram. Conflicts: src/gui/widgets/itemcontainer.cpp --- src/gui/inventorywindow.cpp | 6 ++++++ src/gui/inventorywindow.h | 5 +++++ src/gui/widgets/itemcontainer.cpp | 5 +++++ src/gui/widgets/itemcontainer.h | 2 ++ src/gui/widgets/window.h | 2 +- 5 files changed, 19 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/gui/inventorywindow.cpp b/src/gui/inventorywindow.cpp index 35165a16a..d6377e4dd 100644 --- a/src/gui/inventorywindow.cpp +++ b/src/gui/inventorywindow.cpp @@ -375,6 +375,12 @@ Item *InventoryWindow::getSelectedItem() const return mItems->getSelectedItem(); } +void InventoryWindow::widgetHidden(const gcn::Event &event) +{ + Window::widgetHidden(event); + mItems->hidePopup(); +} + void InventoryWindow::mouseClicked(gcn::MouseEvent &event) { Window::mouseClicked(event); diff --git a/src/gui/inventorywindow.h b/src/gui/inventorywindow.h index 5592b9449..959f65d7c 100644 --- a/src/gui/inventorywindow.h +++ b/src/gui/inventorywindow.h @@ -84,6 +84,11 @@ class InventoryWindow : public Window, */ Item* getSelectedItem() const; + /** + * Handles closing of the window + */ + virtual void widgetHidden(const gcn::Event &event); + /** * Handles the mouse clicks. */ diff --git a/src/gui/widgets/itemcontainer.cpp b/src/gui/widgets/itemcontainer.cpp index 2cc80ee8b..de8b3c277 100644 --- a/src/gui/widgets/itemcontainer.cpp +++ b/src/gui/widgets/itemcontainer.cpp @@ -327,6 +327,11 @@ void ItemContainer::distributeValueChangedEvent() } } +void ItemContainer::hidePopup() +{ + mItemPopup->setVisible(false); +} + void ItemContainer::keyPressed(gcn::KeyEvent &event A_UNUSED) { /*switch (event.getKey().getValue()) diff --git a/src/gui/widgets/itemcontainer.h b/src/gui/widgets/itemcontainer.h index 845bfb3a9..e4188f54b 100644 --- a/src/gui/widgets/itemcontainer.h +++ b/src/gui/widgets/itemcontainer.h @@ -73,6 +73,8 @@ class ItemContainer : public gcn::Widget, */ virtual ~ItemContainer(); + void hidePopup(); + /** * Necessary for checking how full the inventory is. */ diff --git a/src/gui/widgets/window.h b/src/gui/widgets/window.h index cc7c6e6a1..ffc27ab10 100644 --- a/src/gui/widgets/window.h +++ b/src/gui/widgets/window.h @@ -120,7 +120,7 @@ class Window : public gcn::Window, gcn::WidgetListener /** * Called whenever the widget is hidden. */ - virtual void widgetHidden(const gcn::Event& event); + virtual void widgetHidden(const gcn::Event &event); /** * Sets whether or not the window has a close button. -- cgit v1.2.3-60-g2f50