From f10840438e971fccde14982dfbdb5827a94383bb Mon Sep 17 00:00:00 2001 From: keldorkatarn Date: Wed, 11 Apr 2018 21:24:16 +0200 Subject: [PATCH] TraceRestrictSlots: Fix highlighting behavior. Marking group ALL_SLOTS didn't reset the selected slot and dragging from ALL to ALL threw an unnecessary error. (cherry picked from commit c76b560134bd8d9869ead872f7a434e61a5c5a48) Fixes: #38 --- src/tracerestrict_gui.cpp | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/tracerestrict_gui.cpp b/src/tracerestrict_gui.cpp index daf25eb9d6..5dc1aecbc6 100644 --- a/src/tracerestrict_gui.cpp +++ b/src/tracerestrict_gui.cpp @@ -2915,6 +2915,7 @@ public: case WID_TRSL_ALL_VEHICLES: // All vehicles button if (this->vli.index != ALL_TRAINS_TRACE_RESTRICT_SLOT_ID) { this->vli.index = ALL_TRAINS_TRACE_RESTRICT_SLOT_ID; + this->slot_sel = INVALID_TRACE_RESTRICT_SLOT_ID; this->vehicles.ForceRebuild(); this->SetDirty(); } @@ -2973,12 +2974,14 @@ public: { switch (widget) { case WID_TRSL_ALL_VEHICLES: // All vehicles - DoCommandP(0, this->slot_sel, this->vehicle_sel, CMD_REMOVE_VEHICLE_TRACERESTRICT_SLOT | CMD_MSG(STR_TRACE_RESTRICT_ERROR_SLOT_CAN_T_REMOVE_VEHICLE)); + if (this->slot_sel != INVALID_TRACE_RESTRICT_SLOT_ID) { + DoCommandP(0, this->slot_sel, this->vehicle_sel, CMD_REMOVE_VEHICLE_TRACERESTRICT_SLOT | CMD_MSG(STR_TRACE_RESTRICT_ERROR_SLOT_CAN_T_REMOVE_VEHICLE)); - this->vehicle_sel = INVALID_VEHICLE; - this->slot_over = INVALID_GROUP; + this->vehicle_sel = INVALID_VEHICLE; + this->slot_over = INVALID_GROUP; - this->SetDirty(); + this->SetDirty(); + } break; case WID_TRSL_LIST_SLOTS: { // Matrix slot