Commit Graph

240 Commits

Author SHA1 Message Date
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
Alexandre Julliard e630aa0b68 Merge WM_MOUSEMOVE messages. 2001-07-11 17:29:01 +00:00
Alexandre Julliard 9f55ae6f62 - Remove cooked hardware messages when they are dropped (reported by
Gerard Patel).
- Convert all posted 32-bit messages to Unicode before storing them in
  the queue.
- Faster implementation of MSG_IsPointerMessage.
- Moved a couple of functions from queue.c to message.c.
2001-06-28 04:37:22 +00:00
Alexandre Julliard 4b0343dc5f Moved queue paint count to the server. Removed a few no longer used
routines.
2001-06-20 22:55:31 +00:00
Alexandre Julliard 838d65aebe Moved hardware message queue handling to the server. 2001-06-19 19:16:41 +00:00
Gerard Patel 63b1d175b3 Take message filters into account for WM_PAINT too. 2001-05-21 18:33:56 +00:00
Eric Pouech 476c2b4cc3 Fixed reply_message when there is no received message. 2001-05-19 17:38:21 +00:00
Alexandre Julliard 9be457dd3b Fixed typo in message filter check. 2001-05-18 23:22:12 +00:00
Alexandre Julliard 51ab43bd13 Moved the major part of message queue and window timer handling into
the server.
Implemented MsgWaitForMultipleObjectsEx.
2001-05-18 22:51:56 +00:00
Alexandre Julliard 8081e5a1e5 Added handle_t type to server interface so that we can make handles
pointers later on.
Always use 0 to signal invalid handle in server requests.
2001-01-05 04:08:07 +00:00
Alexandre Julliard 1ab243bac1 Merged the get_read_fd and get_write_fd requests. 2000-12-19 02:12:45 +00:00
Alexandre Julliard c5e433a3a6 Moved idle event handling to the server. 2000-05-30 19:48:18 +00:00