Commit Graph

159 Commits

Author SHA1 Message Date
Jacek Caban d1290b6ec7 user32: Introduce user_driver_funcs struct.
And use it instead of USER_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-11-11 18:39:48 +01:00
Jacek Caban 89530400a0 win32u: Move NtUserGetLayeredWindowAttributes implementation from user32.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-08 17:32:06 +01:00
Gabriel Ivăncescu 54eea6f072 user32: Don't save maximized pos of top-level wnds covering whole work rect.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=51672
Signed-off-by: Gabriel Ivăncescu <gabrielopcode@gmail.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-01 17:06:53 +02:00
Gabriel Ivăncescu d8252025d1 user32: Add a helper to retrieve the work rect.
Signed-off-by: Gabriel Ivăncescu <gabrielopcode@gmail.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-01 17:06:28 +02:00
Piotr Caban a1ca90d68a user32: Depend on SetWindowPos to refresh window manager hints in SetWindowRgn.
Otherwise both on Linux and Mac, the window will not restore title bar
when it becomes non-shaped until it's e.g. moved.

Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-27 21:25:56 +02:00
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 60f6a37f95 user32: Add a default ShowWindow implementation.
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-17 20:37:18 +02:00
Rémi Bernon 07b9f3f609 user32: Factor IsRectEmpty driver check in ShowWindow.
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-17 20:37:04 +02: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
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
Alexandre Julliard 9cc9236556 user32: Build with msvcrt.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-09-21 15:15:38 +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
Piotr Caban 5bb4e4b36c user32: Support undocumented SC_SIZE flag that can be used to move window.
Fixes main window moving in Quicken 2020.

Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-07-30 16:33:22 +02: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
Francois Gouget ba1aa24378 user32: Fix the spelling of a TRACE() message.
Signed-off-by: Francois Gouget <fgouget@free.fr>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-12-09 23:47:46 +01:00
Paul Gofman 2ac268436b user32: Fix coords in WINDOWPOS for WM_NCCALCSIZE sent from SetWindowPos().
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=40777
Signed-off-by: Paul Gofman <gofmanp@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-10-21 20:39:15 +02:00
Paul Gofman 480bae108c user32: Return correct showCmd from GetWindowPlacement() for other process window.
Fixes black screen in SWTOR after window minimize / maximize or
switching window in full screen mode.

Signed-off-by: Paul Gofman <gofmanp@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-08-26 22:39:50 +02:00
Zebediah Figura 50bc18201d user32: Move iconic windows as their border instead of their icon.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-02-20 09:19:15 +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
Zebediah Figura c45f60450a user32: Allow clicking the restore and maximize boxes for on minimized windows.
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
Zebediah Figura 04707a342f user32: Correctly place minimized windows.
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
Zebediah Figura 73684e84b6 user32: Reimplement ArrangeIconicWindows() using minimized metrics.
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
Zebediah Figura 118f333ac2 user32: Use the C[XY]MINIMIZED rather than C[XY]ICON size for minimized windows.
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
Zebediah Figura 119e215e3e user32: SetWindowPos() shouldn't change the client rect of a minimized window.
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 87d1a4a329 server: Scale coordinates in get_window_children_from_point based on DPI awareness.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-08-27 13:32:57 +02:00
Alexandre Julliard 72644bb603 user32: Switch to the window DPI awareness to process WM_GETMINMAXINFO.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-08-24 20:12:05 +02:00
Alexandre Julliard 0da23418ab user32: Switch to the window DPI awareness in ShowWindow().
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-08-24 20:12:05 +02:00
Alexandre Julliard 87e49000a1 user32: Scale coordinates in Get/SetWindowPlacement() based on DPI awareness.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-08-24 20:12:05 +02:00
Alexandre Julliard 8de1b2c2ce user32: Scale coordinates in MapWindowPoints() based on DPI awareness.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-08-24 20:12:05 +02:00
Alexandre Julliard 7068a85604 user32: Scale window dimensions in DeferWindowPos() based on DPI awareness.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-08-23 12:17:06 +02:00
Alexandre Julliard 4233caa7b8 user32: Scale window dimensions in SetWindowPos() based on DPI awareness.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-08-23 12:16:48 +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 ae7acbfe4b user32: Remove FIXMEs from physical<->logical mapping functions.
Also group them with the other DPI functions.

Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-07-13 19:03:27 +02:00
Alexandre Julliard 85f81948de server: Store the surface rectangle in the server.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-07-11 15:44:15 +02:00
Alexandre Julliard 3cd66cf7b1 user32: Don't copy window bits to or from the dummy surface.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-07-04 16:07:50 +02:00
Alexandre Julliard 026309888c user32: Only pass the new valid rectangle to the server.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-06-05 17:19:53 +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 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 bc956d8aa6 user32: Avoid repeatedly fetching the window rectangles in SetWindowPos.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-05-07 11:49:17 +02:00
Alexandre Julliard 1f17051028 Revert "user32: SetWindowPos() should check the final window position in screen coords before adding SWP_NOMOVE."
This reverts commit 38a76ecb03.
It has no effect, the coordinates are identical either way.

Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-05-06 11:21:57 +02:00
Zebediah Figura 9b2dd2db6a user32: Kill focus before minimizing a window.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-02-02 14:42:39 +01:00
Huw Davies 9933a0fc86 user32: Initialize length before calling GetWindowPlacement().
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-10-30 21:30:45 +01:00
Zebediah Figura 292450b07f user32: Calculate a window's minimized size even if it's already minimized.
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-07-18 20:43:35 +02:00
Alexandre Julliard 5b9c69b93f user32: Copy the bits of child windows when the parent has a surface.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-07-13 11:05:16 +02:00
Alexandre Julliard 4e13c06f3b user32: Add a helper function for copying bits from a window surface.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-07-13 11:05:15 +02:00
Alexandre Julliard 4f88a57ce7 server: Return the top surface window even when not using OpenGL.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-07-13 11:05:15 +02:00
Austin English 3b9e49b4d8 user32: Add LogicalToPhysicalPoint/PhysicalToLogicalPoint stubs.
Signed-off-by: Austin English <austinenglish@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-05-19 20:26:34 +02:00
Fabian Maurer d594ba3322 user32: Only send position-change messages when needed.
Signed-off-by: Fabian Maurer <dark.shadow4@web.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-02-20 10:43:15 +01:00