Commit Graph

124 Commits

Author SHA1 Message Date
Qian Hong 43197e6641 user32: Properly handle WM_DEVICECHANGE in is_pointer_message().
Signed-off-by: Qian Hong <qhong@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-12-30 17:27:52 +01:00
Alex Henrie 5b53c0b88b user32: Avoid double initialization.
Signed-off-by: Alex Henrie <alexhenrie24@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-11-06 21:59:08 +09:00
Stefan Dösinger ccf430eb52 user32: Silently ignore temporary foreground loss.
The basic problem is this: Thread A has a window W1 that is it's focus
window and the system-global foreground window. At some point thread A
stops processing messages. After that, thread B creates a window W2
and makes it the foreground window. Thread B later on makes W1 (from
Thread A) the foreground window again. After restoring W1 as the
foreground window, Thread A processes window messages again. Two
WM_WINE_SETACTIVEWINDOW messages are in the queue, one for losing the
foreground thread propery and one for restoring it. The first one will
generates a WM_ACTIVATEAPP(0) message, which causes D3D to minimize
the game window.

The included test shows that Windows doesn't deliver any
WM_ACTIVATEAPP messages if the thread stopped being the foreground
thread and re-gained that property between two message processing
calls. It isn't implemented with a plain WM_ACTIVATEAPP filter, the
manually injected message in the test still gets through.

