diff options
author | frosch <frosch@openttd.org> | 2009-10-20 21:25:25 +0000 |
---|---|---|
committer | frosch <frosch@openttd.org> | 2009-10-20 21:25:25 +0000 |
commit | 21fdc65ce4ed3fd6edd7a066b48e7e5b5af4844c (patch) | |
tree | eef854b25acaad11955c32190e6d1ffcd4e0748c /src | |
parent | b06da82c62a61f9d1ca2c9b852acae86bc1eda7f (diff) | |
download | openttd-21fdc65ce4ed3fd6edd7a066b48e7e5b5af4844c.tar.xz |
(svn r17830) -Fix [FS#3276]: Some windows already need their window_number when setting up smallest size (e.g. for DParams). So assign it earlier in Window::InitializeData instead of dealing with each window separately.
Diffstat (limited to 'src')
-rw-r--r-- | src/autoreplace_gui.cpp | 1 | ||||
-rw-r--r-- | src/depot_gui.cpp | 4 | ||||
-rw-r--r-- | src/window.cpp | 16 |
3 files changed, 10 insertions, 11 deletions
diff --git a/src/autoreplace_gui.cpp b/src/autoreplace_gui.cpp index 198e22f25..8531a89cf 100644 --- a/src/autoreplace_gui.cpp +++ b/src/autoreplace_gui.cpp @@ -206,7 +206,6 @@ public: this->sel_engine[0] = INVALID_ENGINE; this->sel_engine[1] = INVALID_ENGINE; - this->window_number = vehicletype; this->InitNested(desc, vehicletype); this->vscroll.SetCapacity(this->GetWidget<NWidgetBase>(RVW_WIDGET_LEFT_MATRIX)->current_y / this->resize.step_height); diff --git a/src/depot_gui.cpp b/src/depot_gui.cpp index 671a97f6f..39f91a360 100644 --- a/src/depot_gui.cpp +++ b/src/depot_gui.cpp @@ -230,11 +230,9 @@ struct DepotWindow : Window { this->type = type; this->CreateNestedTree(desc); - - this->window_number = tile; this->SetupWidgetData(type); - this->FinishInitNested(desc, tile); + this->owner = GetTileOwner(tile); this->CreateDepotListWindow(type); } diff --git a/src/window.cpp b/src/window.cpp index 71a776464..957b5eba3 100644 --- a/src/window.cpp +++ b/src/window.cpp @@ -917,6 +917,14 @@ static void AssignWidgetToWindow(Window *w, const Widget *widget) */ void Window::InitializeData(WindowClass cls, const Widget *widget, int window_number) { + /* Set up window properties; some of them are needed to set up smallest size below */ + this->window_class = cls; + this->flags4 = WF_WHITE_BORDER_MASK; // just opened windows have a white border + this->owner = INVALID_OWNER; + this->focused_widget = NULL; + this->nested_focus = NULL; + this->window_number = window_number; + /* If available, initialize nested widget tree. */ if (widget == NULL) { if (this->nested_array == NULL) { @@ -930,17 +938,11 @@ void Window::InitializeData(WindowClass cls, const Widget *widget, int window_nu } /* Else, all data members of nested widgets have been set to 0 by the #ZeroedMemoryAllocator base class. */ - /* Set up window properties, + /* Further set up window properties, * this->left, this->top, this->width, this->height, this->resize.width, and this->resize.height are initialized later. */ - this->window_class = cls; - this->flags4 = WF_WHITE_BORDER_MASK; // just opened windows have a white border - this->owner = INVALID_OWNER; AssignWidgetToWindow(this, widget); - this->focused_widget = NULL; - this->nested_focus = NULL; this->resize.step_width = (this->nested_root != NULL) ? this->nested_root->resize_x : 1; this->resize.step_height = (this->nested_root != NULL) ? this->nested_root->resize_y : 1; - this->window_number = window_number; /* Give focus to the opened window unless it is the OSK window or a text box * of focused window has focus (so we don't interrupt typing). But if the new |