Zebediah Figura
f393ab2636
server: Zero-initialize rawinput_message structures before passing them to queue_rawinput_message() (Valgrind).
...
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-13 13:05:23 +02:00
Alexandre Julliard
c954e5b9e6
server: Avoid using wine/port.h.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-07 18:03:11 +02:00
Rémi Bernon
fc64aa7e7c
server: Send HID report data with the WM_INPUT messages.
...
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=50506
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-31 12:31:21 +02:00
Rémi Bernon
109de60873
server: Support variable sized hardware_msg_data allocation.
...
The RIM_TYPEHID messages will have to carry the variable length HID
report.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=50506
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-31 12:30:49 +02:00
Rémi Bernon
1128a37e77
user32: Implement WM_INPUT / RIM_TYPEHID message dispatch.
...
Without any HID report data for now.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=50506
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-31 12:30:41 +02:00
Rémi Bernon
e8498788e8
server: Add hardware_msg_data size for variable size messages.
...
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=50506
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-31 12:30:36 +02:00
Rémi Bernon
4e956dc0fe
server: Implement WM_INPUT_DEVICE_CHANGE message dispatch.
...
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=50506
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-11 21:51:46 +02:00
Rémi Bernon
3481dc05e9
server: Broadcast rawinput messages when desktop is NULL.
...
HID rawinput hardware messages are sent from winedevice.exe, which is
attached to the services desktop. We need to broadcast its messages to
all (interactive) desktops instead.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=50506
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-11 21:51:44 +02:00
Rémi Bernon
371be0bc1c
server: Add support for RIDEV_DEVNOTIFY rawinput flag.
...
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=50506
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-11 21:51:42 +02:00
Rémi Bernon
2d8f98fd4e
server: Add an explicit message field in rawinput_message.
...
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=50506
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-11 21:51:40 +02:00
Rémi Bernon
427168ba5a
server: Add process argument to find_rawinput_device.
...
And use it to find registered HID rawinput devices.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=50506
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-11 21:51:37 +02:00
Rémi Bernon
2fcc1d0ecd
server: Split the fallback to desktop async keystate.
...
When current thread doesn't have a message queue. It's going to be
removed later anyway.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=26269
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=27238
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=31899
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=35907
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=45385
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-04-02 22:52:34 +02:00
Rémi Bernon
6444e4fade
server: Remove tid from set_key_state request.
...
As it is always set to GetCurrentThreadId().
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=26269
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=27238
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=31899
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=35907
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=45385
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-04-02 22:51:50 +02:00
Rémi Bernon
626870abe2
server: Remove tid from get_key_state request.
...
And replace it with an async param if we want the global async keystate.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=26269
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=27238
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=31899
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=35907
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=45385
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-04-02 22:51:21 +02:00
Rémi Bernon
50798b1320
server: Grow rawinput buffer instead of allocating its maximum size.
...
Call of Duty: WWII call GetRawInputBuffer with very large client buffer,
so the maximum buffer size may be large and it causes an unnecessary
load on wineserver when it allocates and clears the reply buffer.
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-02-09 11:39:47 +01:00
Alexandre Julliard
d6ef9401b3
server: Use the object type information to implement access mapping.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-02-05 22:53:46 +01:00
Alexandre Julliard
c6f2aacb57
server: Add a type descriptor to all server objects.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-02-04 21:25:32 +01:00
Arkadiusz Hiler
f7edc32818
user32: Implement GetMouseMovePointsEx().
...
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=36873
Signed-off-by: Arkadiusz Hiler <ahiler@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-10-13 22:37:16 +02:00
Alexandre Julliard
2e51f9aae3
server: Add an object operation to retrieve an object name.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-09-22 16:55:08 +02:00
Rémi Bernon
1e7378d80c
user32: Implement GetRegisteredRawInputDevices.
...
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-08-13 21:17:11 +02:00
Huw Davies
434871fd1b
server: Remove unnecessary 'remove' parameter from accept_hardware_message request.
...
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-07-07 19:24:27 +02:00
Rémi Bernon
3a9edf9aad
user32: Implement GetRawInputBuffer.
...
CoD: WWII uses it to read mouse motion instead of listening to WM_INPUT
messages.
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-30 21:07:37 +02:00
Rémi Bernon
27a52d0414
server: Implement RegisterRawInputDevices RIDEV_INPUTSINK flag.
...
This flag allows applications to receive rawinput messages while in
background. They have to specify a target hwnd, which will receive them,
and the messages will carry a RIM_INPUTSINK wparam if the process wasn't
foreground.
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-25 23:08:30 +02:00
Rémi Bernon
8cf7fe3b7c
server: Implement RegisterRawInputDevices RIDEV_NOLEGACY flag.
...
This makes legacy mouse window messages such as WM_MOUSEMOVE and others,
to stop being sent, including to low-level hooks. The desktop mouse
state should still be udpated.
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-25 23:08:30 +02:00
Rémi Bernon
4d844b449e
server: Pass msg and wparam to update_input_key_state helper.
...
So that we can update individual states in next patch.
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-25 23:08:30 +02:00
Rémi Bernon
b48887bb01
server: Split cursor position update to update_desktop_cursor_pos.
...
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-25 23:08:30 +02:00
Rémi Bernon
57124b9905
server: Implement rawinput inter-process message dispatch.
...
This delivers the rawinput messages to the correct process, regardless
of where the input was received.
As for now RIDEV_INPUTSINK is still not implemented, this only fixes
the case where input is injected in a background process and where it
should not receive rawinput -as in the test- or when cursor moves over
a background window and the foreground process should have received
rawinput messages.
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-25 23:08:30 +02:00
Piotr Caban
af89b53cef
server: Use monotonic clock for SetTimer timeouts.
...
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-09 21:04:04 +02:00
Zebediah Figura
f5f633e712
server: Validate the filter window handle in get_message.
...
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-09-18 21:55:16 +02:00
Nikolay Sivov
a476ae1991
server: Use KEYEVENTF_UNICODE mode only when virtual key code was not specified.
...
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-07-01 14:41:39 +02:00
Jacek Caban
b2a546c92d
server: Introduce kernel_object struct for generic association between server and kernel objects.
...
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-03-26 13:55:15 +01:00
Sebastian Lackner
5ff6a11697
server: Improve handling of cursor position clipping for empty rectangle.
...
Based on a patch by Kevin Buhr.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=38791
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=42631
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-02-18 16:04:03 +01:00
Andre Heider
27ff04e2ab
server: Fix keyboard hardware message regression.
...
Signed-off-by: Andre Heider <a.heider@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-11-12 10:28:09 +01:00
Alexandre Julliard
4da1c4370b
user32: Implement GetCurrentInputMessageSource().
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-11-05 19:12:12 +01:00
Alexandre Julliard
383cf211da
server: Add a helper function to allocate a hardware message.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-11-05 19:12:12 +01:00
Michael Stefaniuc
9e365e4ecc
server: Use the ARRAY_SIZE() macro.
...
Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-10-23 13:56:55 +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
f55db7882d
server: Add link_name and unlink_name object operations.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-02-04 21:07:19 +09:00
Piotr Caban
cefdbd59b7
server: Avoid infinite loop when we're out of timers in set_win_timer server call.
...
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-01-26 23:26:59 +09:00
Anton Baskanov
9220556560
user32: Correctly update caret state in the server in SetCaretPos.
...
Signed-off-by: Anton Baskanov <baskanov@gmail.com>
Signed-off-by: Sebastian Lackner <sebastian@fds-team.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-01-25 18:27:31 +09:00
Qian Hong
499f0454c9
server: Remove out of date comment.
...
Signed-off-by: Qian Hong <qhong@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-11-20 22:19:28 +09:00
Sebastian Lackner
55c4a108d7
server: Only send WM_WINE_CLIPCURSOR for forced clip resets.
...
Signed-off-by: Sebastian Lackner <sebastian@fds-team.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-11-12 22:17:02 +09:00
Sebastian Lackner
8723d3455e
server: Add fallback to desktop keystate in get_key_state wineserver call.
2015-07-10 15:07:45 +09:00
Sebastian Lackner
4439cd433d
server: attach_thread_input shouldn't create queues for foreign threads.
2015-05-18 19:59:28 +09:00
Aric Stewart
3599f956e2
server: Fixup input windows on thread_detach.
2015-05-06 20:54:55 +09:00
Alexandre Julliard
247275aec3
server: Return a valid position also in posted messages.
2015-04-27 18:04:59 +09:00
Aric Stewart
bed7e69a14
server: Do not replace focus and active windows with NULL on thread_attach_input.
2015-04-23 17:48:33 +09:00
Dmitry Timoshkov
c0e876cb9e
server: GetQueueStatus should clear only checked queue changed bits.
2015-04-21 17:32:53 +09:00
Piotr Caban
03f645a76b
server: Filter WM_QUIT message in PeekMessage call if PM_QS_POSTMESSAGE was not specified.
2015-02-09 17:40:40 +09:00
Piotr Caban
f747e5c8c9
user32: Don't move mouse hardware messages to other threads queues.
2014-10-17 17:51:55 +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
Felix Janda
e3faab267c
server: Add missing includes of poll.h.
2014-06-12 18:05:08 +02:00
Vincent Povirk
417585661c
server: Clear the queue's QS_SMRESULT bit when sending a new message.
2014-05-20 21:26:52 +02:00
Alexandre Julliard
202d91e551
Revert "server: Restore the masks from the previous get_message when a wait is satisfied."
...
This reverts commit f846312f46
.
The masks will be stored on the client side instead.
2014-04-10 16:28:52 +02: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
Alexandre Julliard
f846312f46
server: Restore the masks from the previous get_message when a wait is satisfied.
2014-03-19 16:50:32 +01:00
Alexandre Julliard
d4cd051cef
server: Store abandoned state as a flag in the wait structure.
2013-08-27 23:48:37 +02:00
Alexandre Julliard
39644bb309
server: Pass a wait queue entry to the signaled/satisfied object functions.
2013-08-27 23:48:36 +02:00
Alexandre Julliard
de9f5b33b8
server: Store the wait structure in the wait entry and add an accessor function for the thread.
2013-08-27 23:48:31 +02:00
Henri Verbeet
54efd8a430
server: Only remove WM_INPUT messages from the queue if PM_REMOVE is set.
2012-09-13 10:24:05 +02:00
Henri Verbeet
c6fcc0255c
user32: Add rawinput keyboard support.
2012-09-12 12:47:13 +02:00
Henri Verbeet
faaf3d388e
user32: Add rawinput mouse support.
2012-09-11 18:06:34 +02:00
Henri Verbeet
5befb959dd
user32: Implement RegisterRawInputDevices().
2012-09-10 11:44:19 +02:00
Alexandre Julliard
36c76dcc24
winex11: Update only the key state on KeymapNotify without sending fake key events.
2012-02-02 17:19:34 +01:00
Alexandre Julliard
02442b52a4
user32: Return the cursor position in send_hardware_message and use it to update the driver's position.
2012-01-09 12:14:36 +01:00
Alexandre Julliard
5a30e31806
server: Optionally return the global key state when queueing a hardware message.
2011-12-15 14:46:53 +01:00
Marcus Meissner
df92979b39
server: Removed NULL check after usage (Coverity).
2011-09-23 12:38:54 +02:00
Francois Gouget
ff8f6e8662
user32: When destroying a window, preserve the first WM_QUIT message that was posted to it.
2011-08-23 11:50:59 +02:00
Vincent Povirk
79556aeab7
server: Implement QS_HOTKEY.
2011-07-06 19:43:26 +02:00
Marcus Meissner
67320c448b
server: Do not promote lparam to signed int (Coverity).
2011-06-28 11:57:51 -05:00
Alexandre Julliard
6b0d9ff1cd
server: Allow setting a zero-size clip rectangle.
2011-06-21 15:04:24 +02:00
Vincent Povirk
cc0ea69867
server: Post WM_HOTKEY when a hotkey is pressed.
2011-06-21 14:51:14 +02:00
Vincent Povirk
4c83138f72
server: Implement RegisterHotKey/UnregisterHotKey.
2011-06-21 14:51:08 +02:00
Alexandre Julliard
f6b0ce3c44
server: Don't queue low-level hooks to a hung queue.
2011-06-17 11:54:43 +02:00
Alexandre Julliard
8aa1a26886
user32: Pass a NULL rectangle in the ClipCursor entry point when clipping is reset because of focus change.
2011-04-22 17:51:28 +02:00
Alexandre Julliard
abe5440e32
server: Also return the previous cursor position in the set_cursor request.
2011-04-20 20:29:16 +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
34b8c639ce
server: Warp the mouse inside the clipping rectangle when it's set.
2011-04-06 20:36:36 +02:00
Alexandre Julliard
39bac05188
server: Queue a WM_MOUSEMOVE message when the cursor position is explicitly changed.
2011-04-06 20:29:38 +02:00
Alexandre Julliard
9c8bbcd1cd
server: Fix a memory leak.
2011-04-06 20:00:40 +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
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
2b96875b6a
server: Reset the cursor clip rectangle when the foreground thread changes.
2011-03-30 13:28:04 +02:00
Alexandre Julliard
0b8571e3dc
server: Fix checking of X button flags when updating the input key state.
2011-03-07 23:48:03 +01:00
Alexandre Julliard
34efca05c9
server: Fix the contents of the mouse data for the low-level hook.
2011-03-07 11:07:35 +01: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
0f18d2bb09
server: Set the message code for mouse input on the server side.
2011-03-02 11:59:38 +01:00
Alexandre Julliard
9731d44921
server: Set the message code for keyboard input on the server side.
2011-03-02 11:34:59 +01:00
Alexandre Julliard
02e30f5f77
server: Pass the original hardware input data to the server and set the message parameters on the server side.
2011-03-02 11:34:15 +01:00
Alexandre Julliard
bc4afb0786
server: Don't pass a thread id to send_hardware_message, determine it from the window.
2011-03-01 13:21:58 +01:00
Alexandre Julliard
22468ec65c
server: Maintain the "set since last time" bit for the global keystate.
2011-02-28 22:28:21 +01:00
Alexandre Julliard
b9e4b5a28c
server: Fill the key state in mouse events from the server-side state.
2011-02-28 21:37:09 +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
Dmitry Timoshkov
66e981ec8d
server: Make layered windows transparent for mouse messages.
2010-06-11 14:16:03 +02:00
Alexandre Julliard
5ee89aad68
winex11: Update the cursor also for events ignored by a hook.
2010-05-12 14:13:15 +02:00