Fixed minimap scrolling

This commit is contained in:
Sergii Pylypenko
2019-07-12 23:47:45 +03:00
parent a6be307972
commit f3af815cc1
3 changed files with 11 additions and 2 deletions

View File

@@ -1413,6 +1413,16 @@ int SmallMapWindow::GetPositionOnLegend(Point pt)
Window *w = FindWindowById(WC_MAIN_WINDOW, 0);
int sub;
pt = this->PixelToTile(pt.x - wid->pos_x, pt.y - wid->pos_y, &sub);
if (_settings_client.gui.scroll_mode == VSM_MAP_LMB) {
if (click_count > 0) {
this->lmb_scroll_pt.x = this->scroll_x + pt.x * TILE_SIZE;
this->lmb_scroll_pt.y = this->scroll_y + pt.y * TILE_SIZE;
} else {
this->SetNewScroll(this->lmb_scroll_pt.x - pt.x * TILE_SIZE, this->lmb_scroll_pt.y - pt.y * TILE_SIZE, 0);
this->SetDirty();
break;
}
}
ScrollWindowTo(this->scroll_x + pt.x * TILE_SIZE, this->scroll_y + pt.y * TILE_SIZE, -1, w);
this->SetDirty();

View File

@@ -75,6 +75,7 @@ protected:
uint min_number_of_fixed_rows; ///< Minimal number of rows in the legends for the fixed layouts only (all except #SMT_INDUSTRY).
uint column_width; ///< Width of a column in the #WID_SM_LEGEND widget.
const uint row_height; ///< Heigth of each row in the #WID_SM_LEGEND widget.
Point lmb_scroll_pt; ///< Starting point for scrolling minimap with left mouse button.
int32 scroll_x; ///< Horizontal world coordinate of the base tile left of the top-left corner of the smallmap display.
int32 scroll_y; ///< Vertical world coordinate of the base tile left of the top-left corner of the smallmap display.

View File

@@ -11,8 +11,6 @@
- Select native screen width x 480 resolution on first run.
- Minimap scrolling is broken.
- Scrollable lists open scrolled to bottom.
- Two-finger scroll when building road is broken.