From 7162c556f4570ff8084787dba85c6ec2a2a87df3 Mon Sep 17 00:00:00 2001 From: frosch Date: Fri, 1 Jun 2012 15:08:40 +0000 Subject: [PATCH] (svn r24313) -Fix: Some obiwans wrt. clicking on setting buttons. --- src/ai/ai_gui.cpp | 2 +- src/newgrf_gui.cpp | 2 +- src/settings_gui.cpp | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) 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) {