mirror of https://github.com/OpenTTD/OpenTTD
Fix #9269, f6d5c01: Hide windows without abusing WC_INVALID
parent
2e43f91891
commit
e66e25ff71
|
@ -188,7 +188,7 @@ struct DropdownWindow : Window {
|
||||||
{
|
{
|
||||||
/* Make the dropdown "invisible", so it doesn't affect new window placement.
|
/* 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). */
|
* 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();
|
this->SetDirty();
|
||||||
|
|
||||||
Window *w2 = FindWindowById(this->parent_wnd_class, this->parent_wnd_num);
|
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) {
|
if (this->click_delay != 0 && --this->click_delay == 0) {
|
||||||
/* Make the dropdown "invisible", so it doesn't affect new window placement.
|
/* 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). */
|
* 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();
|
this->SetDirty();
|
||||||
|
|
||||||
w2->OnDropdownSelect(this->parent_button, this->selected_index);
|
w2->OnDropdownSelect(this->parent_button, this->selected_index);
|
||||||
|
|
|
@ -3489,6 +3489,6 @@ void RelocateAllWindows(int neww, int newh)
|
||||||
*/
|
*/
|
||||||
PickerWindowBase::~PickerWindowBase()
|
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();
|
ResetObjectToPlace();
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue