summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorrubidium <rubidium@openttd.org>2010-05-22 19:04:56 +0000
committerrubidium <rubidium@openttd.org>2010-05-22 19:04:56 +0000
commit5e4ec72ce6e353b78e8bb9c7ace65191555da525 (patch)
tree7993dd80151a71d994a838e3a3b4c3990f424ea9
parenteb5852f5f58a0f69ff92373f18f187bf3c9d0e3c (diff)
downloadopenttd-5e4ec72ce6e353b78e8bb9c7ace65191555da525.tar.xz
(svn r19883) -Fix [FS#3812]: dropdowns did affect positioning of new windows because they were not yet removed when the new windows were positioned
-rw-r--r--src/widgets/dropdown.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/widgets/dropdown.cpp b/src/widgets/dropdown.cpp
index bf91dc841..7bac59bb3 100644
--- a/src/widgets/dropdown.cpp
+++ b/src/widgets/dropdown.cpp
@@ -281,6 +281,9 @@ struct DropdownWindow : Window {
}
if (this->click_delay != 0 && --this->click_delay == 0) {
+ /* Make the dropdown "invisible", so it doesn't affect new window placement. */
+ this->window_class = WC_INVALID;
+
w2->OnDropdownSelect(this->parent_button, this->selected_index);
delete this;
return;
@@ -293,6 +296,9 @@ struct DropdownWindow : Window {
this->drag_mode = false;
if (!this->GetDropDownItem(item)) {
if (this->instant_close) {
+ /* Make the dropdown "invisible", so it doesn't affect new window placement. */
+ this->window_class = WC_INVALID;
+
if (GetWidgetFromPos(w2, _cursor.pos.x - w2->left, _cursor.pos.y - w2->top) == this->parent_button) {
/* Send event for selected option if we're still
* on the parent button of the list. */