mirror of https://github.com/OpenTTD/OpenTTD
(svn r1539) -Fix: [1103271] free'd memory used. Moved w->wndproc(w, &e) to end of function. Thanks for finding this tamlin.
parent
37f56fa324
commit
8efc7866dd
26
window.c
26
window.c
|
@ -48,31 +48,27 @@ void DispatchLeftClickEvent(Window *w, int x, int y) {
|
||||||
ScrollbarClickHandler(w, wi, e.click.pt.x, e.click.pt.y);
|
ScrollbarClickHandler(w, wi, e.click.pt.x, e.click.pt.y);
|
||||||
}
|
}
|
||||||
|
|
||||||
w->wndproc(w, &e);
|
|
||||||
|
|
||||||
if (w->desc_flags & WDF_STD_BTN) {
|
if (w->desc_flags & WDF_STD_BTN) {
|
||||||
if (e.click.widget == 0) {
|
if (e.click.widget == 0) { /* 'X' */
|
||||||
DeleteWindow(w);
|
DeleteWindow(w);
|
||||||
return;
|
return;
|
||||||
} else {
|
}
|
||||||
if (e.click.widget == 1) {
|
|
||||||
StartWindowDrag(w);
|
if (e.click.widget == 1) /* 'Title bar' */
|
||||||
}
|
StartWindowDrag(w);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (w->desc_flags & WDF_RESIZABLE && wi->type == WWT_RESIZEBOX) {
|
if (w->desc_flags & WDF_RESIZABLE && wi->type == WWT_RESIZEBOX)
|
||||||
StartWindowSizing(w);
|
StartWindowSizing(w);
|
||||||
}
|
|
||||||
|
|
||||||
if (w->desc_flags & WDF_STICKY_BUTTON && wi->type == WWT_STICKYBOX) {
|
if (w->desc_flags & WDF_STICKY_BUTTON && wi->type == WWT_STICKYBOX) {
|
||||||
w->click_state ^= (1 << e.click.widget);
|
TOGGLEBIT(w->click_state, e.click.widget);
|
||||||
w->flags4 ^= WF_STICKY;
|
w->flags4 ^= WF_STICKY;
|
||||||
InvalidateWidget(w, e.click.widget);
|
InvalidateWidget(w, e.click.widget);
|
||||||
}
|
}
|
||||||
} else {
|
|
||||||
w->wndproc(w, &e);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
w->wndproc(w, &e);
|
||||||
}
|
}
|
||||||
|
|
||||||
void DispatchRightClickEvent(Window *w, int x, int y) {
|
void DispatchRightClickEvent(Window *w, int x, int y) {
|
||||||
|
@ -771,14 +767,14 @@ static bool HandlePopupMenu()
|
||||||
if (_left_button_down) {
|
if (_left_button_down) {
|
||||||
e.event = WE_POPUPMENU_OVER;
|
e.event = WE_POPUPMENU_OVER;
|
||||||
e.popupmenu.pt = _cursor.pos;
|
e.popupmenu.pt = _cursor.pos;
|
||||||
w->wndproc(w, &e);
|
|
||||||
} else {
|
} else {
|
||||||
_popup_menu_active = false;
|
_popup_menu_active = false;
|
||||||
e.event = WE_POPUPMENU_SELECT;
|
e.event = WE_POPUPMENU_SELECT;
|
||||||
e.popupmenu.pt = _cursor.pos;
|
e.popupmenu.pt = _cursor.pos;
|
||||||
w->wndproc(w, &e);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
w->wndproc(w, &e);
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue