From 03dd5033108fd337bf61870e7c07699a33f57387 Mon Sep 17 00:00:00 2001 From: darkvater Date: Sun, 16 Jan 2005 12:30:52 +0000 Subject: (svn r1539) -Fix: [1103271] free'd memory used. Moved w->wndproc(w, &e) to end of function. Thanks for finding this tamlin. --- window.c | 26 +++++++++++--------------- 1 file changed, 11 insertions(+), 15 deletions(-) diff --git a/window.c b/window.c index 8e55c1c87..ae46c4ba3 100644 --- a/window.c +++ b/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); } - 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; } -- cgit v1.2.3-70-g09d2