Mercurial > dwindows
comparison win/dw.c @ 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 | 7b735226ab94 |
comparison
equal
deleted
inserted
replaced
1424:36d0e26a5dea | 1425:1628bf383893 |
---|---|
184 | 184 |
185 /* Internal function to queue a window redraw */ | 185 /* Internal function to queue a window redraw */ |
186 void _dw_redraw(HWND window, int skip) | 186 void _dw_redraw(HWND window, int skip) |
187 { | 187 { |
188 static HWND lastwindow = 0; | 188 static HWND lastwindow = 0; |
189 HWND redraw = lastwindow; | |
189 | 190 |
190 if(skip && !window) | 191 if(skip && !window) |
191 return; | 192 return; |
192 | 193 |
193 if(lastwindow != window && lastwindow) | 194 lastwindow = window; |
195 if(redraw != lastwindow && redraw) | |
194 { | 196 { |
195 dw_window_redraw(lastwindow); | 197 dw_window_redraw(redraw); |
196 } | 198 } |
197 lastwindow = window; | |
198 } | 199 } |
199 | 200 |
200 typedef struct _sighandler | 201 typedef struct _sighandler |
201 { | 202 { |
202 struct _sighandler *next; | 203 struct _sighandler *next; |