changeset 13595:359508f4dd22 draft

(svn r18119) -Codechange/Fix: always call OnResize so the matrices/scrollbars are initialised without the need for duplicating the OnResize code
author rubidium <rubidium@openttd.org>
date Mon, 16 Nov 2009 16:42:04 +0000
parents 75bdacca0c55
children 74cd704c04a9
files src/autoreplace_gui.cpp src/build_vehicle_gui.cpp src/window.cpp
diffstat 3 files changed, 5 insertions(+), 18 deletions(-) [+]
line wrap: on
line diff
--- a/src/autoreplace_gui.cpp
+++ b/src/autoreplace_gui.cpp
@@ -227,9 +227,6 @@
 
 		this->InitNested(desc, vehicletype);
 
-		/* Update the scrollbars/matrix 'definitions' */
-		this->OnResize();
-
 		this->owner = _local_company;
 		this->sel_group = id_g;
 	}
--- a/src/build_vehicle_gui.cpp
+++ b/src/build_vehicle_gui.cpp
@@ -837,9 +837,6 @@
 
 		this->FinishInitNested(desc, tile == INVALID_TILE ? (int)type : tile);
 
-		/* Update the scrollbars/matrix 'definitions' */
-		this->OnResize();
-
 		this->eng_list.ForceRebuild();
 		this->GenerateBuildList(); // generate the list, since we need it in the next line
 		/* Select the first engine in the list as default when opening the window */
--- a/src/window.cpp
+++ b/src/window.cpp
@@ -517,17 +517,8 @@
 	if (this->resize.step_width  > 1) dx -= dx % (int)this->resize.step_width;
 	if (this->resize.step_height > 1) dy -= dy % (int)this->resize.step_height;
 
-	if (dx == 0 && dy == 0) { // No resize needed.
-		this->SetDirty();
-		if (this->viewport != NULL) {
-			NWidgetViewport *nvp = (NWidgetViewport *)nested_root->GetWidgetOfType(NWID_VIEWPORT);
-			nvp->UpdateViewportCoordinates(this);
-		}
-		return;
-	}
-
-	ResizeWindow(this, dx, dy); // Sets post-resize dirty blocks.
-	this->OnResize(); // Calls NWidgetViewport::UpdateViewportCoordinates()
+	ResizeWindow(this, dx, dy);
+	this->OnResize();
 }
 
 /** Find the Window whose parent pointer points to this window
@@ -901,9 +892,11 @@
 		if (this->resize.step_height > 1) enlarge_y -= enlarge_y % (int)this->resize.step_height;
 
 		ResizeWindow(this, enlarge_x, enlarge_y);
-		this->OnResize();
 	}
 
+	/* Always call OnResize; that way the scrollbars and matrices get initialized */
+	this->OnResize();
+
 	int nx = this->left;
 	int ny = this->top;