Cygwin/X: Avoid a visual glitch on window move in rootless modes

Handle and ignore WM_ERASEBKGND since we repaint the entire invalidated region anyhow
(this avoids a white flickering on window resize)

Signed-off-by: Jon TURNEY <jon.turney@dronecode.org.uk>
This commit is contained in:
Jon TURNEY 2009-05-18 18:14:41 +01:00
parent b718b2e088
commit 638ca9a7a2
2 changed files with 19 additions and 0 deletions

View File

@ -453,6 +453,14 @@ winTopLevelWindowProc (HWND hwnd, UINT message,
HandleCustomWM_INITMENU ((unsigned long)hwnd, wParam);
break;
case WM_ERASEBKGND:
/*
* Pretend that we did erase the background but we don't care,
* since we repaint the entire region anyhow
* This avoids some flickering when resizing.
*/
return TRUE;
case WM_PAINT:
/* Only paint if our window handle is valid */
if (hwndScreen == NULL)

View File

@ -783,6 +783,17 @@ winMWExtWMWindowProc (HWND hwnd, UINT message,
SendMessage (hwndScreen, message, wParam, lParam);
return 0;
case WM_ERASEBKGND:
#if CYGDEBUG
winDebug ("winMWExtWMWindowProc - WM_ERASEBKGND\n");
#endif
/*
* Pretend that we did erase the background but we don't care,
* since we repaint the entire region anyhow
* This avoids some flickering when resizing.
*/
return TRUE;
case WM_PAINT:
/* BeginPaint gives us an hdc that clips to the invalidated region */