Sam Edwards : winex11: Cache XRandR 1.0 display mode.
Alexandre Julliard
julliard at winehq.org
Mon May 13 15:02:44 CDT 2013
Module: wine
Branch: master
Commit: 3fc2bccac25c93f820afab53bddd5b228c169b67
URL: http://source.winehq.org/git/wine.git/?a=commit;h=3fc2bccac25c93f820afab53bddd5b228c169b67
Author: Sam Edwards <CFSworks at gmail.com>
Date: Fri May 10 09:51:21 2013 -0600
winex11: Cache XRandR 1.0 display mode.
---
dlls/winex11.drv/xrandr.c | 9 ++++++++-
1 files changed, 8 insertions(+), 1 deletions(-)
diff --git a/dlls/winex11.drv/xrandr.c b/dlls/winex11.drv/xrandr.c
index 5ec8842..36b9fe9 100644
--- a/dlls/winex11.drv/xrandr.c
+++ b/dlls/winex11.drv/xrandr.c
@@ -68,6 +68,7 @@ static int primary_crtc;
static struct x11drv_mode_info *dd_modes;
static SizeID *xrandr10_modes;
static unsigned int xrandr_mode_count;
+static int xrandr_current_mode = -1;
static int load_xrandr(void)
{
@@ -125,6 +126,9 @@ static int xrandr10_get_current_mode(void)
unsigned int i;
int res = -1;
+ if (xrandr_current_mode != -1)
+ return xrandr_current_mode;
+
sc = pXRRGetScreenInfo (gdi_display, DefaultRootWindow( gdi_display ));
size = pXRRConfigCurrentConfiguration (sc, &rot);
rate = pXRRConfigCurrentRate (sc);
@@ -141,8 +145,10 @@ static int xrandr10_get_current_mode(void)
if (res == -1)
{
ERR("In unknown mode, returning default\n");
- res = 0;
+ return 0;
}
+
+ xrandr_current_mode = res;
return res;
}
@@ -177,6 +183,7 @@ static LONG xrandr10_set_current_mode( int mode )
if (stat == RRSetConfigSuccess)
{
+ xrandr_current_mode = mode;
X11DRV_resize_desktop( dd_modes[mode].width, dd_modes[mode].height );
return DISP_CHANGE_SUCCESSFUL;
}
More information about the wine-cvs
mailing list