diff options
-rw-r--r-- | src/order_gui.cpp | 6 | ||||
-rw-r--r-- | src/vehicle_gui.cpp | 2 |
2 files changed, 7 insertions, 1 deletions
diff --git a/src/order_gui.cpp b/src/order_gui.cpp index 6316073c7..765efa1e7 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 5170ce9f7..2f47f7261 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); } } |