Henri Verbeet : winex11: Try XRandR 1.0 if 1.2 fails.

Alexandre Julliard julliard at winehq.org
Mon Aug 20 14:16:18 CDT 2012


Module: wine
Branch: master
Commit: 28a9b39372ab05a4df42890f295a06306e4fb490
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=28a9b39372ab05a4df42890f295a06306e4fb490

Author: Henri Verbeet <hverbeet at codeweavers.com>
Date:   Mon Aug 20 08:12:06 2012 +0200

winex11: Try XRandR 1.0 if 1.2 fails.

---

 dlls/winex11.drv/xrandr.c |   15 ++++++++-------
 1 files changed, 8 insertions(+), 7 deletions(-)

diff --git a/dlls/winex11.drv/xrandr.c b/dlls/winex11.drv/xrandr.c
index 9eef8f5..16b5d9a 100644
--- a/dlls/winex11.drv/xrandr.c
+++ b/dlls/winex11.drv/xrandr.c
@@ -344,24 +344,25 @@ static LONG xrandr12_set_current_mode( int mode )
     return DISP_CHANGE_SUCCESSFUL;
 }
 
-static void xrandr12_init_modes(void)
+static int xrandr12_init_modes(void)
 {
     XRRScreenResources *resources;
     XRROutputInfo *output_info;
     XRRCrtcInfo *crtc_info;
+    int ret = -1;
     int i, j;
 
     if (!(resources = xrandr_get_screen_resources( gdi_display, root_window )))
     {
         ERR("Failed to get screen resources.\n");
-        return;
+        return ret;
     }
 
     if (!resources->ncrtc || !(crtc_info = pXRRGetCrtcInfo( gdi_display, resources, resources->crtcs[0] )))
     {
         pXRRFreeScreenResources( resources );
         ERR("Failed to get CRTC info.\n");
-        return;
+        return ret;
     }
 
     TRACE("CRTC 0: mode %#lx, %ux%u+%d+%d.\n", crtc_info->mode,
@@ -372,7 +373,7 @@ static void xrandr12_init_modes(void)
         pXRRFreeCrtcInfo( crtc_info );
         pXRRFreeScreenResources( resources );
         ERR("Failed to get output info.\n");
-        return;
+        return ret;
     }
 
     TRACE("OUTPUT 0: name %s.\n", debugstr_a(output_info->name));
@@ -415,11 +416,13 @@ static void xrandr12_init_modes(void)
     }
 
     X11DRV_Settings_AddDepthModes();
+    ret = 0;
 
 done:
     pXRRFreeOutputInfo( output_info );
     pXRRFreeCrtcInfo( crtc_info );
     pXRRFreeScreenResources( resources );
+    return ret;
 }
 
 #endif /* HAVE_XRRGETSCREENRESOURCES */
@@ -452,9 +455,7 @@ void X11DRV_XRandR_Init(void)
             xrandr_get_screen_resources = wine_dlsym( xrandr_handle, "XRRGetScreenResources", NULL, 0 );
     }
 
-    if (xrandr_get_screen_resources)
-        xrandr12_init_modes();
-    else
+    if (!xrandr_get_screen_resources || xrandr12_init_modes() < 0)
 #endif
         xrandr10_init_modes();
 }




More information about the wine-cvs mailing list