From 3a5eef4eed44cb342d3d35d73fe19d2e0109f7ef Mon Sep 17 00:00:00 2001 From: Sam Edwards Date: Fri, 10 May 2013 10:03:42 -0600 Subject: [PATCH] winex11: Cache XRandR 1.2 display mode. --- dlls/winex11.drv/xrandr.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/dlls/winex11.drv/xrandr.c b/dlls/winex11.drv/xrandr.c index 36b9fe9d3aa..fc09020d8b9 100644 --- a/dlls/winex11.drv/xrandr.c +++ b/dlls/winex11.drv/xrandr.c @@ -278,6 +278,9 @@ static int xrandr12_get_current_mode(void) XRRCrtcInfo *crtc_info; int i, ret = -1; + if (xrandr_current_mode != -1) + return xrandr_current_mode; + if (!(resources = pXRRGetScreenResourcesCurrent( gdi_display, root_window ))) { ERR("Failed to get screen resources.\n"); @@ -310,9 +313,10 @@ static int xrandr12_get_current_mode(void) if (ret == -1) { ERR("Unknown mode, returning default.\n"); - ret = 0; + return 0; } + xrandr_current_mode = ret; return ret; } @@ -354,6 +358,7 @@ static LONG xrandr12_set_current_mode( int mode ) return DISP_CHANGE_FAILED; } + xrandr_current_mode = mode; X11DRV_resize_desktop( dd_modes[mode].width, dd_modes[mode].height ); return DISP_CHANGE_SUCCESSFUL; }