Zebediah Figura
97bf2e7e1e
user32: Free the created icon handle when using LR_COPYFROMRESOURCE.
...
Spotted by John Sullivan.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=52207
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-12-16 22:06:38 +01:00
John Sullivan
4a20082167
user32: Call DestroyIcon() to delete icon handles in CopyImage().
...
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=52207
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-12-16 22:06:18 +01:00
Zebediah Figura
197f2ee6c0
user32: Do not use SetDIBits() in create_masked_bitmap().
...
The given bitmap is in DDB format, not DIB format.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=51296
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-12-16 11:44:25 +01:00
Rémi Bernon
a80f76819c
user32: Throttle device list updates from GetRawInputDeviceList.
...
Up to once every 2s.
This fixes a regression from c2c78a2fe0
,
which caused severe FPS drop in Samurai Shodown.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=51282
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-12-15 12:10:01 +01:00
Rémi Bernon
6a30f12eef
user32: Update rawinput devices on WM_INPUT_DEVICE_CHANGE reception.
...
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=51282
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-12-15 12:09:38 +01:00
Torge Matthies
28b77c9b72
win32u: Return an NTSTATUS from NtUserEnumDisplayDevices.
...
Signed-off-by: Torge Matthies <openglfreak@googlemail.com>
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-12-10 22:00:13 +01:00
Jacek Caban
bfc3a28670
winevulkan: Use KeUserModeCallback for debug callbacks.
...
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-12-09 10:52:34 +01:00
Ziqing Hui
d112d746c7
user32: Pass correct flags in CreateIconFromResource().
...
Signed-off-by: Ziqing Hui <zhui@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-12-09 10:41:32 +01:00
Ziqing Hui
3b26e293bc
user32/tests: Call Destroy{icon, cursor}() before GetIconInfo().
...
For icons/cursors created by CreateIconFromResource(),
GetIconInfo() still succeed after they were destroyed,
which indicates that these icons/cursors are shared.
Signed-off-by: Ziqing Hui <zhui@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-12-09 10:41:28 +01:00
Ziqing Hui
9e74b207cf
user32: Add an is_shared member to cursoricon_object.
...
It makes sure that shared icon/cursor created by CreateIconFromResourceEx()
won't be destroyed by Destroy{Icon,Cursor}().
Signed-off-by: Ziqing Hui <zhui@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-12-08 10:45:36 +01:00
Ziqing Hui
1746ed9c7d
user32/tests: Test CreateIconFromResourceEx() with resource bits.
...
Signed-off-by: Ziqing Hui <zhui@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-12-08 10:45:36 +01:00
Ziqing Hui
14c2874700
user32/tests: Test creating shared icon by CreateIconFromResourceEx().
...
The tests show that shared icon created by CreateIconFromResourceEx()
won't be destroyed by DestroyIcon(). However, a second call to it for the
same icon bits will return a different handle.
Signed-off-by: Ziqing Hui <zhui@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-12-08 10:00:25 +01:00
Ziqing Hui
f111327095
user32/tests: Fix cursor state test failures for win10.
...
Signed-off-by: Ziqing Hui <zhui@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-12-08 10:00:21 +01:00
Jacek Caban
9596e7f2a4
win32u: Use user driver for wine_get_vulkan_driver.
...
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-12-08 09:57:56 +01:00
Jacek Caban
a48127034d
win32u: Move 55aa brush implementation from user32.
...
And don't expose __wine_make_gdi_object_system.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-12-07 20:24:42 +01:00
Jacek Caban
66d2321a39
user32: Set %ecx to rect param when calling monitor enum proc.
...
This was accidentally removed by 318673405c
.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-12-07 20:24:05 +01:00
Zhiyi Zhang
9c9274990e
uxtheme: Do not hook DefDlgProc() for theming.
...
Currently there is no need to hook DefDlgProc(). Tests show that dialog theming shouldn't be
implemented in DefDlgProc().
Also fix a double free bug because WM_DESTROY in UXTHEME_DefDlgProc() calls CloseThemeData() even
when the theme handle is not opened when handling WM_CREATE in UXTHEME_DefDlgProc(). The bug can
be demonstrated by running comctl32/tests/propsheet.c tests with Light theme.
Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-12-07 12:22:49 +01:00
Jacek Caban
fdf3015816
win32u: Move system parameters implementation from user32.
...
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-12-06 11:00:06 +01:00
Jacek Caban
3570b09133
win32u: Move DPI mapping from EnumDisplayMonitors.
...
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-12-06 10:59:05 +01:00
Jacek Caban
7aab49d736
win32u: Move DPI mapping from GetMonitorInfoW.
...
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-12-06 10:58:57 +01:00
Jacek Caban
b877c78ec5
win32u: Move NtUserGetDpiForMonitor implementation from user32.
...
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-12-06 10:58:49 +01:00
Jacek Caban
d08808d8f3
win32u: Implement NtUserGetSystemDpiForProcess.
...
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-12-06 10:58:39 +01:00
Jacek Caban
aab62429c2
win32u: Implement NtUserGetProcessDpiAwarenessContext and NtUserSetProcessDpiAwarenessContext.
...
And use them in user32.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-12-06 10:58:27 +01:00
Jacek Caban
bc12c971c3
user32: Provide partial null driver.
...
Provide functions that we still call from user32 to avoid crashes on wow64.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-12-06 10:58:18 +01:00
Jacek Caban
72e3c91380
win32u: Move NtUserGetKeyboardLayoutName implementation from user32.
...
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-12-03 16:56:08 +01:00
Jacek Caban
a25148ae46
win32u: Move NtUserGetCursor implementation from user32.
...
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-12-03 16:56:08 +01:00
Jacek Caban
c87925bae3
win32u: Move NtUserShowCursor implementation from user32.
...
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-12-03 16:56:08 +01:00
Jacek Caban
3867d253ed
win32u: Move NtUserChangeDisplaySettings implementation from user32.
...
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-12-02 20:20:40 +01:00
Jacek Caban
318673405c
win32u: Move NtUserEnumDisplayMonitors implementation from user32.
...
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-12-02 20:20:39 +01:00
Jacek Caban
45dcaf02fc
win32u: Move GetMonitorInfo implementation from user32.
...
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-12-02 20:20:39 +01:00
Jacek Caban
1f2c3e8538
win32u: Move NtUserEnumDisplaySettings implementation from user32.
...
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-12-01 18:13:55 +01:00
Jacek Caban
8b9b2580a5
user32: Use NtUserGetDisplayConfigBufferSizes.
...
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-12-01 18:13:55 +01:00
Jacek Caban
d7133c97d9
user32: Invalidate cache in update_monitor_cache when modification time matches current time.
...
Also preserve last error.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-30 22:07:21 +01:00
Jacek Caban
f6abd9d140
win32u: Implement NtUserEnumDisplayDevices.
...
And use it in user32.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-30 22:07:21 +01:00
Jacek Caban
f8817ce2d5
win32u: Introduce UpdateDisplayDevice user driver entry point.
...
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-30 22:07:21 +01:00
Dmitry Timoshkov
ecd1c66476
user32: Add exception handler to GetWindowText.
...
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-22 22:20:51 +01:00
Jacek Caban
0487c826fb
user32: Move register_builtin_classes call to GetDesktopWindow.
...
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-19 18:31:39 +01:00
Jacek Caban
898ce07406
user32: Don't load cursor inside user lock in register_builtin.
...
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-19 18:31:39 +01:00
Jacek Caban
5204622efa
win32u: Move NtUserScrollDC implementation from user32.
...
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-17 15:27:03 +01:00
Jacek Caban
d60708a17f
win32u: Move NtUserGetMouseMovePointsEx implementation from user32.
...
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-17 15:26:57 +01:00
Jacek Caban
dc03ca3baf
win32u: Move NtUserUnregisterHotKey implementation from user32.
...
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-17 15:26:51 +01:00
Jacek Caban
f65fa2f019
win32u: Move NtUserGetKeyboardLayoutList implementation from user32.
...
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-17 15:26:45 +01:00
Jacek Caban
a32f044154
win32u: Move NtUserActivateKeyboardLayout implementation from user32.
...
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-17 15:26:37 +01:00
Jacek Caban
8932c8678c
win32u: Move NtUserToUnicodeEx implementation from user32.
...
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-17 15:26:30 +01:00
Jacek Caban
da01911cc1
win32u: Move NtUserGetOpenClipboardWindow implementation from user32.
...
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-16 17:44:42 +01:00
Jacek Caban
65f3b653fa
win32u: Move NtUserGetKeyNameText implementation from user32.
...
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-16 17:44:42 +01:00
Jacek Caban
563a233284
win32u: Move NtUserGetKeyboardLayout implementation from user32.
...
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-16 17:44:42 +01:00
Jacek Caban
8d34353878
win32u: Move NtUserMapVirtualKeyEx implementation from user32.
...
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-16 17:44:42 +01:00
Jacek Caban
8f52632ca9
win32u: Move NtUserVkKeyScanEx implementation from user32.
...
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-16 17:44:42 +01:00
Jacek Caban
05db9f63e1
win32u: Move NtUserSetKeyboardState implementation from user32.
...
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-16 17:44:42 +01:00