diff options
author | darkvater <darkvater@openttd.org> | 2005-01-16 12:30:52 +0000 |
---|---|---|
committer | darkvater <darkvater@openttd.org> | 2005-01-16 12:30:52 +0000 |
commit | 03dd5033108fd337bf61870e7c07699a33f57387 (patch) | |
tree | 6552dbb107388fa685514f3bc2c79adbfe8233dd | |
parent | 0fc9b656e2301384facbb89d03af77c0332c3e9e (diff) | |
download | openttd-03dd5033108fd337bf61870e7c07699a33f57387.tar.xz |
(svn r1539) -Fix: [1103271] free'd memory used. Moved w->wndproc(w, &e) to end of function. Thanks for finding this tamlin.
-rw-r--r-- | window.c | 26 |
1 files changed, 11 insertions, 15 deletions
@@ -48,31 +48,27 @@ void DispatchLeftClickEvent(Window *w, int x, int y) { ScrollbarClickHandler(w, wi, e.click.pt.x, e.click.pt.y); } - w->wndproc(w, &e); - if (w->desc_flags & WDF_STD_BTN) { - if (e.click.widget == 0) { + if (e.click.widget == 0) { /* 'X' */ DeleteWindow(w); 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); - } 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; InvalidateWidget(w, e.click.widget); } - } else { - w->wndproc(w, &e); } + + w->wndproc(w, &e); } void DispatchRightClickEvent(Window *w, int x, int y) { @@ -771,14 +767,14 @@ static bool HandlePopupMenu() if (_left_button_down) { e.event = WE_POPUPMENU_OVER; e.popupmenu.pt = _cursor.pos; - w->wndproc(w, &e); } else { _popup_menu_active = false; e.event = WE_POPUPMENU_SELECT; e.popupmenu.pt = _cursor.pos; - w->wndproc(w, &e); } + w->wndproc(w, &e); + return false; } |