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

Alexandre Julliard julliard at wine.codeweavers.com
Wed Aug 9 06:03:30 CDT 2006


Module: wine
Branch: refs/heads/master
Commit: a07500170495faa1cdaaa20a63bda7cba019c9db
URL:    http://source.winehq.org/git/?p=wine.git;a=commit;h=a07500170495faa1cdaaa20a63bda7cba019c9db

Author: Alexandre Julliard <julliard at winehq.org>
Date:   Wed Aug  9 11:21:41 2006 +0200

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

---

 programs/explorer/desktop.c |    7 +++++--
 1 files changed, 5 insertions(+), 2 deletions(-)

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




More information about the wine-cvs mailing list