mirror of https://github.com/OpenTTD/OpenTTD.git
(svn r10705) -Fix (r10704): some windows were not correctly initialized as they resized the window themselves and that should be interfered by making sure the window is resized in the right "step" size.
-Fix (r10704): call the WE_RESIZE when resizing during initialization of the windows.
This commit is contained in:
parent
c03cb2c8db
commit
8b5961d5e0
|
@ -668,6 +668,15 @@ static Window *LocalAllocateWindow(
|
|||
if (w->resize.step_height > 1) enlarge_y -= enlarge_y % (int)w->resize.step_height;
|
||||
|
||||
ResizeWindow(w, enlarge_x, enlarge_y);
|
||||
|
||||
WindowEvent e;
|
||||
e.event = WE_RESIZE;
|
||||
e.we.sizing.size.x = w->width;
|
||||
e.we.sizing.size.y = w->height;
|
||||
e.we.sizing.diff.x = enlarge_x;
|
||||
e.we.sizing.diff.y = enlarge_y;
|
||||
w->wndproc(w, &e);
|
||||
|
||||
if (w->left < 0) w->left = 0;
|
||||
if (w->top < 0) w->top = 0;
|
||||
}
|
||||
|
@ -1093,12 +1102,6 @@ void ResizeWindow(Window *w, int x, int y)
|
|||
bool resize_height = false;
|
||||
bool resize_width = false;
|
||||
|
||||
/* X and Y has to go by step.. calculate it.
|
||||
* The cast to int is necessary else x/y are implicitly casted to
|
||||
* unsigned int, which won't work. */
|
||||
if (w->resize.step_width > 1) x -= x % (int)w->resize.step_width;
|
||||
if (w->resize.step_height > 1) y -= y % (int)w->resize.step_height;
|
||||
|
||||
if (x == 0 && y == 0) return;
|
||||
|
||||
SetWindowDirty(w);
|
||||
|
|
Loading…
Reference in New Issue