diff --git a/src/ai/ai_gui.cpp b/src/ai/ai_gui.cpp index 60b7838f8d..3f8d4ee4d2 100644 --- a/src/ai/ai_gui.cpp +++ b/src/ai/ai_gui.cpp @@ -435,7 +435,7 @@ struct AISettingsWindow : public Window { bool bool_item = (config_item.flags & SCRIPTCONFIG_BOOLEAN) != 0; int x = pt.x - wid->pos_x; - if (_current_text_dir == TD_RTL) x = wid->current_x - x; + if (_current_text_dir == TD_RTL) x = wid->current_x - 1 - x; x -= 4; /* One of the arrows is clicked (or green/red rect in case of bool value) */ if (IsInsideMM(x, 0, SETTING_BUTTON_WIDTH)) { diff --git a/src/newgrf_gui.cpp b/src/newgrf_gui.cpp index 620c476bc7..df72c37323 100644 --- a/src/newgrf_gui.cpp +++ b/src/newgrf_gui.cpp @@ -321,7 +321,7 @@ struct NewGRFParametersWindow : public Window { const NWidgetBase *wid = this->GetWidget(WID_NP_BACKGROUND); int x = pt.x - wid->pos_x; - if (_current_text_dir == TD_RTL) x = wid->current_x - x; + if (_current_text_dir == TD_RTL) x = wid->current_x - 1 - x; x -= 4; GRFParameterInfo *par_info = (num < this->grf_config->param_info.Length()) ? this->grf_config->param_info[num] : NULL; diff --git a/src/settings_gui.cpp b/src/settings_gui.cpp index b9a1d974aa..4592f2a87c 100644 --- a/src/settings_gui.cpp +++ b/src/settings_gui.cpp @@ -1788,7 +1788,7 @@ struct GameSettingsWindow : Window { { if (widget != WID_GS_OPTIONSPANEL) return; - uint btn = this->vscroll->GetScrolledRowFromWidget(pt.y, this, WID_GS_OPTIONSPANEL, SETTINGTREE_TOP_OFFSET - 1); + uint btn = this->vscroll->GetScrolledRowFromWidget(pt.y, this, WID_GS_OPTIONSPANEL, SETTINGTREE_TOP_OFFSET); if (btn == INT_MAX) return; uint cur_row = 0; @@ -1796,7 +1796,7 @@ struct GameSettingsWindow : Window { if (pe == NULL) return; // Clicked below the last setting of the page - int x = (_current_text_dir == TD_RTL ? this->width - pt.x : pt.x) - SETTINGTREE_LEFT_OFFSET - (pe->level + 1) * LEVEL_WIDTH; // Shift x coordinate + int x = (_current_text_dir == TD_RTL ? this->width - 1 - pt.x : pt.x) - SETTINGTREE_LEFT_OFFSET - (pe->level + 1) * LEVEL_WIDTH; // Shift x coordinate if (x < 0) return; // Clicked left of the entry if ((pe->flags & SEF_KIND_MASK) == SEF_SUBTREE_KIND) {