explorer: Never paint the desktop when using the X root window.

This commit is contained in:
Alexandre Julliard 2006-08-09 11:21:41 +02:00
parent 5349745a90
commit a075001704
1 changed files with 5 additions and 2 deletions

View File

@ -28,6 +28,8 @@ WINE_DEFAULT_DEBUG_CHANNEL(explorer);
#define DESKTOP_CLASS_ATOM MAKEINTATOMW(32769) #define DESKTOP_CLASS_ATOM MAKEINTATOMW(32769)
#define DESKTOP_ALL_ACCESS 0x01ff #define DESKTOP_ALL_ACCESS 0x01ff
static BOOL using_root;
/* window procedure for the desktop window */ /* window procedure for the desktop window */
static LRESULT WINAPI desktop_wnd_proc( HWND hwnd, UINT message, WPARAM wp, LPARAM lp ) static LRESULT WINAPI desktop_wnd_proc( HWND hwnd, UINT message, WPARAM wp, LPARAM lp )
{ {
@ -50,14 +52,14 @@ static LRESULT WINAPI desktop_wnd_proc( HWND hwnd, UINT message, WPARAM wp, LPAR
return HTCLIENT; return HTCLIENT;
case WM_ERASEBKGND: case WM_ERASEBKGND:
PaintDesktop( (HDC)wp ); if (!using_root) PaintDesktop( (HDC)wp );
return TRUE; return TRUE;
case WM_PAINT: case WM_PAINT:
{ {
PAINTSTRUCT ps; PAINTSTRUCT ps;
BeginPaint( hwnd, &ps ); BeginPaint( hwnd, &ps );
if (ps.fErase) PaintDesktop( ps.hdc ); if (!using_root && ps.fErase) PaintDesktop( ps.hdc );
EndPaint( hwnd, &ps ); EndPaint( hwnd, &ps );
} }
return 0; return 0;
@ -155,6 +157,7 @@ void manage_desktop( char *arg )
if (!xwin) /* using the root window */ if (!xwin) /* using the root window */
{ {
using_root = TRUE;
width = GetSystemMetrics(SM_CXSCREEN); width = GetSystemMetrics(SM_CXSCREEN);
height = GetSystemMetrics(SM_CYSCREEN); height = GetSystemMetrics(SM_CYSCREEN);
} }