From 7d2db99bfdf915b81bbd02ecbdcbf20a6d0973c9 Mon Sep 17 00:00:00 2001 From: Abdurrahmaan Iqbal Date: Tue, 23 Jun 2020 20:50:41 +0100 Subject: [PATCH] Fix #7772: Show destination on mouseover when vehicle stopped (and not in depot) --- src/vehicle_gui.cpp | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/vehicle_gui.cpp b/src/vehicle_gui.cpp index 79ffffcf09..84ff890d15 100644 --- a/src/vehicle_gui.cpp +++ b/src/vehicle_gui.cpp @@ -2430,6 +2430,7 @@ private: SEL_DC_BASEPLANE = SEL_DC_GOTO_DEPOT, ///< First plane of the #WID_VV_SELECT_DEPOT_CLONE stacked widget. SEL_RT_BASEPLANE = SEL_RT_REFIT, ///< First plane of the #WID_VV_SELECT_REFIT_TURN stacked widget. }; + bool mouse_over_start_stop = false; /** * Display a plane in the window. @@ -2575,7 +2576,7 @@ public: str = STR_VEHICLE_STATUS_CRASHED; } else if (v->type != VEH_AIRCRAFT && v->breakdown_ctr == 1) { // check for aircraft necessary? str = STR_VEHICLE_STATUS_BROKEN_DOWN; - } else if (v->vehstatus & VS_STOPPED) { + } else if (v->vehstatus & VS_STOPPED && (!mouse_over_start_stop || v->IsStoppedInDepot())) { if (v->type == VEH_TRAIN) { if (v->cur_speed == 0) { if (Train::From(v)->gcache.cached_power == 0) { @@ -2731,6 +2732,15 @@ public: } } + void OnMouseOver(Point pt, int widget) override + { + bool start_stop = widget == WID_VV_START_STOP; + if (start_stop != mouse_over_start_stop) { + mouse_over_start_stop = start_stop; + this->SetWidgetDirty(WID_VV_START_STOP); + } + } + void OnResize() override { if (this->viewport != nullptr) {