Commit Graph

255 Commits

Author SHA1 Message Date
Rémi Bernon 454712a94d user32: Add a default WindowPosChanging implementation.
Which creates an off-screen window surface for top-level non-layered or
SLWA-layered windows.

Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-20 21:48:57 +02:00
Zhiyi Zhang 9b2f59cb94 user32: Use get_primary_monitor_rect() helper.
Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-18 21:25:00 +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 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
Matteo Bruni f0e9cf1145 user32: Make sure update_window_state() is always executed on the owner thread.
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-05 16:54:35 +02:00
Brendan Shanks c8dbb0c4c1 user32: Fix behavior of GetWindowInfo(0, NULL).
Windows doesn't do a NULL check on the WINDOWINFO pointer.

Signed-off-by: Brendan Shanks <bshanks@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-09-24 11:34:18 +02:00
Alexandre Julliard d5a372abbb include: Move inline assembly definitions to a new wine/asm.h header.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-05-14 13:45:07 +02:00
Francois Gouget 1631f69022 user32: Make WIN_SetOwner() static.
Signed-off-by: Francois Gouget <fgouget@free.fr>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-05-09 08:20:31 -05:00
Nikolay Sivov c2f4e2b338 user32: Make GetWindowLong() fail for some values on 64-bit.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-03-01 17:48:26 +01:00
Nikolay Sivov d00ed8e7b9 user32: Do not touch some of the values on 64-bit with SetWindowLong().
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-03-01 17:48:26 +01:00
Zebediah Figura 8dade1bc86 user32: Get rid of icon titles.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-02-19 20:51:19 +01:00
Alexandre Julliard 7507541a5b user32: Fix wraparound check to avoid gcc optimization.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-11-26 20:17:41 +01:00
Alex Henrie 67a33fce6f user32: Add stub for SetWindowCompositionAttribute.
Based on a patch by Louis Lenders.

Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=44787
Signed-off-by: Alex Henrie <alexhenrie24@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-10-08 09:34:56 +02:00
Nikolay Sivov 78236592df user32: When registering redirected class use correct base class name.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=45689
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-08-27 10:57:39 +02:00
Alexandre Julliard 56b05ded78 user32: Switch to the window DPI awareness in update_window_state().
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-08-24 20:12:05 +02:00
Alexandre Julliard 3bf279e7da user32: Switch to the window DPI awareness in SetParent().
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-08-24 20:12:05 +02:00
Alexandre Julliard c5a6925676 user32: Scale coordinates in WIN_GetRectangles() based on DPI awareness.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-08-24 20:12:05 +02:00
Alexandre Julliard 110443acef user32: Scale initial window dimensions in CreateWindow() based on DPI awareness.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-08-23 12:13:25 +02:00
Michael Stefaniuc b2fc591748 user32: Use the ARRAY_SIZE() macro.
Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-08-14 10:16:02 +02:00
Alexandre Julliard 898f4b6c6a user32: Take DPI awareness into account in GetDpiForMonitorInternal().
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-07-17 17:39:56 +02:00
Zhiyi Zhang bfe6826a16 user32: Return FALSE for invalid handle in IsWindowEnabled().
GetWindowLong() returns 0 if passed an invalid window handle,
causing IsWindowEnabled() to incorrectly report TRUE.

Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-07-17 17:39:56 +02:00
Alexandre Julliard 1373e00400 user32: Return the full MINMAXINFO data from WINPOS_GetMinMaxInfo().
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-07-16 10:38:46 +02:00
Alexandre Julliard 52be6f0ecc user32: Rename rectWindow to window_rect for consistency.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-06-05 17:03:16 +02:00
Alexandre Julliard 0a75a1b62b user32: Rename rectClient to client_rect for consistency.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-06-05 17:00:38 +02:00
Alexandre Julliard 51e8d579bb user32: Don't send cross-process message for GetWindowTextLength().
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-05-22 21:58:02 +02:00
Alexandre Julliard f7b5b8975c user32: Store the window DPI in the server.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-05-17 14:10:23 +02:00
Alexandre Julliard 8a70b70f42 user32: Update the window DPI awareness in SetParent().
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-05-15 16:27:57 +02:00
Alexandre Julliard 433788736b user32: Store the window DPI awareness in the server.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-05-15 16:27:36 +02:00
Alexandre Julliard e95d0c6849 user32: Take into account the offset between old and new parent in SetParent().
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-05-07 12:00:17 +02:00
Alexandre Julliard 08b19c6f67 user32: Don't wait for other threads to process WM_NCDESTROY.
Based on a patch by Andrew Eikum.

Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-04-27 16:24:43 +02:00
Alexandre Julliard 460b4e7adf user32: Destroy thread windows by going through the handle table.
This makes sure we catch child windows that may not have been deleted
yet.

Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-04-27 16:24:36 +02:00
Alexandre Julliard 3f97ba3f46 user32: Partially implement GetWindowDpiAwarenessContext().
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-04-02 20:47:10 +02:00
Michael Stefaniuc e8411d22d5 user32: Use the available ARRAY_SIZE() macro.
Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-04-02 16:02:53 +02:00
Nikolay Sivov 9b9f97e3f6 user32: Add redirected class registration callback.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-03-20 11:41:44 +01:00
Akihiro Sagawa 8960cf3d44 user32: Add more ex-style trace messages.
Signed-off-by: Akihiro Sagawa <sagawa.aki@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-03-12 20:32:14 +01:00
Michael Müller 76f135e599 user32: Add stubs for GetWindowDisplayAffinity and SetWindowDisplayAffinity.
Signed-off-by: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-03-09 10:40:44 -06:00
Nikolay Sivov a21b16d8cb user32: Fix names returned with GetClassName().
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-02-05 10:00:07 +01:00
Nikolay Sivov df715e5a9a user32: Make it possible to create windows for redirected classes.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-01-31 21:07:24 +01:00
Austin English 797a746fc2 user32: Add GetGestureInfo stub.
Signed-off-by: Austin English <austinenglish@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-08-12 19:35:26 +09:00
Austin English 24cea1b77b user32: Add CloseTouchInputHandle/GetTouchInputInfo stubs.
Signed-off-by: Austin English <austinenglish@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-08-12 19:35:17 +09:00
Austin English 9d6bcf3c8c user32: Add UnregisterTouchWindow stub.
Signed-off-by: Austin English <austinenglish@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-08-12 19:34:07 +09:00
Zebediah Figura fe95de98b5 user32: Move internal message from EnableWindow to WIN_SetStyle().
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-04-25 11:47:20 +02:00
Piotr Caban 34b108dd1d user32: Switch to normal window drawing on SetLayeredWindowAttributes call.
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-04-19 20:02:55 +02:00
Zebediah Figura 0ac74d180a user32: Always send WM_CANCELMODE when disabling a window.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-03-29 10:20:54 +02:00
Zebediah Figura b4fea4f2f0 user32: Don't call ReleaseCapture() in EnableWindow().
Killing the capture is already handled in DefWindowProc().

Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-03-29 10:11:55 +02:00
Piotr Caban a878f0a02a user32: Don't call IsChild with NULL window in EnableWindow.
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-03-21 20:52:38 +01:00
Huw Davies e883d0ec60 user32: Hardcode the GetWindowLong values for the desktop window to avoid a server round-trip.
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-02-02 19:50:34 +01:00
Sebastian Lackner 994b06a97d user32: Do not create IME window for HWND_MESSAGE windows.
Signed-off-by: Sebastian Lackner <sebastian@fds-team.de>
Signed-off-by: Akihiro Sagawa <sagawa.aki@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-09-02 23:34:27 +09:00
Alexandre Julliard bddab0e7f8 server: Add a release_clipboard request, and notify the owner and viewer on release.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-09-01 22:02:04 +09:00
Akihiro Sagawa 911d269be8 user32: Create and destroy the default IME window implicitly.
Signed-off-by: Akihiro Sagawa <sagawa.aki@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-08-29 16:45:32 +09:00
Józef Kucia 4277b055de user32: Prevent resetting WS_MINIMIZE through SetWindowLong.
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-08-18 11:57:25 +09:00
Michael Stefaniuc 07ada9a85b user32: Use SetRect() instead of open coding it.
Signed-off-by: Michael Stefaniuc <mstefani@redhat.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-07-19 19:59:30 +09:00
Alexandre Julliard fb6304119a user32: Add helper functions to get and set the window internal flags.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-06-13 19:46:30 +09:00
Jacek Caban bce9e1d2bd user32: Make SetWindowLongW hotpatchable.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-06-09 12:11:44 +09:00
Alexandre Julliard 596c16cc13 user32: Post notification to the desktop window for window creation/activation.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-05-31 13:53:15 +09:00
Dmitry Timoshkov e37e0f2743 user32: Avoid dereferencing NULL pointer in a trace.
Signed-off-by: Sebastian Lackner <sebastian@fds-team.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-04-07 15:04:07 +09:00
Jacek Caban 3ece2ab7ee user32: Added debug traces to SetParent.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-02-25 00:25:01 +09:00
Dmitry Timoshkov b08c400fe2 user32: Call the EnumChildWindows callback using a wrapper.
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-12-10 00:12:43 +09:00
Alexandre Julliard e5ef460d7d user32: Preserve the surface contents when changing the WS_EX_LAYERED bit.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-12-10 00:12:43 +09:00
Alexandre Julliard 2e56a912b4 user32: SetLayeredWindowAttributes is no longer a stub.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-12-10 00:12:39 +09:00
Sebastian Lackner 19a3f6b5cb user32: Make sure explorer.exe process is spawned for the correct desktop.
If an invalid combination of winstation/desktop is active for the
current process, the handle inheritance doesn't work, and no desktop is
created.

