All pastes #739342 Raw Edit

Untitled

public text v1 · immutable
·published 2007-10-17 02:20 UTC
rendered paste body
diff --git a/dlls/winex11.drv/init.c b/dlls/winex11.drv/init.c
index b773f9a..d2532c7 100644
--- a/dlls/winex11.drv/init.c
+++ b/dlls/winex11.drv/init.c
@@ -202,7 +202,7 @@ INT X11DRV_GetDeviceCaps( X11DRV_PDEVICE *physDev,
 INT cap )
     case DESKTOPVERTRES:
         return virtual_screen_rect.bottom - virtual_screen_rect.top;
     case BITSPIXEL:
-        return screen_depth;
+        return (!screen_depth_override) ? screen_depth : 32;
     case PLANES:
         return 1;
     case NUMBRUSHES:
diff --git a/dlls/winex11.drv/x11drv.h b/dlls/winex11.drv/x11drv.h
index 8de2e25..080d3f2 100644
--- a/dlls/winex11.drv/x11drv.h
+++ b/dlls/winex11.drv/x11drv.h
@@ -524,6 +524,7 @@ extern Window root_window;
 extern unsigned int screen_width;
 extern unsigned int screen_height;
 extern unsigned int screen_depth;
+extern BOOL screen_depth_override;
 extern RECT virtual_screen_rect;
 extern unsigned int text_caps;
 extern int dxgrab;
diff --git a/dlls/winex11.drv/x11drv_main.c b/dlls/winex11.drv/x11drv_
main.c
index 15a3624..a9d0e09 100644
--- a/dlls/winex11.drv/x11drv_main.c
+++ b/dlls/winex11.drv/x11drv_main.c
@@ -69,6 +69,7 @@ Visual *visual;
 unsigned int screen_width;
 unsigned int screen_height;
 unsigned int screen_depth;
+BOOL screen_depth_override;
 RECT virtual_screen_rect;
 Window root_window;
 int dxgrab = 0;
@@ -334,6 +335,7 @@ static void setup_options(void)
         use_primary_selection = IS_OPTION_TRUE( buffer[0] );

     screen_depth = 0;
+    screen_depth_override = FALSE;
     if (!get_config_key( hkey, appkey, "ScreenDepth", buffer, sizeof(                                                                                                                                       buffer) ))
         screen_depth = atoi(buffer);

@@ -420,6 +422,8 @@ static BOOL process_attach(void)
     {
         visual       = desktop_vi->visual;
         screen       = ScreenOfDisplay(display, desktop_vi->screen);
+        /* some apps demand we report back a 32-bit screendepth */
+       if(screen_depth == 32) screen_depth_override = TRUE;
         screen_depth = desktop_vi->depth;
         XFree(desktop_vi);
     }