Mercurial > dwindows
diff win/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 | 0676561865ac |
children | 18c1b999dd65 |
line wrap: on
line diff
--- a/win/dw.c Mon Dec 05 05:22:06 2011 +0000 +++ b/win/dw.c Tue Dec 06 22:36:55 2011 +0000 @@ -3407,6 +3407,7 @@ { ColorInfo *cinfo = (ColorInfo *)GetWindowLongPtr(hwnd, GWLP_USERDATA); WNDPROC pOldProc; + int retval = -1; if ( !cinfo ) return DefWindowProc(hwnd, msg, mp1, mp2); @@ -3451,7 +3452,7 @@ if(checkbox) in_checkbox_handler = 1; - clickfunc(tmp->window, tmp->data); + retval = clickfunc(tmp->window, tmp->data); if(checkbox) in_checkbox_handler = 0; @@ -3482,7 +3483,7 @@ /* Make sure it's the right window, and the right ID */ if(tmp->window == hwnd) { - clickfunc(tmp->window, tmp->data); + retval = clickfunc(tmp->window, tmp->data); tmp = NULL; } } @@ -3508,6 +3509,9 @@ break; } + /* Make sure windows are up-to-date */ + if(retval != -1) + _dw_redraw(0, FALSE); if ( !pOldProc ) return DefWindowProc(hwnd, msg, mp1, mp2); return CallWindowProc(pOldProc, hwnd, msg, mp1, mp2);