Commit Graph

26 Commits

Author SHA1 Message Date
Aric Stewart 3736c36736 winemac.drv: Set done if macdrv_process_text_input is not processing input.
Prevents an input lockup in this case.

Signed-off-by: Aric Stewart <aric@codeweavers.com>
Signed-off-by: Ken Thomases <ken@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-05-06 11:36:54 -05:00
Michael Stefaniuc d94de38f45 winemac.drv: Use the ARRAY_SIZE() macro.
Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
Signed-off-by: Ken Thomases <ken@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-08-16 08:51:50 +02:00
Huw Davies c3dbe44347 winemac: Update the keyboard layout data immediately after changing the input source.
It would eventually get updated by the keyboard changed event, but
only after the message queue was pumped.

Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Ken Thomases <ken@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-10-24 19:42:24 +02:00
Charles Davis d2f7becc0f winemac.drv: Don't print 32-bit values as long integers (Clang).
Signed-off-by: Charles Davis <cdavis5x@gmail.com>
Signed-off-by: Ken Thomases <ken@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-02-19 11:05:31 +09:00
Ken Thomases 3482c47469 winemac: Make macdrv_process_text_input() asynchronous and process internal events while awaiting its result.
It had been using the synchronous OnMainThread() to submit its work to the
Cocoa thread, but only queries are processed while OnMainThread() waits for the
work to complete.  This led to QUERY_IME_CHAR_RECT queries being processed out
of order relative to IM_SET_TEXT events, making the character range out of
bounds with respect to the composition string.

Signed-off-by: Ken Thomases <ken@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-02-05 13:53:13 +09:00
Ken Thomases b52c89fc91 winemac: For GetKeyNameText(), use the hard-coded table in preference to the Mac keyboard layout. 2014-04-24 11:37:28 +02:00
Huw Davies c4761d8002 winemac: Actually set the system's keyboard layout. 2013-11-20 19:39:05 +01:00
Huw Davies f6e2af6843 winemac: Retrieve the real keyboard layout where appropriate. 2013-11-20 19:39:03 +01:00
Huw Davies 22008f7fd9 winemac: Update the thread's active_keyboard_layout on keyboard change. 2013-11-20 19:39:01 +01:00
Huw Davies f344d7a213 winemac: Update the layout list if the enabled input sources change. 2013-11-20 19:38:59 +01:00
Huw Davies fecaab9cfd winemac: Implement GetKeyboardLayoutList. 2013-11-20 19:38:56 +01:00
Ken Thomases 35f0cf26b0 winemac: Send WM_CANCELMODE when keyboard layout changes from Cocoa side.
The standard keyboard shortcut for switching the keyboard layout is Command-
Space, but the Mac driver never sees the Space key press.  So, Wine only sees
a press and release of Alt, which puts focus on the menu bar.  This prevents
that focus change.
2013-10-24 10:54:55 +02:00
Ken Thomases 12e0b0577c winemac: Activate an app if it sets focus on a window shortly after a hot key is pressed.
The Mac driver doesn't normally steal focus, but a press of a hot key counts
as the user giving permission.
2013-09-27 10:41:17 +02:00
Ken Thomases 6bae7cf796 winemac: Implement support for global hot keys.
Partially based on a patch for winex11 previously submitted by Vincent Povirk.
2013-09-27 10:41:05 +02:00
Ken Thomases ae2ce18fd6 winemac: Don't allow dead-key state to repeat after characters are generated.
It's fairly common in Mac keyboard layouts that, if you type a dead key twice,
the second key press will both produce a non-dead character and also
perpetuate the dead-key state.  For example, with the U.S. layout, Option-E,
E will produce "é" and Option-E, Option-E, E will produce "´é".  Windows
keyboard layouts don't tend to do this.  The second key press produces the
non-dead character and clears the dead-key state.
2013-09-10 11:07:41 +02:00
Ken Thomases 7c808ddfbc winemac: Return 0 from ToUnicodeEx() for a key release. 2013-05-03 11:47:47 +02:00
Ken Thomases 192b8dbf9d winemac: Implement an IME that uses the OS X input methods.
Developed with Aric Stewart.
2013-04-22 12:37:50 +02:00
Ken Thomases 956ec43201 winemac: Implement fake support for the active Windows keyboard layout. 2013-02-06 20:28:29 +01:00
Ken Thomases 2b4d95cd47 winemac: Implement GetKeyNameText(). 2013-02-06 20:28:28 +01:00
Ken Thomases 80baa3a0e9 winemac: Implement VkKeyScanEx(). 2013-02-06 20:28:28 +01:00
Ken Thomases a649d845ed winemac: Implement MapVirtualKeyEx(). 2013-02-06 20:28:28 +01:00
Ken Thomases 3fcb69b7ca winemac: Implement Beep(). 2013-02-06 20:28:28 +01:00
Ken Thomases 3ab66a6916 winemac: Implement ToUnicodeEx(). 2013-02-05 11:07:19 +01:00
Ken Thomases 77de57683f winemac: Generate KEY_PRESS/RELEASE events from Cocoa key events. 2013-02-05 11:06:43 +01:00
Ken Thomases d0e1a02515 winemac: Rebuild key map when Mac keyboard layout changes. 2013-02-05 11:06:27 +01:00
Ken Thomases b78eee3172 winemac: Build a map from Mac virtual key codes to Win32 vkeys and scan codes based on Mac keyboard layout. 2013-02-05 11:06:02 +01:00