Commit Graph

3238 Commits

Author SHA1 Message Date
Alexandre Julliard 0d017b12cf user32/tests: Remove todo from a test that seems to succeed reliably now.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-03-10 20:44:47 +01:00
Rémi Bernon cd1b87cd66 user32: Only get input codepage when needed.
Calling get_input_codepage involves doing quite a lot of things, and
doing it for every message type, when it's not needed, is inefficient.

Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-03-04 21:43:27 +01:00
Zhiyi Zhang 92a8c69194 user32: Fix memory leaks.
Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-03-01 10:10:06 +01:00
Zhiyi Zhang a11ffeec96 user32/tests: Add optional messages to test sequences.
Fix a possible test failure on Win10 2009.

Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-02-22 18:48:07 +01:00
Zhiyi Zhang 068cf6f02c user32/tests: Fix a test failure on w7u_2qxl TestBot VM.
Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-02-22 18:41:55 +01:00
Zhiyi Zhang 3898ad408b user32: Send a WM_ACTIVATE message after restoring a minimized top level window.
The WmShowRestoreMinimizedOverlappedSeq message sequence in tests
clearly show that there is a WM_ACTIVATE message at the end of
ShowWindow() calls after restoring a minimized window, and it's
not from SetFocus().

Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=47507
Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-02-18 22:39:34 +01:00
Rémi Bernon 9942948097 user32/tests: Add tests for SetKeyboardState / GetKeyState interactions.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=26269
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-02-17 22:21:13 +01:00
Rémi Bernon 70e67d1d20 user32/tests: Add tests for GetKeyState / GetKeyboardState interactions.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=26269
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-02-17 22:21:13 +01:00
Rémi Bernon e10cf973d5 user32/tests: Add more tests for GetKeyState from background thread.
It looks like that GetKeyState is supposed to catch key presses when
called from a background thread even after its thread message queue and
thread input structures have been created.

This happens in Bioshock 2 Remaster, and causes the game to stay forever
on a "Press space to continue" screen, as the thread checking for space
key press calls GetKeyState repeatedly (and PeekMessage), although it's
in background.

Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=26269
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-02-17 22:21:13 +01:00
Francois Gouget 7a9745022b user32: Fix a typo in a comment.
Signed-off-by: Francois Gouget <fgouget@free.fr>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-02-08 20:55:40 +01:00
Gabriel Ivăncescu dd417540bb user32: Keep toplevel minimized windows offscreen if they're already.
Some applications (e.g. Lego Worlds, Hitman 2) use (-32000,-32000) to
determine whether a window is minimized.

Signed-off-by: Gabriel Ivăncescu <gabrielopcode@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-02-04 23:11:22 +01:00
Gabriel Ivăncescu 9ef33b5e20 user32/tests: Test minimized window placement after trying to change position.
Signed-off-by: Gabriel Ivăncescu <gabrielopcode@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-02-04 23:11:22 +01:00
Zhiyi Zhang 8fad0b146d gdi32: Report real VREFRESH values for GetDeviceCaps() with display DCs.
Even though MSDN says 0 and 1 are both valid and they represent the default refresh rate of display
hardware. Some games rely on the value being the real refresh rate and use it to cap frame rates.

Fix an issue that Sakuna: Of Rice and Ruin reports monitors of 1Hz and cap to 1fps.

Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-01-27 21:12:06 +01:00
Zhiyi Zhang 2006f76b5f gdi32: Report correct HORZRES and VERTRES values for GetDeviceCaps() with DCs on a specific monitor.
Fix DLC Quest uses the primary monitor size to render when in fullscreen mode on non-primary monitors.

Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-01-27 21:12:01 +01:00
Zhiyi Zhang 640f7081db user32/tests: Add display DC tests.
Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-01-27 21:11:58 +01:00
Zebediah Figura 32f5dfde0d user32: Send WM_CANCELMODE to the current capture window after initializing a modal dialog.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=48860
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-01-07 21:20:58 +01:00
Zebediah Figura c75e065288 user32/tests: Add some tests for release of capture via modal dialogs.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-01-07 21:20:56 +01:00
Zebediah Figura 522b230142 user32/tests: Add some tests for WM_CANCELMODE.
In particular, test sending WM_CANCELMODE to a parent of the capture window.

Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-01-07 21:20:53 +01:00
Esme Povirk bc2e193d9a user32/tests: Don't kill explorer to test shell window.
Killing explorer breaks later tests. We can create a new desktop
without a shell instead.

Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=48142
Signed-off-by: Esme Povirk <esme@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-12-29 21:19:01 +01:00
Paul Gofman aaf05c106e user32: Add stub for SetDisplayConfig().
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=50420
Signed-off-by: Paul Gofman <pgofman@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-12-29 21:08:52 +01:00
Jacek Caban fcf545f449 winapi: Use __alignof__ on clang.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-12-16 15:30:07 +01:00
Zhiyi Zhang c84fd7cd86 user32/tests: Test that monitor enumeration is not affected by window stations and desktops.
Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-12-08 22:25:59 +01:00
Zhiyi Zhang bc4d22b3dc user32/tests: Test that monitor handles are user32 handles.
Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-12-08 22:25:59 +01:00
Arkadiusz Hiler b4abe3889f user32: Fix WM_DEVICECHANGE handling.
WM_DEVICECHANGE's lParam can be either a pointer to a variant of
DEV_BROADCAST_HDR or an immediate value (usually 0) depending on
the wParam's value.

