Fixed minimap scrolling
This commit is contained in:
@@ -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();
|
||||
|
||||
@@ -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.
|
||||
|
||||
Reference in New Issue
Block a user