diff --git a/src/order_gui.cpp b/src/order_gui.cpp index 6316073c7b..765efa1e75 100644 --- a/src/order_gui.cpp +++ b/src/order_gui.cpp @@ -619,6 +619,12 @@ public: this->FindWindowPlacementAndResize(desc); } + virtual void OnInvalidateData(int data = 0) + { + /* Autoreplace replaced the vehicle */ + this->vehicle = GetVehicle(this->window_number); + } + virtual void OnPaint() { bool shared_orders = this->vehicle->IsOrderListShared(); diff --git a/src/vehicle_gui.cpp b/src/vehicle_gui.cpp index 5170ce9f70..2f47f72616 100644 --- a/src/vehicle_gui.cpp +++ b/src/vehicle_gui.cpp @@ -642,7 +642,7 @@ static inline void ChangeVehicleWindow(WindowClass window_class, VehicleID from_ if (w != NULL) { w->window_number = to_index; if (w->viewport != NULL) w->viewport->follow_vehicle = to_index; - w->SetDirty(); + if (to_index != INVALID_VEHICLE) InvalidateThisWindowData(w); } }