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);