From 5e4ec72ce6e353b78e8bb9c7ace65191555da525 Mon Sep 17 00:00:00 2001 From: rubidium Date: Sat, 22 May 2010 19:04:56 +0000 Subject: (svn r19883) -Fix [FS#3812]: dropdowns did affect positioning of new windows because they were not yet removed when the new windows were positioned --- src/widgets/dropdown.cpp | 6 ++++++ 1 file changed, 6 insertions(+) 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. */ -- cgit v1.2.3-54-g00ecf