[PATCH 2/4] winemac.drv: Call ActivateKeyboardLayout when layout changes.
Rémi Bernon
rbernon at codeweavers.com
Wed May 5 04:46:49 CDT 2021
To update user32 current keyboard layout as well.
Signed-off-by: Rémi Bernon <rbernon at codeweavers.com>
---
dlls/winemac.drv/keyboard.c | 5 +++++
dlls/winemac.drv/macdrv_main.c | 1 +
2 files changed, 6 insertions(+)
diff --git a/dlls/winemac.drv/keyboard.c b/dlls/winemac.drv/keyboard.c
index 6732c5755ee..0648b00a4f1 100644
--- a/dlls/winemac.drv/keyboard.c
+++ b/dlls/winemac.drv/keyboard.c
@@ -1054,6 +1054,8 @@ void macdrv_keyboard_changed(const macdrv_event *event)
macdrv_compute_keyboard_layout(thread_data);
+ ActivateKeyboardLayout(thread_data->active_keyboard_layout, 0);
+
SendMessageW(GetActiveWindow(), WM_CANCELMODE, 0, 0);
}
@@ -1169,6 +1171,9 @@ HKL CDECL macdrv_ActivateKeyboardLayout(HKL hkl, UINT flags)
TRACE("hkl %p flags %04x\n", hkl, flags);
+ if (hkl == thread_data->active_keyboard_layout)
+ return hkl;
+
EnterCriticalSection(&layout_list_section);
update_layout_list();
diff --git a/dlls/winemac.drv/macdrv_main.c b/dlls/winemac.drv/macdrv_main.c
index 694a46b11e6..203e993ee93 100644
--- a/dlls/winemac.drv/macdrv_main.c
+++ b/dlls/winemac.drv/macdrv_main.c
@@ -384,6 +384,7 @@ struct macdrv_thread_data *macdrv_init_thread_data(void)
set_queue_display_fd(macdrv_get_event_queue_fd(data->queue));
TlsSetValue(thread_data_tls_index, data);
+ ActivateKeyboardLayout(data->active_keyboard_layout, 0);
return data;
}
--
2.31.0
More information about the wine-devel
mailing list