This fixes a crash when broadcasting WM_DEVICECHANGE with
wParam = DBT_DEVNODES_CHANGED, lParam = 0.

Signed-off-by: Arkadiusz Hiler <ahiler@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-12-04 21:23:27 +01:00
Francois Gouget 9468e7617c user32/tests: Fix the spelling of a win_skip() message.
Signed-off-by: Francois Gouget <fgouget@free.fr>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-25 22:51:35 +01:00
Jeff Smith ab1a979268 user32: Only child windows should not receive broadcast messages.
Signed-off-by: Jeff Smith <whydoubt@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-17 21:00:14 +01:00
Jeff Smith 81dec8de77 user32/tests: Test message broadcast to parented windows.
Signed-off-by: Jeff Smith <whydoubt@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-17 21:00:09 +01:00
Jeff Smith e4538d9a11 user32/tests: Simplification of some message broadcast tests.
Signed-off-by: Jeff Smith <whydoubt@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-17 21:00:05 +01:00
Jeff Smith e92cc29d6c user32/tests: Change misleading variable name and type.
Signed-off-by: Jeff Smith <whydoubt@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-17 21:00:01 +01:00
Paul Gofman 073b6dc240 user32: Avoid holding display_dc_section when creating display DC.
get_display_dc() may be locking display_dc_section at the end of
user driver initialization in LoadCursorA() called from
register_builtin_classes(). If the driver initialization initiated
in CreateDCW() goes in parallel with the initialization started
elsewhere without holding display_dc_section, the process can deadlock.

Fixes random lockup on start in Hammerting.

Signed-off-by: Paul Gofman <pgofman@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-17 19:35:25 +01:00
Zhiyi Zhang 73756156f4 user32/tests: Pass a struct DEVMODEA pointer to expect_dm() for monitor tests.
No need to pass parameters via struct copying.

Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-13 13:17:59 +01:00
Nikolay Sivov df0c5d23ef user32: Remove usp10 from delayed imports.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-10 10:57:13 +01:00
Zhiyi Zhang e6b2da3173 user32: Use current width or height if a mode specifies zero width or height for ChangeDisplaySettingsExW().
Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-10-27 20:24:23 +01:00
Zhiyi Zhang 2756cabbe4 user32/tests: Test changing to a valid depth but zero width and height display mode.
Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-10-27 20:24:21 +01:00
Arkadiusz Hiler f7edc32818 user32: Implement GetMouseMovePointsEx().
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=36873
Signed-off-by: Arkadiusz Hiler <ahiler@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-10-13 22:37:16 +02:00
Jacek Caban 14d97c261b user32: Support control characters in null driver VkKeyScanEx implementation.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=49894
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-09-25 16:50:19 +02:00
Zhiyi Zhang 9501a3d5ab user32/tests: Add display orientation tests.
Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-09-22 12:28:42 +02:00
Rémi Bernon b16f552e19 gdi32: Use explicit CDECL in window_surface_funcs.
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-09-22 11:30:00 +02:00
Alexandre Julliard 6456973f0a user32: Use wide character string literals for system parameter entries.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-09-21 19:09:59 +02:00
Alexandre Julliard 5ad25c293b user32: Use wide character string literals.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-09-21 19:09:59 +02:00
Alexandre Julliard 9cc9236556 user32: Build with msvcrt.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-09-21 15:15:38 +02:00
Alexandre Julliard 148d3aa461 user32: Move PNG support to a new Unix library.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-09-21 15:15:36 +02:00
Zhiyi Zhang af0ae9df1e user32/tests: Fix a test failure.
Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-09-15 21:43:45 +02:00
Rémi Bernon d50c310da9 user32: Return TRUE from ShowWindow(SW_SHOW) if already visible.
Instead of calling SendMessage, similarly to the SW_HIDE case.

Based on a patch by Kimmo Myllyvirta <kimmo.myllyvirta@gmail.com>.

Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=39731
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-09-11 16:55:40 +02:00
Fabian Maurer 93937a53f1 user32/menu: Store application defined value as pointer.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=49805
Signed-off-by: Fabian Maurer <dark.shadow4@web.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-09-10 10:29:11 +02:00
Zhiyi Zhang 23ce18d5e5 user32: Always wait for the desktop process to be ready in load_desktop_driver().
Having a __wine_display_device_guid property in the desktop window only guarantees that the window
is created. Explorer.exe still has to finish setting up virtual desktop, display settings etc.
load_desktop_driver() needs to make sure that the desktop initialization is done before allowing
applications to call user32 driver functions. Otherwise, they might get incorrect data. This race
condition became apparent after aadae4d1ea, which adds ~100ms to the
initialization process.

Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=49762
Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-09-01 12:30:43 +02:00
Zhiyi Zhang 1aa7c9af90 winex11.drv: Store a full display mode in registry.
Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-08-26 11:08:46 +02:00
Zhiyi Zhang fd29fe4ea7 user32/tests: Add more registry display mode tests.
Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-08-26 11:08:44 +02:00
Fabian Maurer 7b998c266e user32: Set default user preferences to enable animations.
This allows games like solitaire, chess titans, etc. to
use animations.

Signed-off-by: Fabian Maurer <dark.shadow4@web.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-08-24 11:17:26 +02:00
Alex Henrie a13f78cca7 user32: Comment out SetWindowFullScreenState.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=49728
Signed-off-by: Alex Henrie <alexhenrie24@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-08-24 11:16:34 +02:00