From acf224683d1f3d40f74b16b75a904f5719d240c3 Mon Sep 17 00:00:00 2001 From: frosch Date: Wed, 6 Aug 2008 19:00:31 +0000 Subject: [PATCH] (svn r14007) -Fix [FS#2098]: Notify vehicle windows when their internal state is botched up from outside. --- src/order_gui.cpp | 6 ++++++ src/vehicle_gui.cpp | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) 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); } }