summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorglx22 <glx@openttd.org>2021-05-15 15:50:32 +0200
committerLoïc Guilloux <glx22@users.noreply.github.com>2021-05-15 21:08:49 +0200
commite66e25ff71d67975e4c5ba0df569339270cfafe2 (patch)
tree84521ba9a4eec6455d84abdda1b3c4867060d41e /src
parent2e43f918913e79ea402173f63b692b609a59de09 (diff)
downloadopenttd-e66e25ff71d67975e4c5ba0df569339270cfafe2.tar.xz
Fix #9269, f6d5c01: Hide windows without abusing WC_INVALID
Diffstat (limited to 'src')
-rw-r--r--src/widgets/dropdown.cpp4
-rw-r--r--src/window.cpp2
2 files changed, 3 insertions, 3 deletions
diff --git a/src/widgets/dropdown.cpp b/src/widgets/dropdown.cpp
index a4bd00259..e838d7231 100644
--- a/src/widgets/dropdown.cpp
+++ b/src/widgets/dropdown.cpp
@@ -188,7 +188,7 @@ struct DropdownWindow : Window {
{
/* Make the dropdown "invisible", so it doesn't affect new window placement.
* Also mark it dirty in case the callback deals with the screen. (e.g. screenshots). */
- this->window_class = WC_INVALID;
+ *this->z_position = nullptr;
this->SetDirty();
Window *w2 = FindWindowById(this->parent_wnd_class, this->parent_wnd_num);
@@ -304,7 +304,7 @@ struct DropdownWindow : Window {
if (this->click_delay != 0 && --this->click_delay == 0) {
/* Make the dropdown "invisible", so it doesn't affect new window placement.
* Also mark it dirty in case the callback deals with the screen. (e.g. screenshots). */
- this->window_class = WC_INVALID;
+ *this->z_position = nullptr;
this->SetDirty();
w2->OnDropdownSelect(this->parent_button, this->selected_index);
diff --git a/src/window.cpp b/src/window.cpp
index bb7787581..036b17bcc 100644
--- a/src/window.cpp
+++ b/src/window.cpp
@@ -3489,6 +3489,6 @@ void RelocateAllWindows(int neww, int newh)
*/
PickerWindowBase::~PickerWindowBase()
{
- this->window_class = WC_INVALID; // stop the ancestor from freeing the already (to be) child
+ *this->z_position = nullptr; // stop the ancestor from freeing the already (to be) child
ResetObjectToPlace();
}