From 8faa97c060e2bec58c8e0dd41f9af40af3a15412 Mon Sep 17 00:00:00 2001 From: rubidium Date: Fri, 10 Dec 2010 22:32:53 +0000 Subject: (svn r21457) -Feature(tte) [FS#4215]: scroll to the inserted order (thror) --- src/order_gui.cpp | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/src/order_gui.cpp b/src/order_gui.cpp index 2a6dacaf8..6f1a61539 100644 --- a/src/order_gui.cpp +++ b/src/order_gui.cpp @@ -751,6 +751,9 @@ public: virtual void OnInvalidateData(int data) { + VehicleOrderID from = GB(data, 0, 8); + VehicleOrderID to = GB(data, 8, 8); + switch (data) { case 0: /* Autoreplace replaced the vehicle */ @@ -770,14 +773,11 @@ public: /* Some other order changes */ break; - default: { + default: /* Moving an order. If one of these is INVALID_VEH_ORDER_ID, then * the order is being created / removed */ if (this->selected_order == -1) break; - VehicleOrderID from = GB(data, 0, 8); - VehicleOrderID to = GB(data, 8, 8); - if (from == to) break; // no need to change anything if (from != this->selected_order) { @@ -800,11 +800,15 @@ public: /* Moving selected order */ this->selected_order = to; break; - } } this->vscroll->SetCount(this->vehicle->GetNumOrders() + 1); this->UpdateButtonState(); + + /* Scroll to the new order. */ + if (from == INVALID_VEH_ORDER_ID && to != INVALID_VEH_ORDER_ID && !this->vscroll->IsVisible(to)) { + this->vscroll->ScrollTowards(to); + } } void UpdateButtonState() -- cgit v1.2.3-54-g00ecf