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