diff mac/dw.m @ 1425:1628bf383893

Changes to _dw_redraw() to prevent infinite recursion on OS/2, Win and Mac.
author bsmith@81767d24-ef19-dc11-ae90-00e081727c95
date Sat, 03 Dec 2011 04:40:35 +0000
parents 131bedf41332
children fbaec6e5df63
line wrap: on
line diff
--- a/mac/dw.m	Sat Dec 03 03:40:48 2011 +0000
+++ b/mac/dw.m	Sat Dec 03 04:40:35 2011 +0000
@@ -155,15 +155,16 @@
 void _dw_redraw(id window, int skip)
 {
     static id lastwindow = nil;
+    id redraw = lastwindow;
     
     if(skip && window == nil)
-      return;
-
-    if(lastwindow != window && lastwindow != nil)
-    {
-        dw_window_redraw(lastwindow);
-    }
+        return;
+
     lastwindow = window;
+    if(redraw != lastwindow && redraw != nil)
+    {
+        dw_window_redraw(redraw);
+    }
 }
 
 SignalHandler *_get_handler(HWND window, int messageid)