Fixed call to GetKeyboardLayout
This commit is contained in:
parent
fa218f79c1
commit
8b8016ec21
@ -190,6 +190,7 @@ static BOOL wf_desktop_resize(rdpContext* context)
|
||||
|
||||
static BOOL wf_pre_connect(freerdp* instance)
|
||||
{
|
||||
UINT32 rc;
|
||||
wfContext* wfc;
|
||||
int desktopWidth;
|
||||
int desktopHeight;
|
||||
@ -256,8 +257,8 @@ static BOOL wf_pre_connect(freerdp* instance)
|
||||
if (!freerdp_client_load_addins(context->channels, instance->settings))
|
||||
return -1;
|
||||
|
||||
freerdp_set_param_uint32(settings, FreeRDP_KeyboardLayout,
|
||||
(int)GetKeyboardLayout(0) & 0x0000FFFF);
|
||||
rc = freerdp_keyboard_init(freerdp_settings_get_uint32(settings, FreeRDP_KeyboardLayout));
|
||||
freerdp_set_param_uint32(settings, FreeRDP_KeyboardLayout, rc);
|
||||
PubSub_SubscribeChannelConnected(instance->context->pubSub, wf_OnChannelConnectedEventHandler);
|
||||
PubSub_SubscribeChannelDisconnected(instance->context->pubSub,
|
||||
wf_OnChannelDisconnectedEventHandler);
|
||||
|
@ -48,7 +48,19 @@ DWORD X11_KEYCODE_TO_VIRTUAL_SCANCODE[256];
|
||||
int freerdp_detect_keyboard(DWORD* keyboardLayoutId)
|
||||
{
|
||||
#if defined(_WIN32)
|
||||
*keyboardLayoutId = (DWORD)GetKeyboardLayout(0) & 0x0000FFFF;
|
||||
CHAR name[KL_NAMELENGTH + 1] = { 0 };
|
||||
if (GetKeyboardLayoutNameA(name))
|
||||
{
|
||||
ULONG rc;
|
||||
|
||||
errno = 0;
|
||||
rc = strtoul(name, NULL, 16);
|
||||
if (errno == 0)
|
||||
*keyboardLayoutId = rc;
|
||||
}
|
||||
|
||||
if (*keyboardLayoutId == 0)
|
||||
*keyboardLayoutId = ((DWORD)GetKeyboardLayout(0) >> 16) & 0x0000FFFF;
|
||||
#endif
|
||||
|
||||
#ifdef WITH_X11
|
||||
|
Loading…
Reference in New Issue
Block a user