X-Git-Url: https://git.distorted.org.uk/u/mdw/putty/blobdiff_plain/3cf144db040ec58cab4051e32f2e486d21b01b4a..9520eba82befd328430269d889959f320bed46d5:/window.c?ds=sidebyside diff --git a/window.c b/window.c index 09fb0133..7db845e4 100644 --- a/window.c +++ b/window.c @@ -1870,25 +1870,28 @@ static int TranslateKey(UINT message, WPARAM wParam, LPARAM lParam, #endif /* Note if AltGr was pressed and if it was used as a compose key */ - if (wParam == VK_MENU && (HIWORD(lParam)&KF_EXTENDED)) - { - keystate[VK_RMENU] = keystate[VK_MENU]; - if (!compose_state) compose_key = wParam; - } - if (wParam == VK_APPS && !compose_state) - compose_key = wParam; + if (cfg.compose_key) { + if (wParam == VK_MENU && (HIWORD(lParam)&KF_EXTENDED)) + { + keystate[VK_RMENU] = keystate[VK_MENU]; + if (!compose_state) compose_key = wParam; + } + if (wParam == VK_APPS && !compose_state) + compose_key = wParam; - if (wParam == compose_key) - { - if (compose_state == 0 && (HIWORD(lParam)&(KF_UP|KF_REPEAT))==0) - compose_state = 1; - else if (compose_state == 1 && (HIWORD(lParam)&KF_UP)) - compose_state = 2; - else - compose_state = 0; - } - else if (compose_state==1 && wParam != VK_CONTROL) - compose_state = 0; + if (wParam == compose_key) + { + if (compose_state == 0 && (HIWORD(lParam)&(KF_UP|KF_REPEAT))==0) + compose_state = 1; + else if (compose_state == 1 && (HIWORD(lParam)&KF_UP)) + compose_state = 2; + else + compose_state = 0; + } + else if (compose_state==1 && wParam != VK_CONTROL) + compose_state = 0; + } else + compose_state = 0; /* Nastyness with NUMLock - Shift-NUMLock is left alone though */ if ( (cfg.funky_type == 3 || (cfg.funky_type <= 1 && app_keypad_keys)) @@ -2261,8 +2264,10 @@ static int TranslateKey(UINT message, WPARAM wParam, LPARAM lParam, } /* This stops ALT press-release doing a 'COMMAND MENU' function */ - if (message == WM_SYSKEYUP && wParam == VK_MENU) - return 0; + if (!cfg.alt_only) { + if (message == WM_SYSKEYUP && wParam == VK_MENU) + return 0; + } return -1; }