summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/game.cpp24
1 files changed, 21 insertions, 3 deletions
diff --git a/src/game.cpp b/src/game.cpp
index b53df444..45ef2ccc 100644
--- a/src/game.cpp
+++ b/src/game.cpp
@@ -458,9 +458,27 @@ void do_input()
}
}
- // Just cancel the popup menu if shown
- //popupMenu->setVisible(false);
- }
+ // Just cancel the popup menu if shown, and don't make the character walk
+ if (popupMenu->isVisible() == true)
+ {
+ // We get the x, y coord of the click
+ int clickX = (mx - camera_x) * 32 + 25;
+ int clickY = (my - camera_y) * 32 + 25;
+
+ // If we click elsewhere than in the window, do not use the event
+ // The user wanted to close the popup.
+ // Still buggy : Wonder if the x, y, width, and height aren't reported partially
+ // with these functions.
+ if ( clickX > (popupMenu->getX() + popupMenu->getWidth()) || clickX < popupMenu->getX()
+ || clickY > (popupMenu->getY() + popupMenu->getHeight()) || clickY < popupMenu->getY() )
+ {
+ used = true;
+ popupMenu->setVisible(false);
+ std::cout << "out" << std::endl;
+ }
+ }
+
+ } // End Mouse left button
// Mouse button middle
else if (event.button.button == SDL_BUTTON_MIDDLE)