From 3749323e231a9778d0ed882e08c7f58dccd90f67 Mon Sep 17 00:00:00 2001 From: rubidium Date: Sat, 10 May 2008 21:35:20 +0000 Subject: (svn r13034) -Fix: segmentation fault due do double delete when closing the OSK window in some cases. --- src/osk_gui.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'src/osk_gui.cpp') diff --git a/src/osk_gui.cpp b/src/osk_gui.cpp index f92bb16b0..432c207bf 100644 --- a/src/osk_gui.cpp +++ b/src/osk_gui.cpp @@ -166,12 +166,13 @@ static void OskWndProc(Window *w, WindowEvent *e) case OSK_WIDGET_CANCEL: if (WP(w, osk_d).cancel_btn != 0) { // pass a cancel event to the parent window w->parent->OnClick(e->we.click.pt, WP(w, osk_d).cancel_btn); + /* Window gets deleted when the parent window removes itself. */ } else { // or reset to original string strcpy(qs->text.buf, WP(w, osk_d).orig); UpdateTextBufferSize(&qs->text); MoveTextBufferPos(&qs->text, WKC_END); + delete w; } - delete w; break; } /* make sure that the parent window's textbox also gets updated */ -- cgit v1.2.3-54-g00ecf