Signed-off-by: Stefan Dösinger <stefan@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-11-01 22:53:53 +09:00
Alexandre Julliard 247275aec3 server: Return a valid position also in posted messages. 2015-04-27 18:04:59 +09:00
Sebastian Lackner d3be42ab96 user32: Invalidate key state cache globally after running LL hooks. 2015-04-07 15:14:04 +09:00
Sebastian Lackner 325c061bbd user32: Move key state cache into a separate struct. 2015-04-07 15:14:02 +09:00
Qian Hong cd21d2dbda user32: Add more exception handlings for timer callbacks. 2014-11-11 16:15:46 +09:00
Piotr Caban f747e5c8c9 user32: Don't move mouse hardware messages to other threads queues. 2014-10-17 17:51:55 +09:00
Alexandre Julliard 82bee5ceda user32: Properly block sent messages while waiting for a reply with SMTO_BLOCK. 2014-06-17 15:14:51 +02:00
Sebastian Lackner e9fbcc8360 user32: Avoid race-condition when unloading module while hook is still active.
Based on a patch by Sam Revitch.
2014-06-17 10:40:12 +02:00
Erich E. Hoover b5bd529769 user32: Reduce the minimum Set[System]Timer from 15 ms to 10 ms. 2014-05-01 18:56:46 +02:00
Alexandre Julliard b045851648 user32: Cache the server queue mask on the client side and reset them when they have changed. 2014-04-10 16:29:18 +02:00
Nikolay Sivov d3c9e8a7e6 user32: Added ChangeWindowMessageFilterEx() stub. 2014-03-20 17:46:01 +01:00
Alexandre Julliard fc183ba2c5 user32: Set the queue mask only after flushing the window surfaces. 2014-03-19 15:56:22 +01:00
Frédéric Delanoy 762aef6613 user32: Use BOOL type where appropriate. 2013-11-20 11:26:30 +01:00
Frédéric Delanoy 77ee42fd33 user32: Use BOOL type where appropriate. 2013-11-05 11:15:06 +01:00
Alexandre Julliard fe441a0682 user32: Register classes once the graphics driver has been loaded, except for the desktop class. 2013-10-24 19:01:54 +02:00
Alexandre Julliard 6d0d7e08e5 user32: Fix the scope of a local variable. 2013-10-21 14:48:20 +02:00
Michael Stefaniuc 7c7fa1051c user32: Avoid using CONST. 2013-09-24 12:57:57 +02:00
Alexandre Julliard fa311c57bf user32: Check for driver events more quickly once we start getting timer messages. 2013-07-02 19:39:34 +02:00
Huw Davies 5d5d0935ea user32: Use the codepage associated with the input locale for WM_CHAR-type conversions. 2013-05-21 16:59:58 +02:00
Huw Davies bf85df3f0e user32: Move back to using WC<->MB in order to specify an alternative codepage. 2013-05-21 16:55:11 +02:00
Erich Hoover 057b0d8bca user32: SetTimer and SetSystemTimer should respect the timeout limits. 2013-05-06 15:55:20 +02:00
Aric Stewart 6e4cbd5787 user32: ImmProcessKey is only called on WM_KEYDOWN and if the message is being removed. 2013-03-28 18:55:58 +01:00
Ken Thomases 5fb543f6e2 user32: In TranslateMessage, handle ToUnicode returning 2 or more chars. 2013-02-05 11:07:02 +01:00
Alexandre Julliard bd5d5e9776 user32: Start checking for driver events more often when the app doesn't consume messages properly. 2012-12-12 20:17:21 +01:00
Alexandre Julliard 1cf2c9c179 user32: Ignore the PM_NOYIELD flag on the client side. 2012-12-05 12:48:37 +01:00
Alexandre Julliard a0f039a604 user32: Fix the wait event mask in PeekMessage. 2012-11-22 11:57:15 +01:00
Alexandre Julliard 841214ddb4 user32: Don't check for driver events before normal messages in PeekMessage. 2012-11-21 19:20:27 +01:00
Alexandre Julliard 8ba4c316f2 user32: Don't check for driver events before normal messages in GetMessage. 2012-11-21 19:20:09 +01:00
André Hentschel 64e169d974 user32: Avoid memory leaks (coverity). 2012-10-30 19:14:17 +01:00
Alexandre Julliard b7582525a0 user32: Don't flush window surfaces while waiting for a sent message reply. 2012-10-29 14:39:53 +01:00
Henri Verbeet 3ed797b265 user32: Implement GetRawInputDeviceList(). 2012-10-18 19:20:27 +02:00
Alexandre Julliard 5db9abaf81 user32: Always flush window surfaces in PeekMessage, even with PM_NOYIELD. 2012-10-01 12:13:00 +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
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 cb3b723792 user32: Cache the global key state to avoid performance issues in applications that poll constantly. 2011-12-15 16:25:40 +01: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 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 c7efa293f0 server: Invoke low-level hardware hooks directly from the server side. 2011-03-02 21:26:13 +01:00
Alexandre Julliard ae895a1f10 user32: Export a Wine-specific function to send hardware input from the graphics driver. 2011-03-02 21:25:43 +01:00
Alexandre Julliard 14a77db43f user32: Add a stub for IsGUIThread(). 2010-11-16 21:54:18 +01:00
Alexandre Julliard 30554d4ef1 user32: Check structure size in GetGUIThreadInfo. 2010-11-16 21:54:03 +01:00
Stefan Dösinger c293424319 user32: Make GetMessage and PeekMessage patchable. 2010-08-26 17:21:08 +02:00
Dmitry Timoshkov ea7020480b user32: Properly pack the WM_WINE_SETWINDOWPOS internal message. 2010-08-16 12:57:08 +02:00
Alexandre Julliard 01578f51ba user32: Pack the structure for WM_DDE_ACK to allow crossing 32/64 boundaries. 2010-03-30 20:43:41 +02:00
Alexandre Julliard 2de2222aec user32: Pack the low-level hook structure in messages to allow crossing 32/64 boundaries. 2010-03-30 20:43:41 +02:00
Alexandre Julliard 366c5ceea7 user32: Pack the MDICREATESTRUCTW structure in messages to allow crossing 32/64 boundaries. 2010-03-30 20:43:41 +02:00
Alexandre Julliard 99719be4a6 user32: Pack the MDINEXTMENU structure in messages to allow crossing 32/64 boundaries. 2010-03-30 20:43:41 +02:00