Module: wine Branch: master Commit: a7dba33cf3f514894692b86d3b55ef6e885280a2 URL: http://source.winehq.org/git/wine.git/?a=commit;h=a7dba33cf3f514894692b86d3b...
Author: Dmitry Timoshkov dmitry@codeweavers.com Date: Wed Dec 5 15:38:34 2007 +0800
winex11.drv: Use registry settings as a default display mode.
---
dlls/winex11.drv/desktop.c | 1 - dlls/winex11.drv/settings.c | 28 ++++++++++++++-------------- dlls/winex11.drv/x11drv.h | 1 - dlls/winex11.drv/xrandr.c | 1 - dlls/winex11.drv/xvidmode.c | 4 ---- 5 files changed, 14 insertions(+), 21 deletions(-)
diff --git a/dlls/winex11.drv/desktop.c b/dlls/winex11.drv/desktop.c index 1adb031..92686fb 100644 --- a/dlls/winex11.drv/desktop.c +++ b/dlls/winex11.drv/desktop.c @@ -156,7 +156,6 @@ void X11DRV_init_desktop( Window win, unsigned int width, unsigned int height ) make_modes(); X11DRV_Settings_AddDepthModes(); dd_mode_count = X11DRV_Settings_GetModeCount(); - X11DRV_Settings_SetDefaultMode(0); }
diff --git a/dlls/winex11.drv/settings.c b/dlls/winex11.drv/settings.c index e266505..4fb01ad 100644 --- a/dlls/winex11.drv/settings.c +++ b/dlls/winex11.drv/settings.c @@ -44,7 +44,6 @@ WINE_DEFAULT_DEBUG_CHANNEL(x11settings); static LPDDHALMODEINFO dd_modes = NULL; static unsigned int dd_mode_count = 0; static unsigned int dd_max_modes = 0; -static int dd_mode_default = 0; static const unsigned int depths[] = {8, 16, 32};
/* pointers to functions that actually do the hard stuff */ @@ -130,12 +129,6 @@ void X11DRV_Settings_AddDepthModes(void) } }
-/* set the default mode */ -void X11DRV_Settings_SetDefaultMode(int mode) -{ - dd_mode_default = mode; -} - /* return the number of modes that are initialized */ unsigned int X11DRV_Settings_GetModeCount(void) { @@ -377,20 +370,26 @@ LONG X11DRV_ChangeDisplaySettingsEx( LPCWSTR devname, LPDEVMODEW devmode, if (devmode->dmFields & DM_DISPLAYFREQUENCY) def_mode &= !devmode->dmDisplayFrequency; }
- if (def_mode) + if (def_mode || !dwBpp) { - TRACE("Return to original display mode (%s)\n", handler_name); - if (!X11DRV_EnumDisplaySettingsEx(devname, dd_mode_default, &dm, 0)) + if (!X11DRV_EnumDisplaySettingsEx(devname, ENUM_REGISTRY_SETTINGS, &dm, 0)) { ERR("Default mode not found!\n"); return DISP_CHANGE_BADMODE; } - devmode = &dm; + if (def_mode) + { + TRACE("Return to original display mode (%s)\n", handler_name); + devmode = &dm; + } + dwBpp = dm.dmBitsPerPel; } - dwBpp = !dwBpp ? dd_modes[dd_mode_default].dwBPP : dwBpp;
if ((devmode->dmFields & (DM_PELSWIDTH | DM_PELSHEIGHT)) != (DM_PELSWIDTH | DM_PELSHEIGHT)) + { + WARN("devmode doesn't specify the resolution: %04x\n", devmode->dmFields); return DISP_CHANGE_BADMODE; + }
for (i = 0; i < dd_mode_count; i++) { @@ -423,13 +422,14 @@ LONG X11DRV_ChangeDisplaySettingsEx( LPCWSTR devname, LPDEVMODEW devmode,
if (!(flags & (CDS_TEST | CDS_NORESET))) return pSetCurrentMode(i); + return DISP_CHANGE_SUCCESSFUL; }
/* no valid modes found */ - ERR("No matching mode found(%dx%dx%d)! (%s)\n", + ERR("No matching mode found %ux%ux%u @%u! (%s)\n", devmode->dmPelsWidth, devmode->dmPelsHeight, - devmode->dmBitsPerPel, handler_name); + devmode->dmBitsPerPel, devmode->dmDisplayFrequency, handler_name); return DISP_CHANGE_BADMODE; }
diff --git a/dlls/winex11.drv/x11drv.h b/dlls/winex11.drv/x11drv.h index 445badc..ec03e71 100644 --- a/dlls/winex11.drv/x11drv.h +++ b/dlls/winex11.drv/x11drv.h @@ -739,7 +739,6 @@ extern int X11DRV_Settings_CreateDriver(LPDDHALINFO info); extern LPDDHALMODEINFO X11DRV_Settings_CreateModes(unsigned int max_modes, int reserve_depths); unsigned int X11DRV_Settings_GetModeCount(void); void X11DRV_Settings_Init(void); -extern void X11DRV_Settings_SetDefaultMode(int mode); LPDDHALMODEINFO X11DRV_Settings_SetHandlers(const char *name, int (*pNewGCM)(void), LONG (*pNewSCM)(int), diff --git a/dlls/winex11.drv/xrandr.c b/dlls/winex11.drv/xrandr.c index 8a8d7d9..e6ae615 100644 --- a/dlls/winex11.drv/xrandr.c +++ b/dlls/winex11.drv/xrandr.c @@ -304,7 +304,6 @@ void X11DRV_XRandR_Init(void) make_modes(); X11DRV_Settings_AddDepthModes(); dd_mode_count = X11DRV_Settings_GetModeCount(); - X11DRV_Settings_SetDefaultMode(0);
TRACE("Available DD modes: count=%d\n", dd_mode_count); TRACE("Enabling XRandR\n"); diff --git a/dlls/winex11.drv/xvidmode.c b/dlls/winex11.drv/xvidmode.c index 3a0363c..7951373 100644 --- a/dlls/winex11.drv/xvidmode.c +++ b/dlls/winex11.drv/xvidmode.c @@ -197,10 +197,6 @@ void X11DRV_XF86VM_Init(void) dd_mode_count = X11DRV_Settings_GetModeCount();
TRACE("Available DD modes: count=%d\n", dd_mode_count); - - /* the first mode in the list seems to be the default */ - X11DRV_Settings_SetDefaultMode(0); - TRACE("Enabling XVidMode\n"); }