The Wine development release 4.20 is now available.
What's new in this release (see below for details): - New version of the Mono engine with an FNA update. - Code persistence in VBScript and JScript. - Vulkan spec updates. - Improved support for LLVM MinGW. - Various bug fixes.
The source is available from the following locations:
https://dl.winehq.org/wine/source/4.x/wine-4.20.tar.xz http://mirrors.ibiblio.org/wine/source/4.x/wine-4.20.tar.xz
Binary packages for various distributions will be available from:
https://www.winehq.org/download
You will find documentation on https://www.winehq.org/documentation
You can also get the current source directly from the git repository. Check https://www.winehq.org/git for details.
Wine is available thanks to the work of many people. See the file AUTHORS in the distribution for the complete list.
----------------------------------------------------------------
Bugs fixed in 4.20 (total 37):
10728 LEGO Island character models are textureless 13499 The Odyssey: Winds Of Athena: access violation when trying to run 16644 SimGolf v1.03 does not render terrain 16808 Password Safe crashes with page fault when renaming entries 19667 Demo for Total Annihilation: mouse scrolling of screen unworkable. 24529 TSDoctor 1.0.58 fails to run 33498 Multiple application installers need setupapi.SetupDiCallClassInstaller implementation (USB over Network 5, Microsoft Windows CE Platform Manager 4.0/sub-installer of Embedded VC++ 4.0) 34723 Resident Evil 3: changing settings during the game (in fullscreen mode) results in a crash 35821 wPrime 2.x (VB6 app) reports 'Run-time error 445: Object doesn't support this action' (needs ITextStream ReadLine method implementation) 35925 Age of Wonders III (version <1.5) has graphical issues (fbo bailing out on context_set_gl_context) 36431 valgrind shows a possible leak in shell32/tests/ebrowser.c 36538 Livestream Procaster needs D3D10CompileEffectFromMemory 38070 Multiple application installers need vbscript:Global_Replace implementation in VBScript custom actions (GEOVIA Surpac 6.x, Hog4PC 3.x) 40442 Unexplained new random comctl32:header failure (cross-compiler issue?) 40950 ProgramFiles(x86) environment variable is not created 41106 Multiple games crash at launch without native .NET 4.0 (Lethe - Episode One, A Story About My Uncle) 41119 vbscript fails to parse 'createobject("wscript.shell").run' statement 44975 Multiple applications need 'find.exe' command line tool with functionality to search for string pattern from stdin (ConEmu) 45031 HotS - taking screenshot causes client crash, needs d3dx11_42.dll.D3DX11SaveTextureToFileW 46417 Abiword 2.6.8 comboboxes should have a white background color 46578 IVMU Social Network Client (500 series) crashes when selecting menu / settings 46683 TopoEdit crashes with unimplemented function mf.dll.MFCreateVideoRendererActivate 47305 Notepad doesn't adjust caret and scroll position properly 47349 TesModManager require SetFileInformationByHandle with FileBasicInfo to properly set file timestamps 47807 Wine Mono fails to install fakedlls in a new 64-bit prefix 47815 Virtual desktop is missing window decorations 47821 gcin cannot input chinese characters 47876 mmdevapi:capture issues an invalid and fake todo 47885 games are now restricted to resolutions not bigger than the virtual desktop 47945 dinput:mouse regression on Wine 47947 wine control freezes on exit 47954 Bug in unicode path handling 47958 Mi PC Suite: It won't install (call to unimplemented function propsys.dll.PSCreatePropertyStoreFromObject) 48017 Winlink needs httpapi.dll.HttpReceiveRequestEntityBody() when using native .NET 48019 SSE register MXCSR is wrong for new threads 48067 Epic Games Launcher no longer installs 48076 compile error: ucrtbase: ‘for’ loop initial declarations are only allowed in C99 mode
----------------------------------------------------------------
Changes since 4.19:
Alexandre Julliard (33): ucrtbase/tests: Avoid C99 for loop. wrc: Add --sysroot option. widl: Add strmake() helper. widl: Add --sysroot and --nostdinc options. makefiles: Pass --nostdinc also to widl. ntdll: Initialize MxCsr for new threads on x86. ntdll: Fix FPU initialization for new threads on x86-64. server: Clarify naming of ARM64 floating-point registers. ntdll: Initialize FPU context on ARM64. msvcrt: Don't change FPU control word in _control87() on x86-64. kernel32/tests: Add more tests for FPU control registers. vcomp: Fix vcomp_fork() implementation on ARM64. vcomp: Fix signed char issues. winegcc: Also check magic number to detect shared libraries. ntdll: Support running a builtin without corresponding file in RtlCreateUserProcess(). kernel32: Move support for running wineboot to ntdll. kernel32: Move initialization of the WoW64 environment to ntdll. ntdll: Directly allocate the final process parameters structure. winver: Fix program exit code. ntdll: Support running .exe.so binaries in RtlCreateUserProcess(). ntdll: Initialize earlier things that need the executable name. ntdll: Move some initializations out of thread_init(). ntdll: Load the main binary directly in ntdll when possible. server: Get rid of the unused file parameter in exec_process. kernel32: Move exec process functionality to ntdll. kernel32: Use RtlCreateUserProcess() to start new processes. kernel32: Move support for starting Unix processes to ntdll. kernelbase: Implement GetSystemWow64Directory2(). kernel32: Move GetSystemWow64Directory() functions to kernelbase. kernel32: Move CreateProcess() functions to kernelbase. shell32: Process all messages in control panel. d3d: Revert test hacks that shouldn't have been committed. kernel32: Get rid of LOCALE_IDEFAULTUNIXCODEPAGE.
Alistair Leslie-Hughes (14): user32: WM_MOUSEACTIVATE should return MA_NOACTIVATE for WM_LBUTTONDOWN/HTCAPTION message. dmstyle: IDirectMusicTrack GetParam add pointer check. dsdmo: Added dll. dsound/tests: Add media object query tests. dmime: Trace dwGroupBits parameter consistently. dmband: Handle the DirectX 7 version of DMUS_IO_INSTRUMENT structure. dmscript: Script track IPersistStream IsDirty return S_FALSE. dmband: Rename IDirectMusicTrack8Impl to band_track. dinput: Keyboard device doesn't support property DIPROP_VIDPID. dinput: Mouse device doesn't support property DIPROP_VIDPID. dmime: SegTrigger track supports parameter GUID_IDirectMusicStyle. dmstyle: Free list when Style track is destroyed. dmime: Free list when Tempo track is destroyed. dmime: Free list when SegTrigger track is destroyed.
Andrew Eikum (4): hid: Move preparsed data definition to global header. user32/tests: Move rawinput tests into input.c. user32: Clean up GetRawInputDeviceInfo. user32: Support RIDI_PREPARSEDDATA in GetRawInputDeviceInfo.
Andrew Sheldon (1): wined3d: Add Navi 10 PCI id and device description.
Biswapriyo Nath (1): include/netfw: Add INetFwRule2 and INetFwRule3 interfaces.
Connor McAdams (14): d3dx10: Add D3DX10LoadTextureFromTexture() stub. d3dcompiler: Move d3d10 reflection stubs into d3dcompiler. d3dcompiler: Init reflection data in D3D10ReflectShader(). d3dcompiler: Implement d3d10 reflection GetDesc() method. d3dcompiler: Implement d3d10 reflection Get{Input, Output}ParameterDesc() methods. d3dcompiler: Implement d3d10 reflection GetResourceBindingDesc() method. d3dcompiler: Partially implement ID3D10ShaderReflectionConstantBuffer. d3dcompiler: Implement d3d10 GetConstantBufferByIndex(). d3dcompiler: Implement d3d10 GetConstantBufferByName(). d3dcompiler: Partially implement ID3D10ShaderReflectionVariable. d3dcompiler: Implement ID3D10ShaderReflectionType. d3dcompiler: Implement ID3D10ShaderReflectionVariable GetType() method. d3dcompiler: Implement ID3D10ShaderReflectionConstantBuffer GetVariableByIndex() method. d3dcompiler: Implement ID3D10ShaderReflectionConstantBuffer GetVariableByName() method.
Conor McCarthy (3): kernelbase: Add stub for SetThreadDescription(). dxgi: Implement IDXGISwapChain3::ResizeBuffers1(). dxgi/tests: Add tests for IDXGISwapChain3::ResizeBuffers1().
Damjan Jovanovic (7): comctl32: Test the treeview edit control EM_LIMITTEXT. comctl32: Implement treeview edit control EM_SETLIMITTEXT. comctl32: Test treeview text trimming after label editing is complete. comctl32: Test text buffer passed to TVN_ENDLABELEDIT is always MAX_PATH chars long. comctl32: Test overwriting of pszText contents in TVN_ENDLABELEDIT. comctl32: Test overwriting of pszText pointer in TVN_ENDLABELEDIT. comctl32: Implement treeview edit control text trimming and overwriting.
Derek Lesho (1): winevulkan: Mark members of required structs as required recursively.
Dmitry Timoshkov (2): kernelbase: Implement EqualDomainSid. wineconsole: Fix "Select all" functionality in USER backend.
Erich Hoover (2): qmgr: Call the notification callback when jobs complete. msvcrt: Fix scanf file locking when returning EOF.
Fabian Maurer (6): comctl32/tests: Add combo tests for WM_CTLCOLOR*. user32/tests: Add combo tests for WM_CTLCOLOR*. comctl32/combo: Properly handle WM_CTLCOLOR* messages. user32/combo: Properly handle WM_CTLCOLOR* messages. comctl32/edit: In EM_POSFROMCHAR return correct position for empty lines. user32/edit: In EM_POSFROMCHAR return correct position for empty lines.
François Gouget (5): comctl32/listbox: Do no limit item height to 255. kernel32/tests: Windows 10 dropped support for GetConsoleFontInfo(). kernel32: Match the Windows 10 1709+ GetConsoleFontInfo(). kernel32/tests: Windows 10 dropped support for SetConsoleFont(). kernel32: Match the Windows 10 1709+ SetConsoleFont() implementation.
Gabriel Ivăncescu (17): jscript: Set the DISPID to DISPID_UNKNOWN if unknown. jscript: Also clear the thread_id if the script state is set to Closed. vbscript: Store global variables in an array. vbscript: Get rid of ident_map. jscript: Use standard list for the queued code. jscript: Implement script persistence. jscript/tests: Use integers instead of booleans for counting call expectations. jscript/tests: Add tests for pending and executed code persistence. vbscript: Release the code list when the script is closed. vbscript: Avoid special casing the global function when compiling a function's variables. vbscript: Implement script persistence. vbscript: Store the compiled classes list head into vbscode_t. vbscript: Store the compiled functions list head into vbscode_t. vbscript: Append to the global lists when the code is executed, rather than compiled. vbscript: Change release_dynamic_vars to release a single variable. vbscript/tests: Use integers instead of booleans for counting call expectations. vbscript/tests: Add tests for pending and executed code persistence.
Hans Leidekker (2): bcrypt: Avoid recreating cipher handles when the initialization vector doesn't change. shell32: Fix definitions for FOLDERID_ProgramFilesX64 and FOLDERID_ProgramFilesCommonX64 on 64-bit.
Huw D. M. Davies (1): user32: Remove unused GetAsyncKeyState() driver entry.
Jacek Caban (36): vbscript: Support assigning to object default value. vbscript: Store global functions in an array. vbscript: Replace existing function for duplicated functions. vbscript: Allow arbitrary number of arguments in builtin functions. vbscript: Add Replace function implementation. vbscript: Don't allow changing script state when script site is not set. vbscript: Support changing script state to SCRIPTSTATE_INITIALIZED. vbscript: Fix parsing call expressions. vbscript: Lookup this object in lookup_identifier only if it's an actual VBScript object. vbscript: Store only VBScript this objects in execution context. vbscript: Clean up lookup_identifier. msvcrt: Use %ls format for wchar strings in _wassert. vbscript: Store global static arrays together with global variables. xmllite: Update current pointer after reader_skipn call. vbscript: Fix destroying safearrays in release_exec. winemac.drv: Make sure that NSMiniaturizableWindowMask style mask is set before calling miniaturize. scrrun: Rewrite text stream to use read ahead buffer. scrrun: Add ITextStream::ReadLine implementation. scrrun/tests: Add ITextStream::ReadLine tests. scrrun/tests: Add test of lost trailing byte in unicode srteam. vbscript: Move detach_global_objects call to VBScript destructor. jscript/tests: Use wchar string literals instead of a2bstr helper. widl: Don't use fixed size buffer in ctl2_encode_name. widl: Don't use fixed size buffer in ctl2_encode_string. widl: Use strmake in get_name. configure: Get rid of no longer needed __builtin_clz check. jscript: Treat only ASCII digits as digits. vbscript: Treat only ASCII digits as digits. msvcrt/tests: Add iswdigit tests. vbscript: Always treat keywords after dot as identifiers. winegcc: Add support for -Wl,-delayload argument. makedep: Use -Wl,-delayload option for winebuild delayimports. mshtml: Fix checks for digit characters. oleaut32: Fix checks for digit characters. shlwapi: Fix PathUndecorate[AW] implementation. makedep: Use -Wl,-delayload on cross targets when supported by linker.
Jeff Smith (3): msrle32: Return expected flags from GetInfo. ucrtbase: Strftime returns 4-digit timezone for %z. ucrtbase: Strftime %y works for years 0 to 9999.
João Diogo Ferreira (2): kernel32: Move Get/SetUserGeoID() to after the geoinfo struct. kernel32: Handle GEOCLASS_REGION in Get/SetUserGeoID().
Liam Middlebrook (6): d3dx11: Add D3DX11SaveTextureToFileA/W() stub. winevulkan: Don't add alias structs to struct-extensions list. winevulkan: Update to VK spec version 1.1.113. winevulkan: Update to VK spec version 1.1.114. winevulkan: Update to VK spec version 1.1.117. winevulkan: Update to VK spec version 1.1.126.
Louis Lenders (1): wine.inf: Add value for DigitalProductId.
Martin Storsjo (1): kernel32: Add a special case to EnumProcessModules for the local process.
Matteo Bruni (9): d3dcompiler: Always expect D3D_COMPILER_VERSION to be defined. include: Define D3D_COMPILER_VERSION if it's not already defined. include: Expose MinPrecision field on d3dcompiler version >= 46. d3dcompiler: Initialize MinPrecision when it exists. d3dcompiler: Fix a couple of failure return values in >= 46 D3DReflect(). d3dcompiler/tests: Add d3dcompiler_47 tests. d3dcompiler/tests: Add a small test for MinPrecision. d3dcompiler/tests: Clean up test_reflection_desc_ps_output() a bit. d3d10/tests: Add reflection test.
Micah N Gorrell (1): ole32: Obtain stream size regardless of current position.
Michael Stefaniuc (19): vbscript: Remove redundant NULL checks before SysFreeString(). dmstyle: Rename IDirectMusicTrack8Impl to audition_track. dmstyle: Rename IDirectMusicTrack8Impl to chord_track. dmstyle: Rename IDirectMusicTrack8Impl to command_track. dmstyle: Rename IDirectMusicTrack8Impl to motif_track. dmstyle: Rename IDirectMusicTrack8Impl to mute_track. dmstyle: Rename IDirectMusicTrack8Impl to style_track. dmcompos: Rename IDirectMusicTrack8Impl to chordmap_track. dmcompos: Rename IDirectMusicTrack8Impl to signpost_track. dmime: Rename IDirectMusicTrack8Impl to lyrics_track. dmime: Rename IDirectMusicTrack8Impl to paramcontrol_track. dmime: Rename IDirectMusicTrack8Impl to segment_track. dmime: Rename IDirectMusicTrack8Impl to sequence_track. dmime: Rename IDirectMusicTrack8Impl to sysex_track. dmime: Rename IDirectMusicTrack8Impl to tempo_track. dmime: Rename IDirectMusicTrack8Impl to wave_track. dmscript: Rename IDirectMusicTrack8Impl to script_track. d3d9/tests: Actually test a return value. d3dx9: Remove redundant NULL check before heap_free().
Nikolay Sivov (35): propsys/tests: Merge test files. propsys: Add a semi-stub for PSCreatePropertyStoreFromObject(). comsvcs/tests: Rename test file. comsvcs: Add a stub for "new" moniker. comsvcs: Implement display name parsing for "new" moniker. comsvcs: Implement Hash() for "new" moniker. comsvcs: Implement IsSystemMoniker() for "new" moniker. comsvcs: Implement Inverse() for "new" moniker. ole32: Support BIND_OPTS3 in bind context. mf: Add MFCreateVideoRendererActivate(). mfreadwrite/tests: Add some tests for "any"-stream requests. comsvcs: Add GetTimeOfLastChange() for "new" moniker. comsvcs: Add Enum() for "new" moniker. comsvcs: Implement IPersistStream methods for "new" moniker. comsvcs: Accept progid's when creating "new" monikers. mfreadwrite: Use separate helpers for sync/async ReadSample(). mfreadwrite: Track source state in reader. mfreadwrite: Return earlier on ReadSample() is stream is deselected. ole32/tests: Remove Win9x workarounds from moniker tests. shell32: Remove "stub" from traces. ole32: Remove "stub" from traces. msxml3: Remove "stub" from traces. rpcss: Make initialization helper easier to extend. rpcss: Implement interface to return sequential identifiers. ole32: Reimplement CoGetCurrentProcess() to use global counter from rpcss. ole32: Add separate enumerator implementation for IEnumSTATPROPSETSTG. comsvcs: Implement BindToObject() for "new" moniker. comsvcs/tests: Add some tests for "new" moniker interfaction with bind context. comsvcs/tests: Get rid of global variable. comsvcs: Add Reduce() for "new" moniker. comsvcs: Add IROTData stub for "new" moniker. comsvcs: Support progid in "new" moniker serialization stream. comsvcs/tests: Remove traces from tests. ole32: Add separate IEnumSTATPROPSTG implementation. ole32: Return optional name in IEnumSTATPROPSTG::Next().
Paul Gofman (8): d3dx9: Correctly handle NULL constant state for objects on 64 bit arch. ddraw/tests: Add tests for alpha component in surface format conversions. kernel32: Output a message in GetVolumeInformationW() when device has no read access. wined3d: Check if destination texture has GPU access in glsl_blitter_supported(). wined3d: Use software decompression for converting from compressed format. wined3d: Fixup alpha component in wined3d_texture_gl_upload_data(). ddraw/tests: Also test format conversion alpha for sysmem textures. ddraw/tests: Backport test_surface_format_conversion_alpha() for ddraw4.
Piotr Caban (12): msvcrt: Improve printf %I format support. msvcrt: Enable printf %z, %t and %j formats. msvcrt: Use %ls format for wchar strings in DoMessageBox. ntdll: Work around futimens weak linking problem in set_file_times. user32: Include png.h only if SONAME_LIBPNG is defined. windowscodecs: Include png.h only if SONAME_LIBPNG is defined. winebus: Reference PDOs added to DEVICE_RELATIONS structure. winebus: Fix DEVICE_RELATIONS content on device removal. ntoskrnl.exe: Store device state in volatile key. ucrtbase: Set invalid parameter handler for all misc tests. ucrtbase: Clean up strftime tests. msvcrt: Call invalid parameter handler in strftime.
Rémi Bernon (21): user32/tests: Wait and flush messages after window creation. user32/tests: Add some wparam mask to message sequences for w1064v1809. user32/tests: Update SetActiveWindow(0) test result for w1064v1809. user32/tests: Skip tests expecting ascii VK wparam on non-us keyboards. user32/tests: Add optional flags for alternative sequence on w1064v1809. user32/tests: Flush remaining events before starting a new sequence. user32/tests: Increase test_timers count tolerance on Windows. user32/tests: Tweak test result for w1064v1809. user32/tests: Synchronize with the SendMessageTimeout thread. user32/tests: Close event at the end of the test_WaitForInputIdle test. user32/tests: Ignore WM_WININICHANGE message in test sequences. user32/tests: Make the test_PeekMessage3 timer fire less often. user32/tests: Synchronize with other thread between SendMessage calls. user32/tests: Wait longer for injected mouse event to take effect. user32/tests: Add optional messages to test sequences. dnsapi: Increase buffer size to fix format-overflow warning. oleaut32: Increase buffer size to fix format-overflow warning. winevdm: Increase buffer size to fix format-overflow warning. opencl: Define CL_TARGET_OPENCL_VERSION 220 to fix a header warning. winealsa.drv: Increase buffer size to fix format-overflow warning. winmm: Fix int-to-pointer and pointer-to-int casts warnings.
Sven Baars (6): shell32: Fix a memory leak (Valgrind). urlmon/tests: Fix a test failure on Windows XP. wintrust/tests: Initialize cbStruct in the ObjectTrust tests. gdi32/tests: Update expected ExtCreateRegion behavior to represent newer Windows. gdi32/tests: Remove some Win9x workarounds from the clipping tests. d3dcompiler/tests: Fix some d3dcompiler_47 test failures on Windows 8.
Vijay Kiran Kamuju (1): include: Add missing FOLDERID's to knownfolders.h.
Vincent Povirk (3): mscoree: Update Wine Mono to 4.9.4. Revert "mscoree: Call mono_thread_manage in GC Unsafe mode.". msi: Use integers internally for MSIDBOPEN constants.
Zebediah Figura (56): strmbase/transform: Reimplement IQualityControl for the source pin. ntoskrnl.exe: Pass the correct output size to IoBuildDeviceIoControlRequest(). http.sys: Factor out get_connection(). http.sys: Allow receiving entity body data. httpapi: Implement HttpReceiveRequestEntityBody(). d3d9/tests: Reorder two occlusion query tests to work around a timeout with llvmpipe. d3d8/tests: Flush events after sending SC_MAXIMIZE. userenv: Fix a copy-paste error. userenv: Use wide character string literals. userenv: Set the ProgramFiles(x86) and CommonProgramFiles(x86) environment variables. userenv: Add a set_env_var() helper. ntdll: Set the ProgramFiles(x86) and CommonProgramFiles(x86) environment variables. ntoskrnl.exe: Implement many more properties in IoGetDeviceProperty(). ntoskrnl.exe: Stub IRP_MN_QUERY_CAPABILITIES for root-enumerated devices. ntoskrnl.exe: Implement IRP_MN_QUERY_DEVICE_RELATIONS for root-enumerated devices. ntoskrnl.exe: Trace the call to AddDevice(). ntdll: Fix a typo. winebus.inf: Add new INF file and copy it to the INF directory. winebus.sys: Implement AddDevice(). wineboot: Create a root-enumerated device object for winebus. wine.inf: Remove registration for the winebus service. winebus.sys: Initialize and teardown the HID backends while the bus FDO is still extant. ntoskrnl.exe: IoInvalidateDeviceRelations() receives the parent PDO. ntoskrnl.exe: BusRelations is also used when devices are removed. winebus.sys: Stop creating a setupapi device. d3d9/tests: Add another flush to work around an intermittent test failure on fvwm2. wined3d: Introduce wined3d_stateblock_set_viewport(). d3d9: Handle stateblocks in d3d9_device_SetViewport(). d3d8: Handle stateblocks in d3d8_device_SetViewport(). ddraw: Handle stateblocks in d3d_device7_SetViewport(). configure: Install winebus.inf. setupapi: Fix setting filepart in SetupCopyOEMInfW(). setupapi: Set the device class in SetupDiBuildDriverInfoList(). setupapi: Set the DeviceDesc value in SetupDiInstallDevice(). wined3d: Introduce wined3d_stateblock_set_scissor_rect(). d3d9: Handle stateblocks in d3d9_device_SetScissorRect(). wined3d: Introduce wined3d_stateblock_set_index_buffer(). d3d9: Handle stateblocks in d3d9_device_SetIndices(). wined3d: Introduce wined3d_stateblock_set_base_vertex_index(). d3d8: Handle stateblocks in d3d8_device_SetIndices(). wined3d: Introduce wined3d_stateblock_set_stream_source(). d3d9: Handle stateblocks in d3d9_device_SetStreamSource(). d3d8: Handle stateblocks in d3d8_device_SetStreamSource(). wined3d: Introduce wined3d_stateblock_set_stream_source_freq(). d3d9: Handle stateblocks in d3d9_device_SetStreamSourceFreq(). advapi32/tests: Remove a todo_wine. wined3d: Introduce wined3d_stateblock_set_light(). d3d9: Handle stateblocks in d3d9_device_SetLight(). d3d8: Handle stateblocks in d3d8_device_SetLight(). ddraw: Handle stateblocks in d3d_device7_SetLight(). ddraw/tests: Expand test_coop_level_d3d_state(). wined3d: Also reset the device state to the default in wined3d_device_uninit_3d(). wined3d: Introduce wined3d_stateblock_set_light_enable(). d3d9: Handle stateblocks in d3d9_device_LightEnable(). d3d8: Handle stateblocks in d3d8_device_LightEnable(). ddraw: Handle stateblocks in d3d_device7_LightEnable().
Zhiyi Zhang (8): winex11.drv: Introduce is_virtual_desktop(). winex11.drv: Use a separate virtual desktop display device handler. winex11.drv: Get virtual desktop size limit from the host primary display. winex11.drv: Move the desktop fullscreen check after desktop init. winex11.drv: Fix NoRes mode handler having an empty mode. user32/tests: Fix test failures on multiple monitor setup. user32/tests: Fix monitor test failures on some systems. d3d8: Fix incorrect types.
-- Alexandre Julliard [email protected]