Commit Graph

3123 Commits

Author SHA1 Message Date
Brendan Shanks b1b1399dd6 user32: Improve DisplayConfigGetDeviceInfo() stub.
Signed-off-by: Brendan Shanks <bshanks@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-05 20:53:02 +02:00
Brendan Shanks 4e795a8d81 user32: Improve QueryDisplayConfig() stub.
Signed-off-by: Brendan Shanks <bshanks@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-05 20:53:02 +02:00
Brendan Shanks af89ccc535 user32/tests: Add QueryDisplayConfig() and DisplayConfigGetDeviceInfo() tests.
Signed-off-by: Brendan Shanks <bshanks@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-05 20:53:00 +02:00
Brendan Shanks 91cf6d716e user32: Move DisplayConfig stubs together into sysparams.c.
Signed-off-by: Brendan Shanks <bshanks@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-05 20:52:42 +02:00
Zhiyi Zhang 449ca2fbf9 user32: Leave critical section before calling callbacks in EnumDisplayMonitors().
Previously, callbacks were called with a critical section held. It was
intended that monitor handles passed to callbacks should always be valid.
But it created a deadlock condition when callbacks call other functions
which try to grab the critical section using a different thread. Tests
also show that a monitor handle can be invalid after a display change.
So do not hold the critical section when calling callbacks. Monitor
handles will be checked when passed to GetMonitorInfo(), which is the
sole function that consumes HMONITORs.

Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-05 20:52:36 +02:00
Zhiyi Zhang 065690be32 user32/tests: Test EnumDisplayMonitors().
Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-05 20:52:33 +02:00
Zhiyi Zhang 1bb2b16042 user32/tests: Fix a ChangeDisplaySettings() test.
Overlapped monitor rectangles should be automatically
adjusted to avoid overlaps.

Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-05 20:52:30 +02:00
Zhiyi Zhang 4369aaae57 user32/tests: Flush messages after mode changes.
test_ChangeDisplaySettingsEx() can generate so many posted messages
for display change events that USERPostMessageLimit is reached and
ERROR_NOT_ENOUGH_QUOTA is returned for PostMessage(). Call flush_events()
after mode changes to limit message post rate.

Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=48586
Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-05 20:52:27 +02:00
Alexandre Julliard 5d5b6a1f35 user32: Use the standard Interlocked* functions.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-02 15:10:10 +02:00
Rémi Bernon 20399931da user32: Don't read preparsed data on non-HID devices.
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-28 11:18:36 +02:00
Roman Pišl f04d8a270e user32/edit: Avoid division by zero in EDIT_EM_LineScroll_internal.
Signed-off-by: Roman Pišl <rpisl@seznam.cz>
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-20 17:19:11 +02:00
Roman Pišl d5e591d3cb user32/edit: Avoid division by zero during initialization.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=19239
Signed-off-by: Roman Pišl <rpisl@seznam.cz>
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-20 17:19:11 +02:00
Zebediah Figura 19c6524e48 user32: Also scan for mouse devices in GetRawInputDeviceList().
Halo: Spartan Strike attempts to discover input devices using rawinput. It
expects to be able to open at least one device file with a zero access mask. It
does not perform any other operations on the file.

Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-10 12:42:30 +02:00
Zebediah Figura da87589ee2 user32: Rename hid_devices_* variables to rawinput_devices_*.
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-10 12:42:28 +02:00
Zebediah Figura 9e195ba9a6 user32: Rename the "hid_device" structure to "device".
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-10 12:42:25 +02:00
Alexandre Julliard b88730d8af user32: Use standard dlopen() instead of the libwine wrappers.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-07 14:26:20 +02:00
Mathew Hodson a8dee2a23f user32/tests: Don't report cursor handle since it always changes.
Signed-off-by: Mathew Hodson <mathew.hodson@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-06 21:21:42 +02:00
Serge Gautherie be3cda6ec0 tests: Remove now useless forced _WIN32_WINNT defines.
Signed-off-by: Serge Gautherie <winehq-git_serge_180711@gautherie.fr>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-23 11:30:25 +01:00
Serge Gautherie 7770e26f2d include: Remove now useless forced _WIN32_IE defines.
Signed-off-by: Serge Gautherie <winehq-git_serge_180711@gautherie.fr>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-20 19:38:38 +01:00
Rémi Bernon cf2148e17c user32/tests: Add new test to validate WM_CANCELMODE message.
The ShowWindow(SW_SHOWMINIMIZED):overlapped test shows that the
message should not be sent in general. This additional test shows that
we should still send the message if a menu is active.

Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-19 22:09:32 +01:00
Serge Gautherie d0fd12b909 include: Remove now useless forced WINVER defines.
Signed-off-by: Serge Gautherie <winehq-git_serge_180711@gautherie.fr>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-19 13:15:16 +01:00
Francois Gouget a909baeb4e tests: Report all errors when failing to wait for a child process.
Report the line number where the test failed to wait for the child so
one can identify which child process did not behave as expected.
Also wait_child_process() is meant for the general case so report
all non-crash error cases as test failures so they are accounted for.
Omit the "winetest_" prefix to match the other Wine test functions and
so the underlying winetest_wait_child_process() function can be wrapped
with the usual line-capturing macros.

Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=48651
Signed-off-by: Francois Gouget <fgouget@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-17 10:51:44 +01:00
Serge Gautherie aa384d3642 tools: Remove 0x0501 API versions forced by winapi_test.
Signed-off-by: Serge Gautherie <winehq-git_serge_180711@gautherie.fr>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-13 20:10:44 +01:00
Jefferson Carpenter bc9d4eb55a user32: Always initialize module in load_desktop_driver.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=48742
Signed-off-by: Jefferson Carpenter <jeffersoncarpenter2@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-12 21:18:18 +01:00
Zebediah Figura 50aeb5e777 user32: Do not delay-load setupapi.
This fixes a deadlock in the Steel Series Engine installer, between the
"user_section" lock and the loader lock.

