winex11.drv: Add xrandr_get_screen_resources() helper.

Getting screen resources will be used in multiple places.
So put it in a function.

Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Zhiyi Zhang 2019-08-14 16:22:01 +08:00 committed by Alexandre Julliard
parent 8f45d9a991
commit 95a0a5c755
1 changed files with 15 additions and 14 deletions

View File

@ -274,6 +274,20 @@ static void xrandr10_init_modes(void)
#ifdef HAVE_XRRGETSCREENRESOURCES
static XRRScreenResources *xrandr_get_screen_resources(void)
{
XRRScreenResources *resources = pXRRGetScreenResourcesCurrent( gdi_display, root_window );
if (resources && !resources->ncrtc)
{
pXRRFreeScreenResources( resources );
resources = pXRRGetScreenResources( gdi_display, root_window );
}
if (!resources)
ERR("Failed to get screen resources.\n");
return resources;
}
static int xrandr12_get_current_mode(void)
{
XRRScreenResources *resources;
@ -448,21 +462,8 @@ static int xrandr12_init_modes(void)
int ret = -1;
int i, j;
if (!(resources = pXRRGetScreenResourcesCurrent( gdi_display, root_window )))
{
ERR("Failed to get screen resources.\n");
if (!(resources = xrandr_get_screen_resources()))
return ret;
}
if (!resources->ncrtc)
{
pXRRFreeScreenResources( resources );
if (!(resources = pXRRGetScreenResources( gdi_display, root_window )))
{
ERR("Failed to get screen resources.\n");
return ret;
}
}
if (!(crtc_info = xrandr12_get_primary_crtc_info( resources, &primary_crtc )))
{