Jinoh Kang
17e6ef6d7e
server: Correctly expose composited parent window and its child on position change.
...
Skip redrawing the composited child window when the window rect and
visible region stays the same, since we're taking the union of the old
and new visible regions.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=53153
Signed-off-by: Jinoh Kang <jinoh.kang.kr@gmail.com>
2022-11-04 19:23:56 +01:00
Jacek Caban
5b56bad50b
server: Make window struct a server object.
...
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-02-09 18:37:32 +01:00
Rémi Bernon
769a2616ae
server: Track desktop users per thread instead of per process.
...
As some thread may use a different desktop from their process.
This fixes the user32 win tests, which leaks a desktop that never gets
closed. The test_shell_window test creates a new desktop, which spawns
explorer.exe process, incrementing the desktop user count to 1, then
associates the desktop to a thread, which closes it on exit.
Never the user count is incremented to 2, and closing the thread desktop
doesn't either check whether the desktop process should be terminated.
Reversely, it is possible to create a desktop, associate it with a
thread /and/ a process, and this time the desktop process would be
terminated when the process exits, although the thread may still be
using it.
Tracking the users per thread is more robust and fixes the problem as
set_thread_desktop increments the desktop user count, and thread exit
decrements it.
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-04-21 21:00:33 +02:00
Paul Gofman
74a74556dd
server: Support creating processes with specified parent.
...
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=47817
Signed-off-by: Paul Gofman <gofmanp@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-12-13 13:13:36 +01:00
Alexandre Julliard
8698b600c6
server: Map region to the window DPI in redraw_region().
...
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
d3876ca84e
server: Add a couple of rectangle helper functions.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-07-05 19:08:34 +02:00
Alexandre Julliard
70dd64cf97
server: Add a helper function to validate a window handle.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-08-30 18:08:36 +09:00
Alexandre Julliard
c6f12bd9cc
server: Notify all listeners when the contents of the clipboard have changed.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-08-30 16:33:04 +09:00
Alexandre Julliard
5962df3a1e
server: Cleanup clipboard information upon window destruction.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-08-24 00:16:43 +09:00
Alexandre Julliard
fcc977c139
server: Store the desktop object names inside their window station.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-01-20 22:40:58 +09:00
Piotr Caban
3f1bbdcae3
server: Send mouse hardware messages to thread owning top-most window.
...
Also don't limit mouse message scope to top-most window when message
comes from SendInput or window that generated the event is
minimized/transparent.
2014-10-17 17:51:52 +09:00
Piotr Caban
de21941178
user32: Change SetForegroundWindow behavior on windows with parent and no WS_CHILD flag.
2014-03-27 16:18:05 +01:00
Vincent Povirk
4c83138f72
server: Implement RegisterHotKey/UnregisterHotKey.
2011-06-21 14:51:08 +02:00
Alexandre Julliard
3909f51122
server: Don't queue a hardware WM_MOUSEMOVE if the position hasn't changed.
2011-04-06 21:07:04 +02:00
Alexandre Julliard
21e86f60ec
server: Post a message to the desktop window when the cursor clip rectangle changes.
2011-04-05 13:36:57 +02:00
Alexandre Julliard
85358b10f3
server: Add a more general way of posting messages to the desktop window.
2011-04-05 13:36:56 +02:00
Alexandre Julliard
6576703fac
server: Return the time of last change along with the current cursor position.
2011-03-31 20:15:56 +02:00
Alexandre Julliard
c64c36f573
server: Store all desktop cursor information in a separate structure.
2011-03-31 19:54:22 +02:00
Alexandre Julliard
c7efa293f0
server: Invoke low-level hardware hooks directly from the server side.
2011-03-02 21:26:13 +01:00
Alexandre Julliard
06b78feade
server: Store the global key state in the server.
2011-02-25 13:50:25 +01:00
Alexandre Julliard
02e8174067
server: Store the cursor clip rectangle in the server.
2011-02-25 13:50:19 +01:00
Alexandre Julliard
183c41b49a
server: Store the global cursor position in the server.
2011-02-25 11:25:15 +01:00
Alexandre Julliard
ac4aac747c
server: Make the foreground thread input per-desktop instead of global.
2011-02-25 11:19:46 +01:00
Alexandre Julliard
d56ac06260
server: Mirror the window region for RTL windows in get/set_window_region and redraw_window.
2010-09-27 21:07:11 +02:00
Dmitry Timoshkov
66e981ec8d
server: Make layered windows transparent for mouse messages.
2010-06-11 14:16:03 +02:00
Alexandre Julliard
538b24747c
server: Free client-side user handles at process exit.
2009-10-15 17:56:04 +02:00
Alexandre Julliard
9018e13c5e
server: Add support for allocating purely client-side user handles.
2009-10-12 17:07:04 +02:00
Alexandre Julliard
cc55fd317a
server: Make hook procedures client_ptr_t instead of void pointers.
2008-12-29 17:35:35 +01:00
Alexandre Julliard
0cd3ff6cbe
server: Make the class opaque data a client_ptr_t instead of a void pointer.
2008-12-29 17:24:39 +01:00
Alexandre Julliard
cb2788efaf
server: Add a module_handle_t type to represent client-side module handles.
2008-12-29 16:41:44 +01:00
Alexandre Julliard
31282b3f63
server: Define an lparam_t type for message parameters that can hold all sorts of data.
2008-12-10 16:01:50 +01:00
Alexandre Julliard
81e6edbda9
server: Add support for a top-level message parent window in parallel to the desktop window.
2008-06-25 14:43:39 +02:00
Alexandre Julliard
34fe91bf2b
user32: Implemented EnumDesktopWindows.
2008-03-19 11:13:46 +01:00
Alexandre Julliard
0f273c17ff
server: Added data_size_t type to represent sizes in the server protocol.
...
Make it an unsigned int to save some space on Win64, if we need to
transfer more than 4Gb over the server pipe something is seriously
wrong.
2006-07-26 11:11:03 +02:00
Mike McCormack
db9b557b54
server: Make wparam and lparam values unsigned long for win64 compatability.
2006-06-08 10:39:58 +02:00
Jonathan Ernst
360a3f9142
Update the address of the Free Software Foundation.
2006-05-23 14:11:13 +02:00
Alexandre Julliard
90af5a0d17
server: Connect to the window station and desktop specified by startup info.
...
If window station and desktop aren't inherited from the parent, don't
connect to them from the server, but from the USER init code where we
can get the proper values from the startup info structure.
2006-03-27 12:57:17 +02:00
Alexandre Julliard
f978f615d8
server: Support for closing the desktop window.
...
If a thread is owning the desktop window, when all other users of the
desktop have exited, signal the owner to close the desktop (with a 1
second delay).
2006-03-06 21:02:24 +01:00
Alexandre Julliard
251be542ac
server: Infrastructure for having a thread own the desktop window.
2006-03-06 20:37:52 +01:00
Alexandre Julliard
ead9b062e3
Added a struct unicode_str to encapsulate object names.
2005-11-18 16:31:18 +00:00
Alexandre Julliard
4a40b2eefb
Store the global hooks table in the desktop object.
2005-07-11 18:05:50 +00:00
Alexandre Julliard
5ad90c0f37
Tie windows and thread input structures to a specific desktop.
...
Support multiple desktop windows (one per desktop object).
Use the window desktop to find the window station to use for property
atoms.
2005-07-11 13:30:23 +00:00
Alexandre Julliard
499e343d9f
Export the winstation and desktop structures to avoid having to write
...
too many accessor functions.
2005-07-11 10:55:53 +00:00
Alexandre Julliard
8c518808b8
Put in place the basic infrastructure to allow supporting multiple
...
desktop windows.
2005-07-08 11:37:40 +00:00
Alexandre Julliard
248f4b29fe
Store the global atom table in the process window station.
2005-07-07 11:29:23 +00:00
Alexandre Julliard
45128bdcdd
Make the clipboard information local to the process window station.
2005-06-29 20:13:36 +00:00
Alexandre Julliard
78a3e63377
The desktop of a new thread should be set from the process initial
...
desktop, not from the parent thread.
Fixed a couple of bugs in the desktop name handling.
2005-06-09 12:07:12 +00:00
Alexandre Julliard
1bf96e09a9
Beginnings of support for window stations and desktops.
2005-06-08 18:44:50 +00:00
Alexandre Julliard
63342353bc
Store a bitmap of active hooks on the client side to try to avoid
...
server calls for hooks that are not set.
2005-05-11 13:03:15 +00:00