Currently user32 takes the "user_section" lock during THREAD_DETACH, i.e. while
the loader lock is held. However, it is also possible for a thread to take the
locks in the reverse order. The observed path is:
 - register_builtin()
 - LoadCursorA()
 - get_display_bpp()
 - get_display_dc()
 - CreateDCW()
 - GetDeviceCaps(DESKTOPHORZRES)
 - GetSystemMetrics(SM_CXVIRTUALSCREEN)
 - EnumDisplayMonitors()
 - update_monitor_cache()

Since we now rely on setupapi for fundamental tasks such as determining screen
size, it doesn't make much sense to delay-load it.

Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-10 18:04:35 +01:00
Dmitry Timoshkov 6ac2ba3e3c server: Ignore low word of a class instance when looking up for a window class.
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-02-27 23:34:51 +01:00
Dmitry Timoshkov e2c0f51312 user32/tests: Add some tests for classes with non-zero low word instance.
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-02-27 23:34:51 +01:00
Nikolay Sivov 56c75015c9 user32/tests: Link to activation context API directly.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-02-24 18:41:02 +01:00
Sven Baars 9bd51fff5d user32: Add EnableNonClientDpiScaling stub.
Signed-off-by: Sven Baars <sbaars@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-02-19 20:34:13 +01:00
Akihiro Sagawa e98dbf2e94 user32: Fix wsprintfW %C conversion.
Signed-off-by: Akihiro Sagawa <sagawa.aki@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-02-19 20:26:53 +01:00
Akihiro Sagawa 20ff7ad9ee user32: Add wsprintfW %C tests.
Signed-off-by: Akihiro Sagawa <sagawa.aki@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-02-19 20:26:53 +01:00
Akihiro Sagawa 7cc21d0330 user32: Fix wsprintfA %C conversion.
Signed-off-by: Akihiro Sagawa <sagawa.aki@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-02-19 20:26:53 +01:00
Akihiro Sagawa 3b5619a8f4 user32/tests: Add wsprintfA %C conversion tests.
Signed-off-by: Akihiro Sagawa <sagawa.aki@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-02-19 20:26:53 +01:00
Akihiro Sagawa 92014581b6 user32/tests: Use wide string literals in wsprintf tests.
Signed-off-by: Akihiro Sagawa <sagawa.aki@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-02-19 20:26:53 +01:00
Jacek Caban be6e6fb23c user32: Initialize module handle to NULL for null driver.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-02-16 20:47:12 +01:00
Zhiyi Zhang ae157bec34 user32: Handle NULL device and not NULL mode parameters in ChangeDisplaySettingsExW().
This makes sure that user graphics drivers has a valid device name when a
DEVMODE is specified.

Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-02-12 16:59:18 +01:00
Zhiyi Zhang 12fa0ccea5 user32: Handle NULL device parameter in EnumDisplaySettingsExW().
This makes sure that user graphics drivers always have a valid device name.

Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-02-12 16:59:07 +01:00
Rémi Bernon b636f9cd5e user32/tests: Fix some format-overflow warnings.
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-02-12 16:54:03 +01:00
Jacek Caban beaef92010 user32: Allow using null driver as a normal graphics driver.
When explicitly requested by config, Wine will use null driver in the
same way as we allow using it for invisible winstations.

Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-02-12 08:51:25 +01:00
Akihiro Sagawa fa8a9a81e6 user32: Fix wsprintfW %S conversion.
Signed-off-by: Akihiro Sagawa <sagawa.aki@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-02-10 22:46:24 +01:00
Akihiro Sagawa c8f46313e4 user32/tests: Add wsprintfW %S conversion tests.
Signed-off-by: Akihiro Sagawa <sagawa.aki@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-02-10 22:46:24 +01:00
Akihiro Sagawa 08bf605acb user32: Fix wsprintfA %S conversion.
Signed-off-by: Akihiro Sagawa <sagawa.aki@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-02-10 22:46:24 +01:00
Akihiro Sagawa e375f0d457 user32/tests: Add wsprintfA %S conversion tests.
Signed-off-by: Akihiro Sagawa <sagawa.aki@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-02-10 22:46:24 +01:00
Zhiyi Zhang b5603287b7 user32: Fix ChangeDisplaySettingsExW() minimum size check.
Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-02-10 22:46:24 +01:00
Zhiyi Zhang 7d94e9d0c3 user32: Trace more ChangeDisplaySettingsExW() flags.
Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-02-10 22:46:24 +01:00
Zhiyi Zhang 981fb4edb3 user32: Move ChangeDisplaySettingsExW() common code to user32.
Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Ken Thomases <ken@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-02-10 22:46:22 +01:00
Dmitry Timoshkov f5906a5cfb user32/tests: Add some tests for Static/SS_BITMAP control.
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-02-07 21:30:39 +01:00
Zhiyi Zhang 153b82b0b3 user32/tests: Add more EnumDisplaySettings tests.
Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-02-04 21:30:27 +01:00
Zhiyi Zhang 0097035698 user32/tests: Add more ChangeDisplaySettings tests.
Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-02-04 21:30:27 +01:00
Brendan Shanks 22e0f03e92 user32: Support SetWindowPos() SWP_ASYNCWINDOWPOS flag.
Signed-off-by: Brendan Shanks <bshanks@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-01-31 10:47:54 +01:00