From 96d3b0695cb1e09584efbadad1588767aeefaa32 Mon Sep 17 00:00:00 2001 From: Juanjo Date: Mon, 24 Jun 2013 20:32:29 +0200 Subject: [PATCH] Amend gui's to work with touchscreen controls. --- src/airport_gui.cpp | 3 +++ src/industry_gui.cpp | 4 ++++ src/terraform_gui.cpp | 2 ++ src/town_gui.cpp | 4 ++++ src/tree_gui.cpp | 8 ++++++++ 5 files changed, 21 insertions(+) diff --git a/src/airport_gui.cpp b/src/airport_gui.cpp index 2b17fbe411..ddef5249cb 100644 --- a/src/airport_gui.cpp +++ b/src/airport_gui.cpp @@ -77,6 +77,7 @@ struct BuildAirToolbarWindow : Window { ~BuildAirToolbarWindow() { + if (_thd.GetCallbackWnd() == this) this->OnPlaceObjectAbort(); if (_settings_client.gui.link_terraform_toolbar) DeleteWindowById(WC_SCEN_LAND_GEN, 0, false); } @@ -141,6 +142,8 @@ struct BuildAirToolbarWindow : Window { DeleteWindowById(WC_BUILD_STATION, TRANSPORT_AIR); DeleteWindowById(WC_SELECT_STATION, 0); + + ResetObjectToPlace(); } static HotkeyList hotkeys; diff --git a/src/industry_gui.cpp b/src/industry_gui.cpp index 60519fd388..2a0ff6cd30 100644 --- a/src/industry_gui.cpp +++ b/src/industry_gui.cpp @@ -279,6 +279,10 @@ public: this->SetButtons(); } + ~BuildIndustryWindow() { + if (_thd.GetCallbackWnd() == this) this->OnPlaceObjectAbort(); + } + virtual void OnInit() { this->SetupArrays(); diff --git a/src/terraform_gui.cpp b/src/terraform_gui.cpp index e87d16bb58..c711026c56 100644 --- a/src/terraform_gui.cpp +++ b/src/terraform_gui.cpp @@ -158,6 +158,7 @@ struct TerraformToolbarWindow : Window { ~TerraformToolbarWindow() { + if (_thd.GetCallbackWnd() == this) this->OnPlaceObjectAbort(); } virtual void OnInit() @@ -287,6 +288,7 @@ struct TerraformToolbarWindow : Window { { DeleteWindowById(WC_BUILD_OBJECT, 0); this->RaiseButtons(); + ResetObjectToPlace(); } static HotkeyList hotkeys; diff --git a/src/town_gui.cpp b/src/town_gui.cpp index 85bc255fee..8d6c081af6 100644 --- a/src/town_gui.cpp +++ b/src/town_gui.cpp @@ -1061,6 +1061,10 @@ public: this->UpdateButtons(true); } + ~FoundTownWindow() { + if (_thd.GetCallbackWnd() == this) this->OnPlaceObjectAbort(); + } + void RandomTownName() { this->townnamevalid = GenerateTownName(&this->townnameparts); diff --git a/src/tree_gui.cpp b/src/tree_gui.cpp index d1429d1443..51ed85e7b7 100644 --- a/src/tree_gui.cpp +++ b/src/tree_gui.cpp @@ -18,6 +18,7 @@ #include "command_func.h" #include "sound_func.h" #include "tree_map.h" +#include "window_func.h" #include "widgets/tree_widget.h" @@ -58,6 +59,11 @@ public: ResetObjectToPlace(); } + ~BuildTreesWindow() + { + if (_thd.GetCallbackWnd() == this) this->OnPlaceObjectAbort(); + } + /** * Calculate the maximum size of all tree sprites * @return Dimension of the largest tree sprite @@ -171,6 +177,8 @@ public: virtual void OnPlaceObjectAbort() { this->RaiseButtons(); + + ResetObjectToPlace(); } };