diff --git a/src/airport_gui.cpp b/src/airport_gui.cpp index ddef5249cb..3da2f36ea3 100644 --- a/src/airport_gui.cpp +++ b/src/airport_gui.cpp @@ -28,6 +28,7 @@ #include "hotkeys.h" #include "vehicle_func.h" #include "gui.h" +#include "command_func.h" #include "widgets/airport_widget.h" @@ -142,7 +143,7 @@ struct BuildAirToolbarWindow : Window { DeleteWindowById(WC_BUILD_STATION, TRANSPORT_AIR); DeleteWindowById(WC_SELECT_STATION, 0); - + EraseQueuedTouchCommand(); ResetObjectToPlace(); } @@ -243,6 +244,7 @@ public: virtual ~BuildAirportWindow() { + EraseQueuedTouchCommand(); DeleteWindowById(WC_SELECT_STATION, 0); } diff --git a/src/dock_gui.cpp b/src/dock_gui.cpp index bf8c1318d3..59bc306f61 100644 --- a/src/dock_gui.cpp +++ b/src/dock_gui.cpp @@ -103,6 +103,7 @@ struct BuildDocksToolbarWindow : Window { ~BuildDocksToolbarWindow() { + if (_thd.GetCallbackWnd() == this) this->OnPlaceObjectAbort(); if (_settings_client.gui.link_terraform_toolbar) DeleteWindowById(WC_SCEN_LAND_GEN, 0, false); } @@ -279,6 +280,7 @@ struct BuildDocksToolbarWindow : Window { DeleteWindowById(WC_BUILD_DEPOT, TRANSPORT_WATER); DeleteWindowById(WC_SELECT_STATION, 0); DeleteWindowByClass(WC_BUILD_BRIDGE); + EraseQueuedTouchCommand(); } virtual void OnPlacePresize(Point pt, TileIndex tile_from) @@ -551,6 +553,7 @@ public: this->LowerWidget(_ship_depot_direction + WID_BDD_X); if (_settings_client.sound.click_beep) SndPlayFx(SND_15_BEEP); UpdateDocksDirection(); + EraseQueuedTouchCommand(); this->SetDirty(); break; } diff --git a/src/rail_gui.cpp b/src/rail_gui.cpp index 2ec5aeddb6..e80ea4c3a4 100644 --- a/src/rail_gui.cpp +++ b/src/rail_gui.cpp @@ -405,6 +405,7 @@ struct BuildRailToolbarWindow : Window { ~BuildRailToolbarWindow() { + if (_thd.GetCallbackWnd() == this) this->OnPlaceObjectAbort(); if (_settings_client.gui.link_terraform_toolbar) DeleteWindowById(WC_SCEN_LAND_GEN, 0, false); } @@ -754,6 +755,7 @@ struct BuildRailToolbarWindow : Window { DeleteWindowById(WC_BUILD_WAYPOINT, TRANSPORT_RAIL); DeleteWindowById(WC_SELECT_STATION, 0); DeleteWindowByClass(WC_BUILD_BRIDGE); + EraseQueuedTouchCommand(); } virtual void OnPlacePresize(Point pt, TileIndex tile_from) diff --git a/src/road_gui.cpp b/src/road_gui.cpp index ff8b9c8fea..f4c0030133 100644 --- a/src/road_gui.cpp +++ b/src/road_gui.cpp @@ -309,6 +309,7 @@ struct BuildRoadToolbarWindow : Window { ~BuildRoadToolbarWindow() { + if (_thd.GetCallbackWnd() == this) this->OnPlaceObjectAbort(); if (_settings_client.gui.link_terraform_toolbar) DeleteWindowById(WC_SCEN_LAND_GEN, 0, false); } @@ -531,6 +532,7 @@ struct BuildRoadToolbarWindow : Window { DeleteWindowById(WC_BUILD_DEPOT, TRANSPORT_ROAD); DeleteWindowById(WC_SELECT_STATION, 0); DeleteWindowByClass(WC_BUILD_BRIDGE); + EraseQueuedTouchCommand(); } virtual void OnPlaceDrag(ViewportPlaceMethod select_method, ViewportDragDropSelectionProcess select_proc, Point pt) @@ -1016,6 +1018,7 @@ struct BuildRoadStationWindow : public PickerWindowBase { if (_settings_client.sound.click_beep) SndPlayFx(SND_15_BEEP); this->SetDirty(); DeleteWindowById(WC_SELECT_STATION, 0); + EraseQueuedTouchCommand(); break; case WID_BROS_LT_OFF: diff --git a/src/terraform_gui.cpp b/src/terraform_gui.cpp index 3bdccf8f24..ebc7afdf2c 100644 --- a/src/terraform_gui.cpp +++ b/src/terraform_gui.cpp @@ -288,6 +288,7 @@ struct TerraformToolbarWindow : Window { { DeleteWindowById(WC_BUILD_OBJECT, 0); this->RaiseButtons(); + EraseQueuedTouchCommand(); ResetObjectToPlace(); } diff --git a/src/tree_gui.cpp b/src/tree_gui.cpp index 2322e50460..165635da2f 100644 --- a/src/tree_gui.cpp +++ b/src/tree_gui.cpp @@ -179,6 +179,7 @@ public: this->RaiseButtons(); ResetObjectToPlace(); + EraseQueuedTouchCommand(); } };