summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/misc_gui.cpp8
-rw-r--r--src/window.cpp2
2 files changed, 8 insertions, 2 deletions
diff --git a/src/misc_gui.cpp b/src/misc_gui.cpp
index 7806188fc..3c31ddc0e 100644
--- a/src/misc_gui.cpp
+++ b/src/misc_gui.cpp
@@ -890,8 +890,14 @@ struct TooltipsWindow : public Window
virtual void OnMouseLoop()
{
+ /* Always close tooltips when the cursor is not in our window. */
+ if (!_cursor.in_window) {
+ delete this;
+ return;
+ }
+
/* We can show tooltips while dragging tools. These are shown as long as
- * we are dragging the tool. Normal tooltips work with rmb */
+ * we are dragging the tool. Normal tooltips work with hover or rmb. */
switch (this->close_cond) {
case TCC_RIGHT_CLICK: if (!_right_button_down) delete this; break;
case TCC_LEFT_CLICK: if (!_left_button_down) delete this; break;
diff --git a/src/window.cpp b/src/window.cpp
index fd6ce0900..09accd16e 100644
--- a/src/window.cpp
+++ b/src/window.cpp
@@ -2275,7 +2275,7 @@ void HandleMouseEvents()
static Point hover_pos = {0, 0};
if (_settings_client.gui.hover_delay > 0) {
- if (click != MC_NONE || mousewheel != 0 || _left_button_down || _right_button_down ||
+ if (!_cursor.in_window || click != MC_NONE || mousewheel != 0 || _left_button_down || _right_button_down ||
hover_pos.x == 0 || abs(_cursor.pos.x - hover_pos.x) >= MAX_OFFSET_HOVER ||
hover_pos.y == 0 || abs(_cursor.pos.y - hover_pos.y) >= MAX_OFFSET_HOVER) {
hover_pos = _cursor.pos;