Fix modifier loss bug
This commit is contained in:
parent
8a82e8185c
commit
79dce39db7
|
@ -60,10 +60,10 @@ setup_default_mapping(Mapping *mapping){
|
||||||
BindMouseMove(click_set_cursor_if_lbutton);
|
BindMouseMove(click_set_cursor_if_lbutton);
|
||||||
Bind(delete_char, KeyCode_Delete);
|
Bind(delete_char, KeyCode_Delete);
|
||||||
Bind(backspace_char, KeyCode_Backspace);
|
Bind(backspace_char, KeyCode_Backspace);
|
||||||
Bind(move_up, KeyCode_V, KeyCode_Up);
|
Bind(move_up, KeyCode_Up);
|
||||||
Bind(move_down, KeyCode_V, KeyCode_Down);
|
Bind(move_down, KeyCode_Down);
|
||||||
Bind(move_left, KeyCode_V, KeyCode_Left);
|
Bind(move_left, KeyCode_Left);
|
||||||
Bind(move_right, KeyCode_V, KeyCode_Right);
|
Bind(move_right, KeyCode_Right);
|
||||||
Bind(seek_end_of_line, KeyCode_End);
|
Bind(seek_end_of_line, KeyCode_End);
|
||||||
Bind(seek_beginning_of_line, KeyCode_Home);
|
Bind(seek_beginning_of_line, KeyCode_Home);
|
||||||
Bind(page_up, KeyCode_PageUp);
|
Bind(page_up, KeyCode_PageUp);
|
||||||
|
|
|
@ -1,4 +1,3 @@
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Mr. 4th Dimention - Allen Webster
|
* Mr. 4th Dimention - Allen Webster
|
||||||
*
|
*
|
||||||
|
@ -951,18 +950,13 @@ win32_proc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam){
|
||||||
|
|
||||||
Input_Modifier_Set_Fixed *mods = &win32vars.input_chunk.pers.modifiers;
|
Input_Modifier_Set_Fixed *mods = &win32vars.input_chunk.pers.modifiers;
|
||||||
|
|
||||||
|
Control_Keys *controls = &win32vars.input_chunk.pers.controls;
|
||||||
switch (wParam){
|
switch (wParam){
|
||||||
case VK_CONTROL:case VK_LCONTROL:case VK_RCONTROL:
|
case VK_CONTROL:case VK_LCONTROL:case VK_RCONTROL:
|
||||||
case VK_MENU:case VK_LMENU:case VK_RMENU:
|
case VK_MENU:case VK_LMENU:case VK_RMENU:
|
||||||
case VK_SHIFT:case VK_LSHIFT:case VK_RSHIFT:
|
|
||||||
{
|
{
|
||||||
Control_Keys *controls = &win32vars.input_chunk.pers.controls;
|
|
||||||
if (wParam != 255){
|
if (wParam != 255){
|
||||||
switch (wParam){
|
switch (wParam){
|
||||||
case VK_SHIFT:
|
|
||||||
{
|
|
||||||
set_modifier(mods, KeyCode_Shift, down);
|
|
||||||
}break;
|
|
||||||
case VK_CONTROL:
|
case VK_CONTROL:
|
||||||
{
|
{
|
||||||
if (is_right){
|
if (is_right){
|
||||||
|
@ -982,19 +976,24 @@ win32_proc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam){
|
||||||
}
|
}
|
||||||
}break;
|
}break;
|
||||||
}
|
}
|
||||||
|
|
||||||
b8 ctrl = (controls->r_ctrl || (controls->l_ctrl && !controls->r_alt));
|
|
||||||
b8 alt = (controls->l_alt || (controls->r_alt && !controls->l_ctrl));
|
|
||||||
if (win32vars.lctrl_lalt_is_altgr && controls->l_alt && controls->l_ctrl){
|
|
||||||
ctrl = false;
|
|
||||||
alt = false;
|
|
||||||
}
|
|
||||||
set_modifier(mods, KeyCode_Control, ctrl);
|
|
||||||
set_modifier(mods, KeyCode_Alt, alt);
|
|
||||||
}
|
}
|
||||||
}break;
|
}break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
b8 ctrl = (controls->r_ctrl || (controls->l_ctrl && !controls->r_alt));
|
||||||
|
b8 alt = (controls->l_alt || (controls->r_alt && !controls->l_ctrl));
|
||||||
|
if (win32vars.lctrl_lalt_is_altgr && controls->l_alt && controls->l_ctrl){
|
||||||
|
ctrl = false;
|
||||||
|
alt = false;
|
||||||
|
}
|
||||||
|
set_modifier(mods, KeyCode_Control, ctrl);
|
||||||
|
set_modifier(mods, KeyCode_Alt, alt);
|
||||||
|
|
||||||
|
{
|
||||||
|
b8 shift = ((GetKeyState(VK_SHIFT) & bit_16) != 0);
|
||||||
|
set_modifier(mods, KeyCode_Shift, shift);
|
||||||
|
}
|
||||||
|
|
||||||
Key_Code key = keycode_lookup_table[(u8)wParam];
|
Key_Code key = keycode_lookup_table[(u8)wParam];
|
||||||
if (down){
|
if (down){
|
||||||
if (key != 0){
|
if (key != 0){
|
||||||
|
|
Loading…
Reference in New Issue