Commit graph

261 commits

Author SHA1 Message Date
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
Alexandre Julliard
c545982472 server: Return the cursor information for a thread input, and use it for GetCursorInfo. 2010-05-11 11:27:03 +02:00
Alexandre Julliard
cd28e2be7c server: Return the current cursor when queuing a hardware message. 2010-04-21 11:07:31 +02:00
Alexandre Julliard
8159d4eb99 server: Add support for storing the cursor and show count in the thread input structure. 2010-03-22 17:52:23 +01:00
Alexandre Julliard
5efe996c6a server: Add a helper function to change a queue thread input. 2010-03-22 17:48:22 +01:00
Alexandre Julliard
b0760fc2e9 server: Set the idle event when PeekMessage is called with -1 as window filter. 2010-03-03 13:20:53 +01:00
Alexandre Julliard
4d33d4982f user32: Pass HWND_BOTTOM unmodified to the server in PeekMessage. 2010-03-03 13:20:26 +01:00
Peter Dons Tychsen
d21c131fb5 user32: Do not allow a change of capture if the currently capture window is a menu unless explicitly specified. 2010-01-14 09:04:55 -06:00
Alexandre Julliard
7265e89226 server: Set the idle event when retrieving a timer message. 2009-12-16 18:18:07 +01:00
Alexandre Julliard
92e704edc5 server: Don't set the idle event when waiting for a message reply. 2009-12-16 18:06:38 +01:00
Alexandre Julliard
7d4e28480d server: Any thread can set the idle event, don't treat the first one differently. 2009-12-16 18:06:32 +01:00
Alexandre Julliard
b57cc5561b server: Don't reset the idle event when the client stops waiting. 2009-12-16 18:06:14 +01:00
Alexandre Julliard
d1dc48d8dc server: Don't set the idle event when a queue is destroyed, instead return success in WaitForInputIdle on process exit. 2009-12-16 18:00:34 +01:00
Dmitry Timoshkov
acb05666bb user32: Add a test for PeekMessage((HWND)-1), make it pass under Wine. 2009-06-12 17:33:16 +02:00
Alexandre Julliard
2d69ba45d7 server: Reset events on the message queue fd to avoid busy looping when the thread is suspended. 2009-06-03 11:28:18 +02:00
Marcus Meissner
3b86f463b5 server: Handle NULL thread in send_hardware_message (Coverity). 2009-01-29 12:45:32 +01:00
Alexandre Julliard
8c8c665a3c server: Reorganize some requests to avoid padding, and make remaining padding explicit. 2008-12-31 15:14:29 +01: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
d1d7b9f3f7 server: Store data for hardware messages in the message extra data. 2008-12-24 19:57:51 +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
d764107434 server: Make user handles ints instead of pointers. 2008-12-08 16:57:38 +01:00
Vitaliy Margolen
9faf7e3586 winex11drv: Distinguish left and right keys for shift, ctrl and alt. 2008-04-02 11:14:54 +02:00
Dmitry Timoshkov
e735e199ad user32: Reimplement IsHungAppWindow. 2007-12-28 11:43:57 +01:00
Alexandre Julliard
8382eb01b2 server: Return correct object types in the get_directory_entry request. 2007-12-05 18:16:42 +01:00
Alexandre Julliard
942a70dc64 server: When merging mouse messages ignore the window if it isn't set. 2007-11-27 16:43:00 +01:00
Dmitry Timoshkov
b4227d7207 server: Make timer id allocation algorithm conform to the Windows one. 2007-11-13 21:45:09 +01:00
Alexandre Julliard
93938ebe5e server: Don't drop mouse messages that should go to a different thread input.
Instead requeue them into the proper destination queue. Reported by
Ulrich Czekalla.
2007-11-08 13:53:26 +01:00
Karl Relton
e764e61369 wineserver: Allow already peeked messages to merge. 2007-10-10 12:37:01 +02:00
Rob Shearman
c1707d8938 server: Add get_sd and set_sd object operations to allow the security descriptor to be stored somewhere other than server memory, such as on disk. 2007-10-04 12:30:52 +02:00
Trent Waddington
fc635fa827 server: Handle existing timer replacement when no window handle specified. 2007-08-30 19:08:16 +02:00
Alexandre Julliard
2896540a34 server: Set the queue mask directly in get_message to avoid an extra server call. 2007-08-29 18:13:13 +02:00
Alexandre Julliard
b4edb573fd server: Message results should be stored as longs, not ints. 2007-08-29 18:01:10 +02:00
Alexandre Julliard
aaf477f292 server: Change the timeout handling to use NT-style 64-bit timeouts everywhere. 2007-04-17 20:08:59 +02:00
Alexandre Julliard
635714397f server: Add infrastructure for ioctl server request. 2007-04-16 14:45:03 +02:00
Alexandre Julliard
3f0575943e server: Don't bother with default entry points for objects that don't even return an fd. 2007-04-12 20:21:53 +02:00
Alexandre Julliard
7a9363a4d4 server: Rename the get_file_info function to get_fd_type and get rid of the flags. 2007-04-10 22:26:23 +02:00
Alexandre Julliard
f85437c57f server: Store the opening options in the file descriptor instead of in the individual objects.
Allows moving the FD_FLAG_OVERLAPPED support to the generic
get_handle_fd request handling.
2007-04-10 22:25:07 +02:00
Alexandre Julliard
72bff2e445 server: Add support for restarting an async I/O when the client side couldn't finish it right away. 2007-04-10 17:07:27 +02:00
Alexandre Julliard
0cb29f47ca server: Add support for associating a file descriptor to a message queue. 2007-04-04 18:02:01 +02:00
Alexandre Julliard
7e71c1ddee server: Add an open_file() function to the object operations. 2007-03-22 11:44:29 +01:00
Andrew Talbot
b1788c8462 server: Replace inline static with static inline. 2007-03-17 20:05:05 +01:00
Alexandre Julliard
89faee0194 server: Added support for the PM_QS_* flags in PeekMessage. 2007-02-21 15:21:05 +01:00
Alexandre Julliard
85f518ac6b server: A window timer id should be an unsigned long. 2006-10-16 17:03:44 +02:00
Michael Stefaniuc
5cecceccb2 server: Remove redundant NULL check before free() (found by Smatch). 2006-10-10 12:56:16 +02:00
Alexandre Julliard
3ad9798263 server: Pass the data for message callbacks as vararg from the client side. 2006-10-04 20:25:42 +02:00
Alexandre Julliard
29a3ce9f3a server: Return the data for callback results in the varargs part of the get_message request. 2006-10-04 16:29:45 +02:00
Alexandre Julliard
59dc456822 server: Return the data for winevent hooks in the varargs part of the get_message request. 2006-10-04 16:04:53 +02:00
Alexandre Julliard
753c8706f5 server: Only call gettimeofday once per poll loop. 2006-08-10 16:42:09 +02:00
Alexandre Julliard
672bfc2d62 server: Make the message extra info 64 bits on Win64. 2006-08-09 17:10:14 +02:00
Alexandre Julliard
d3b3096756 server: Split the queuing of hardware messages into a separate send_hardware_message request. 2006-08-09 16:45:26 +02:00
Michael Stefaniuc
a624977f21 server: Fix some comparisons between signed and unsigned. 2006-07-26 11:11:04 +02: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
Ge van Geldorp
a6df16396a server: Widen lparam for timers. 2006-07-11 12:39:44 +02:00
Dmitry Timoshkov
19e7fab981 user: Improve SetActiveWindow test, add SetForegroundWindow test, make them pass under Wine. 2006-07-10 11:47:44 +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
Robert Shearman
22bd7a3d01 server: Don't clear the QS_POSTMESSAGE flag if there is a pending quit message. 2006-05-23 12:37:02 +02:00
Thomas Kho
0e81484c45 x11drv: Properly handle VK_LMENU input. 2006-04-14 19:35:05 +02:00
Robert Shearman
d8058fbe8c server: Should use release_object on an object instead of free. 2006-04-07 13:07:47 +02:00
Alexandre Julliard
5d282dc891 server: Try to update the input key state even when the message is
dropped in queue_hardware_message. This should fix some problems with
the Alt key getting "stuck" after Alt-Tab.
2006-02-14 10:43:15 +01:00
Robert Shearman
a40ce39340 user: Fix WM_QUIT message ordering from PostQuitMessage.
Added a new server call as PostQuitMessage should set a flag in the
message queue to return the WM_QUIT message when there are no other
pending messages, rather than posting a message to the thread queue as
it does at the moment.
2006-01-17 13:14:31 +01:00
Alexandre Julliard
28beba31d6 server: Added infrastructure for access rights mapping. 2005-12-12 14:57:40 +01:00
Ge van Geldorp
1a1583a364 Match PSDK STATUS_* definitions. 2005-11-28 17:32:54 +01:00
Vitaliy Margolen
baffcb95d3 Add name_lookup function in object_ops. 2005-11-22 14:55:42 +00:00
Alexandre Julliard
80b997a2cc Added support for the QS_ALLPOSTMESSAGE flag. 2005-11-14 15:17:09 +00:00
Alexandre Julliard
127127fd3b Timeout 0 means infinite wait for SendMessageTimeout.
Remove the message from the receiver queue if it times out before
being received.
2005-09-13 14:46:46 +00:00
Alexandre Julliard
3f31a10d01 Avoid a crash in find_hardware_message_window when there's no
foreground input.
2005-08-16 19:58:12 +00:00
Alexandre Julliard
b6c7677778 Removed a no longer used variable. 2005-07-29 14:41:40 +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
b9b1ea9c9f Added a close_handle method to the object operations, and use it to
implement registry notifications and the strange behavior of
CloseHandle on winstation/desktop handles.
2005-06-09 15:39:52 +00:00
Robert Shearman
c516571481 - Use NULL instead of 0 for all non-handle pointers.
- Fix non-ANSI function declarations.
- Make a function static.
2005-05-25 18:41:09 +00:00
Alexandre Julliard
55d449e476 Fixed another case where a mouse message could get assigned to a
different thread input.
2005-05-14 11:08:05 +00:00
Alexandre Julliard
90b48e93a3 Only set the new window of a hardware message if the window belongs to
the same thread input, otherwise just drop the message.
2005-05-13 14:00:19 +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
Mike McCormack
abe70f7648 Implemented GetLastInputInfo. 2005-04-28 12:04:14 +00:00
Alexandre Julliard
d70a253f40 Make sure a thread has a queue as soon as it creates a window. 2005-04-26 14:31:33 +00:00
Mike McCormack
f92fff66a2 Implemented NtSignalAndWaitForSingleObject. 2005-04-24 17:35:52 +00:00
Alexandre Julliard
3e2f2a5265 Allow nested hardware message processing by storing a unique id in
every message and using it to manage the current queue position.
Better filtering of hardware messages to avoid returning messages that
have no chance to match the filter.
2005-04-20 13:03:59 +00:00
Alexandre Julliard
cb7aa8753c Added support for xbuttons. 2005-03-24 19:16:54 +00:00
Alexandre Julliard
0bc8377bc2 Create a new server request for accepting hardware messages instead of
abusing reply_message.
Allow passing the determined window for a hardware message back to the
server to have it redispatch the message to the correct thread.
2005-03-23 10:33:17 +00:00
Alexandre Julliard
e3fe68926c Revert the previous change, this is not working right yet. 2005-03-17 20:51:53 +00:00
Alexandre Julliard
073d5f2b79 Queue hardware messages even if we don't find a window for them the
first time around.
2005-03-16 20:06:45 +00:00
Alexandre Julliard
cf2f14212a Avoid returning hardware messages if they have no chance to match the
filter.
2005-03-14 17:17:09 +00:00
Alexandre Julliard
99615021fb Properly cope with get_message being called recursively while
processing a hardware message.
2005-03-10 11:52:25 +00:00
Alexandre Julliard
d6885fe7d4 Avoid potential crash when freeing a message queue.
Properly initialize newly allocated messages.
2005-03-05 10:51:35 +00:00
Alexandre Julliard
aa34768677 Convert the object wait queue to a standard list. 2005-03-01 11:49:58 +00:00
Alexandre Julliard
8e3b072249 Replaced the message_list structure by a standard list. 2005-02-25 21:05:11 +00:00
Krzysztof Foltman
b85017223f Ensure that caret position is not reset to (0, 0) when CreateCaret is
called second time with the same window.
2005-02-18 20:02:55 +00:00
Dmitry Timoshkov
6dba0a7718 Add support for winevent hooks. 2005-02-03 16:40:20 +00:00
Alexandre Julliard
ff986a5a93 Converted the timer list to use standard list functions.
Allocate a timer id when the window is 0 instead of relying on the
client to do it.
Allow setting timers on windows belonging to other threads (found by
Mike McCormack).
2004-11-29 18:08:18 +00:00
Dmitry Timoshkov
93a4e1eed3 Take into account window visibility when searching for a target for a
hardware mouse message.
2004-10-27 21:55:00 +00:00
Alexandre Julliard
15ca8209d6 Properly reset msg_thread when releasing the thread input structure. 2004-06-17 20:00:25 +00:00
Alexandre Julliard
e37c6e18d0 Fixed header dependencies to be fully compatible with the Windows
headers (with help from Dimitrie O. Paun).
2003-09-05 23:08:26 +00:00
Alexandre Julliard
039e13118e Implemented inter-thread SendMessageCallback. 2003-07-26 20:36:43 +00:00
Alexandre Julliard
ca3ac8f155 Run WH_KEYBOARD_LL and WH_MOUSE_LL hooks in the context of the thread
that set the hook.
2003-07-11 21:55:58 +00:00
Alexandre Julliard
09029b2878 Implemented the SMTO_ABORTIFHUNG flag of SendMessageTimeout. 2003-07-11 04:09:42 +00:00
Alexandre Julliard
d55e7f1e9b Store the hook table in the thread queue instead of the thread
structure, and make sure the queue is allocated when setting a hook.
2003-07-03 18:16:48 +00:00
Alexandre Julliard
b1095da50c Fixed bug that could cause SendMessage to return too early in certain
cases.
2003-03-19 00:12:17 +00:00
Mike McCormack
7034e8be67 Added missing release_object. 2003-02-19 00:38:12 +00:00
Alexandre Julliard
e66207ebfc Moved all references to file descriptors out of the generic object
structure.
Changed the poll()-related routines to deal with file descriptors
instead of objects and integrated poll support into fd.c.
2003-02-19 00:33:32 +00:00
Alexandre Julliard
cf27a7fa3b Changed fd operations to take a struct fd instead of a struct object.
Removed get_file_info function from object operations.
Added get_device_id request to avoid abusing get_file_info.
2003-02-14 20:27:09 +00:00
Alexandre Julliard
863637b158 Started moving functions that deal with Unix file descriptors to a
separate fd object. This will be needed for file locking.
2003-01-30 00:26:44 +00:00
Alexandre Julliard
8ba666f3a7 Store the keyboard state in the thread input structure on the server
side.
2003-01-08 19:56:31 +00:00
Alexandre Julliard
242e395bbc Store the hardware messages in the thread input structure, not in the
thread queue. Get rid of the cooked messages queue.
2003-01-08 00:27:58 +00:00
Alexandre Julliard
b3332d74b0 Converted the server to -DSTRICT. 2002-10-19 01:00:59 +00:00
Alexandre Julliard
11e3523949 Rewrote caret implementation to store the information in the server. 2002-10-17 01:24:33 +00:00
Alexandre Julliard
a9e8f59c95 Moved mouse capture handling into the server. 2002-10-12 01:24:37 +00:00
Alexandre Julliard
5030bda77c Reimplemented Get/SetActiveWindow, Get/SetFocus and
Get/SetForegroundWindow by storing the information in the
server. Implemented correct inter-process window activation.
2002-10-11 23:41:06 +00:00
Alexandre Julliard
ab5063b217 Added server-side infrastructure for the thread input structure.
Reimplemented AttachThreadInput() and added GetGUIThreadInfo().
2002-10-11 18:50:15 +00:00
Alexandre Julliard
31022d66ca Signal and release the idle event when the process main thread exits. 2002-08-16 23:30:41 +00:00
Alexandre Julliard
5769d1de00 Better support for configure detection of missing types, added check
for ssize_t.
Removed a couple of no longer used portability functions.
Various portability fixes in port.h.
2002-04-26 19:05:15 +00:00
Alexandre Julliard
81f2a7307b Send message for WSAAsyncSelect sockets directly from the server,
instead of using the service thread. Finished separation of ws2_32.
2002-03-23 20:43:52 +00:00
Alexandre Julliard
0799c1a780 Added LGPL standard comment, and copyright notices where necessary.
Global replacement of debugtools.h by wine/debug.h.
2002-03-09 23:29:33 +00:00
Eric Pouech
0faceb05fc Implemented interprocess DDE message posting. 2002-01-18 19:22:55 +00:00
Mike McCormack
6f011c0847 - move async activation into the server
- implement async queues
2001-12-20 00:07:05 +00:00
Alexandre Julliard
9caa71eef4 Redesign of the server communication protocol to allow arbitrary sized
data to be exchanged.
Split request and reply structures to make backwards compatibility
easier.
Moved many console functions to dlls/kernel, added code page support,
changed a few requests to behave properly with the new protocol.
2001-11-30 18:46:42 +00:00
Alexandre Julliard
47f9821817 Moved WIN_FindWinToRepaint functionality to the server. 2001-11-14 21:28:36 +00:00
Alexandre Julliard
805bdc53e8 Store the window caption text in the server.
Maintain a paint count separately for each window.
2001-11-13 22:23:48 +00:00
Alexandre Julliard
516e40e154 Make sure that GetMessagePos and GetMessageTime return sane values
for all messages.
2001-10-17 17:48:49 +00:00
Alexandre Julliard
003f02b733 Removed the cleanup_window_queue request. 2001-10-11 20:50:10 +00:00
Alexandre Julliard
a09da0cbbd Added proper support for storing window parents in the server.
Added a few requests to query the window hierarchy.
2001-09-21 21:08:40 +00:00
Alexandre Julliard
bc878ef4d9 Convert user handles received from client to full handles. 2001-09-12 17:09:24 +00:00
Alexandre Julliard
1a66d226eb Added global management of user handles in the server.
Very preliminary support for shared window handles.
2001-08-28 18:44:52 +00:00
Alexandre Julliard
d253c58b1b Rewrote most of SendMessage/PeekMessage.
Implemented inter-process messaging.
Moved most message routines to dlls/user, and split off 16-bit
routines to a separate file.
2001-08-07 19:19:08 +00:00