Mercurial > hg > openttd
diff src/window.cpp @ 14951:9437b4726bac draft
(svn r19558) -Fix [FS#3730]: Window::OnResize() was not always called while resizing a window.
author | alberth <alberth@openttd.org> |
---|---|
date | Sun, 04 Apr 2010 11:21:56 +0000 (2010-04-04) |
parents | 4e80238218ca |
children | ed91b4c7075f |
line wrap: on
line diff
--- a/src/window.cpp +++ b/src/window.cpp @@ -548,8 +548,7 @@ if (this->resize.step_height > 1) dy -= dy % (int)this->resize.step_height; ResizeWindow(this, dx, dy); - this->OnResize(); - this->SetDirty(); + /* ResizeWindow() does this->SetDirty() already, no need to do it again here. */ } /** Set the shaded state of the window to \a make_shaded. @@ -962,11 +961,12 @@ if (this->resize.step_height > 1) enlarge_y -= enlarge_y % (int)this->resize.step_height; ResizeWindow(this, enlarge_x, enlarge_y); + /* ResizeWindow() calls this->OnResize(). */ + } else { + /* Always call OnResize; that way the scrollbars and matrices get initialized. */ + this->OnResize(); } - /* Always call OnResize; that way the scrollbars and matrices get initialized */ - this->OnResize(); - int nx = this->left; int ny = this->top; @@ -1425,6 +1425,7 @@ w->nested_root->AssignSizePosition(ST_RESIZE, 0, 0, w->nested_root->smallest_x + new_xinc, w->nested_root->smallest_y + new_yinc, _dynlang.text_dir == TD_RTL); w->width = w->nested_root->current_x; w->height = w->nested_root->current_y; + w->OnResize(); w->SetDirty(); } @@ -1679,7 +1680,6 @@ /* ResizeWindow sets both pre- and after-size to dirty for redrawal */ ResizeWindow(w, x, y); - w->OnResize(); return false; } } @@ -2548,10 +2548,7 @@ * in a 'backup'-desc that the window should always be centred. */ switch (w->window_class) { case WC_MAIN_TOOLBAR: - if (neww - w->width != 0) { - ResizeWindow(w, min(neww, 640) - w->width, 0); - w->OnResize(); - } + if (neww - w->width != 0) ResizeWindow(w, min(neww, 640) - w->width, 0); top = w->top; left = PositionMainToolbar(w); // changes toolbar orientation