Signed-off-by: Sebastian Lackner <sebastian@fds-team.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-12-04 13:22:55 +09:00
Sebastian Lackner 6bfa3896fc server: Check winstation visibility in server to avoid race-conditions.
GetDesktopWindow incorrectly assumes, that the process window station is
still the same one, which was used earlier when changing the desktop.
By moving the visibility check to wineserver we can also avoid
wineserver roundtrip for invisible desktops.

Signed-off-by: Sebastian Lackner <sebastian@fds-team.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-12-04 13:18:00 +09:00
Alexandre Julliard bbc849df8d user32: Reduce the idle timeout before flushing surfaces to make it less noticeable.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-11-26 00:12:51 +09:00
Alex Henrie 5b53c0b88b user32: Avoid double initialization.
Signed-off-by: Alex Henrie <alexhenrie24@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-11-06 21:59:08 +09:00
Jactry Zeng b007a98e1a user32: Add driver entry point for FlashWindowEx.
Signed-off-by: Jactry Zeng <jzeng@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-10-13 23:35:26 +09:00
Jactry Zeng f22760d210 user32: Implement semi-stub for FlashWindowEx.
Signed-off-by: Jactry Zeng <jzeng@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-10-12 22:09:56 +09:00
Nikolay Sivov 516b21f4ee user32: Don't send WM_GETTEXT from GetWindowText() with invalid buffer length. 2015-07-28 09:52:16 +02:00
Nikolay Sivov ee72b0fdc7 user32: Initialize buffer before sending WM_GETTEXT. 2015-07-28 09:52:13 +02:00
Alexandre Julliard 25d9fc3ecc server: Check for the current owner window on the server side for releases. 2015-06-03 19:29:49 +09:00
Alex Henrie 5c48752784 user32: Fall back to downscaling the big icon for ICON_SMALL2. 2015-05-14 18:57:26 +09:00
Jacek Caban da72de967b user32: Allow making window visible by WM_SETREDRAW message. 2015-03-13 21:53:19 +09:00
Sebastian Lackner d5ba7451a3 user32: Avoid sending window messages in FindWindowExW. 2014-11-18 22:10:38 +09:00
Hugh McMaster 0fa8ae7b52 user32: Fix spelling in a comment. 2014-09-15 18:25:49 +02:00
Austin English 6458aca761 user32: Add a stub for RegisterTouchWindow. 2014-05-14 11:25:48 +02:00
Stefan Dösinger ece57889d6 user32: Make SetWindowTextA/W hookable. 2014-03-03 17:46:50 +01:00
Piotr Caban 367577c0d6 user32: Check WS_CHILD style in IsChild function. 2014-02-27 09:51:50 -06:00
Frédéric Delanoy e7c5c9ae9b user32: Use BOOL type where appropriate. 2014-02-20 11:18:37 +01:00
Alexandre Julliard b4b817b907 user32: Only wait for the desktop process when necessary. 2014-01-30 21:49:32 +01:00
Alexandre Julliard 6bf64f0ac2 user32: Fail creation of the desktop window earlier on when it already exists. 2014-01-28 12:51:59 +01:00
Frédéric Delanoy 77ee42fd33 user32: Use BOOL type where appropriate. 2013-11-05 11:15:06 +01:00
Alexandre Julliard c25c019883 user32: Automatically load comctl32 when one of its classes is requested. 2013-10-28 18:41:04 +01:00
Alexandre Julliard fe441a0682 user32: Register classes once the graphics driver has been loaded, except for the desktop class. 2013-10-24 19:01:54 +02:00
Alexandre Julliard 7370a56543 user32: Delay registration of the builtin classes until the first window is created. 2013-10-16 17:22:19 +02:00
Qian Hong 26683adf36 user32: Make CreateWindowExA and CreateWindowExW hotpatchable. 2013-05-24 11:06:03 +02:00
Alexandre Julliard b7bf7f01b3 user32: Avoid releasing a potentially null pointer. 2013-02-11 11:46:13 +01:00
Dmitry Timoshkov e27801e93b user32: Make sure that window's normal_rect is initialized at window creation time. 2012-10-15 13:31:09 +02:00
Alexandre Julliard cc7bf355c5 user32: Add support for setting the window surface visible region. 2012-10-09 15:22:56 +02:00
Alexandre Julliard cf799f5852 user32: Store the pixel format in the window structure. 2012-10-09 09:51:29 +02:00
Alexandre Julliard 6eea257fd1 user32: Add a helper function to update the window visible state. 2012-10-09 09:48:11 +02:00
Alexandre Julliard b9c847a426 user32: Don't use SWP_SHOWWINDOW when the WS_VISIBLE style was already toggled manually. 2012-10-09 09:45:09 +02:00
Alexandre Julliard e41a482890 user32: Add a Wine-specific entry point to set the pixel format of a window. 2012-10-03 23:08:22 +02:00
Alexandre Julliard b30e84d580 user32: Don't redraw anything when WS_VISIBLE is toggled manually. 2012-10-02 19:52:44 +02:00
Alexandre Julliard 24eee97d21 user32: Add a driver entry point for UpdateLayeredWindow. 2012-10-01 13:20:20 +02:00
Alexandre Julliard 61f9789c31 user32: Also call set_window_pos when the WS_EX_LAYERED bit is changed. 2012-10-01 13:17:40 +02:00
Alexandre Julliard 1d78f43000 user32: Call the SetWindowStyle driver entry point before updating the window position. 2012-10-01 13:12:29 +02:00
Alexandre Julliard 72337011db user32: Create a dummy window surface for windows that shouldn't be painted to. 2012-10-01 13:08:51 +02:00
Alexandre Julliard 53e4e504b9 user32: Add tests for UpdateLayeredWindowIndirect and fix the behavior of the ULW_EX_NORESIZE flag. 2012-09-27 17:45:43 +02:00
Alexandre Julliard 9f29dcdc2e user32: Don't send messages on position changes in UpdateLayeredWindow. 2012-09-13 13:50:15 +02:00
Alexandre Julliard 7304445a7e user32: Maintain a list of active window surfaces and flush them periodically. 2012-09-06 12:38:13 +02:00