Mercurial > dwindows
diff os2/dw.c @ 1434:2cca36ec3da6
Fixed automatic redrawing not occurring on OS/2 and Windows when changes were made from a button press handler.
author | bsmith@81767d24-ef19-dc11-ae90-00e081727c95 |
---|---|
date | Tue, 06 Dec 2011 22:36:55 +0000 |
parents | feb0429278e2 |
children | 18c1b999dd65 |
line wrap: on
line diff
--- a/os2/dw.c Mon Dec 05 05:22:06 2011 +0000 +++ b/os2/dw.c Tue Dec 06 22:36:55 2011 +0000 @@ -3856,6 +3856,7 @@ { WindowData *blah = WinQueryWindowPtr(hwnd, QWL_USER); PFNWP oldproc; + int retval = -1; if(!blah) return WinDefWindowProc(hwnd, msg, mp1, mp2); @@ -3932,14 +3933,14 @@ break; case WM_USER: { - SignalHandler *tmp = (SignalHandler *)mp1; + SignalHandler *tmp = (SignalHandler *)mp1; int (API_FUNC clickfunc)(HWND, void *) = NULL; if(tmp) { clickfunc = (int (API_FUNC)(HWND, void *))tmp->signalfunction; - clickfunc(tmp->window, tmp->data); + retval = clickfunc(tmp->window, tmp->data); } } break; @@ -3990,6 +3991,10 @@ } break; } + + /* Make sure windows are up-to-date */ + if(retval != -1) + _dw_redraw(0, FALSE); if(!oldproc) return WinDefWindowProc(hwnd, msg, mp1, mp2); return oldproc(hwnd, msg, mp1, mp2);