- Paint the desktop only when getting WM_ERASEBKGND message, and do nothing in WM_PAINT. This is the behavior Windows and Wine implement.
- Add WM_CLOSE stub-handler, though it doesn't change much now - all messages unhandled by the switch are going to return "0" since this proc doesn't call DefWndProcHandler.

svn path=/trunk/; revision=43934
This commit is contained in:
Aleksey Bragin 2009-11-03 19:03:11 +00:00
parent e788e7f084
commit 006d77b16b

View file

@ -42,23 +42,19 @@ static HWND VisibleDesktopWindow = NULL;
static LRESULT CALLBACK static LRESULT CALLBACK
DtbgWindowProc(HWND Wnd, UINT Msg, WPARAM wParam, LPARAM lParam) DtbgWindowProc(HWND Wnd, UINT Msg, WPARAM wParam, LPARAM lParam)
{ {
switch(Msg) PAINTSTRUCT PS;
HDC hDC;
switch(Msg)
{ {
case WM_ERASEBKGND: case WM_ERASEBKGND:
PaintDesktop((HDC)wParam);
return 1; return 1;
case WM_PAINT: case WM_PAINT:
{ {
PAINTSTRUCT PS; if((hDC = BeginPaint(Wnd, &PS)))
RECT rc;
HDC hDC;
if(GetUpdateRect(Wnd, &rc, FALSE) &&
(hDC = BeginPaint(Wnd, &PS)))
{
PaintDesktop(hDC);
EndPaint(Wnd, &PS); EndPaint(Wnd, &PS);
}
return 0; return 0;
} }
@ -71,6 +67,9 @@ DtbgWindowProc(HWND Wnd, UINT Msg, WPARAM wParam, LPARAM lParam)
case WM_CREATE: case WM_CREATE:
return 0; return 0;
case WM_CLOSE:
return 0;
case WM_NOTIFY: case WM_NOTIFY:
{ {
PPRIVATE_NOTIFY_DESKTOP nmh = (PPRIVATE_NOTIFY_DESKTOP)lParam; PPRIVATE_NOTIFY_DESKTOP nmh = (PPRIVATE_NOTIFY_DESKTOP)lParam;