From aa35b6ad4913c48390ce8d60a38457be241c5ecc Mon Sep 17 00:00:00 2001 From: Jason Rumney Date: Thu, 24 Jan 2002 20:49:36 +0000 Subject: [PATCH] (w32_wnd_proc) : Initialize update_rect. Combine the regions returned by BeginPaint and GetUpdateRect. --- src/ChangeLog | 9 +++++++++ src/w32fns.c | 14 ++++++-------- 2 files changed, 15 insertions(+), 8 deletions(-) diff --git a/src/ChangeLog b/src/ChangeLog index 2095530c7ad..d34f4602481 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,12 @@ +2002-01-24 Jason Rumney + + * w32term.c (x_scroll_run): Use ScrollWindowEx in place of BitBlt. + If region left to draw is not what was expected, mark the frame as + garbaged. + + * w32fns.c (w32_wnd_proc) : Initialize update_rect. + Combine the regions returned by BeginPaint and GetUpdateRect. + 2002-01-23 Jason Rumney * w32term.c (x_update_window_begin): Only hide caret if diff --git a/src/w32fns.c b/src/w32fns.c index beb61281794..38de4b47ef4 100644 --- a/src/w32fns.c +++ b/src/w32fns.c @@ -4157,6 +4157,7 @@ w32_wnd_proc (hwnd, msg, wParam, lParam) { PAINTSTRUCT paintStruct; RECT update_rect; + bzero (&update_rect, sizeof (update_rect)); f = x_window_to_frame (dpyinfo, hwnd); if (f == 0) @@ -4168,18 +4169,15 @@ w32_wnd_proc (hwnd, msg, wParam, lParam) /* MSDN Docs say not to call BeginPaint if GetUpdateRect fails. Apparently this can happen under some circumstances. */ - if (!w32_strict_painting || GetUpdateRect (hwnd, &update_rect, FALSE)) + if (GetUpdateRect (hwnd, &update_rect, FALSE) || !w32_strict_painting) { enter_crit (); BeginPaint (hwnd, &paintStruct); - if (w32_strict_painting) - /* The rectangles returned by GetUpdateRect and BeginPaint - do not always match. GetUpdateRect seems to be the - more reliable of the two. */ - wmsg.rect = update_rect; - else - wmsg.rect = paintStruct.rcPaint; + /* The rectangles returned by GetUpdateRect and BeginPaint + do not always match. Play it safe by assuming both areas + are invalid. */ + UnionRect (&(wmsg.rect), &update_rect, &(paintStruct.rcPaint)); #if defined (W32_DEBUG_DISPLAY) DebPrint (("WM_PAINT (frame %p): painting %d,%d-%d,%d\n", -- 2.39.2