diff --git a/src/tilehighlight_type.h b/src/tilehighlight_type.h --- a/src/tilehighlight_type.h +++ b/src/tilehighlight_type.h @@ -74,6 +74,8 @@ struct TileHighlightData { ViewportPlaceMethod select_method; ///< The method which governs how tiles are selected. ViewportDragDropSelectionProcess select_proc; ///< The procedure that has to be called when the selection is done. + void Reset(); + bool IsDraggingDiagonal(); Window *GetCallbackWnd(); }; diff --git a/src/viewport.cpp b/src/viewport.cpp --- a/src/viewport.cpp +++ b/src/viewport.cpp @@ -2008,6 +2008,17 @@ static HighLightStyle GetAutorailHT(int } /** + * Reset tile highlighting. + */ +void TileHighlightData::Reset() +{ + this->pos.x = 0; + this->pos.y = 0; + this->new_pos.x = 0; + this->new_pos.y = 0; +} + +/** * Is the user dragging a 'diagonal rectangle'? * @return User is dragging a rotated rectangle. */ diff --git a/src/window.cpp b/src/window.cpp --- a/src/window.cpp +++ b/src/window.cpp @@ -1366,10 +1366,7 @@ void ResetWindowSystem() { UnInitWindowSystem(); InitWindowSystem(); - _thd.pos.x = 0; - _thd.pos.y = 0; - _thd.new_pos.x = 0; - _thd.new_pos.y = 0; + _thd.Reset(); } static void DecreaseWindowCounters()