summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/order_gui.cpp6
-rw-r--r--src/vehicle_gui.cpp2
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);
}
}