summaryrefslogtreecommitdiff
path: root/src/gui_w32.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/gui_w32.c')
-rw-r--r--src/gui_w32.c23
1 files changed, 16 insertions, 7 deletions
diff --git a/src/gui_w32.c b/src/gui_w32.c
index 9399c930e..6733ac062 100644
--- a/src/gui_w32.c
+++ b/src/gui_w32.c
@@ -2152,16 +2152,25 @@ process_message(void)
if (len <= 0)
{
- if ( dead_key == DEAD_KEY_SET_DEFAULT
- && (GetKeyState(VK_CONTROL) & 0x8000)
- && ( (vk == 221 && scan_code == 26) // AZERTY CTRL+dead_circumflex
- || (vk == 220 && scan_code == 41) // QWERTZ CTRL+dead_circumflex
- )
- )
+ int wm_char = NUL;
+
+ if (dead_key == DEAD_KEY_SET_DEFAULT
+ && (GetKeyState(VK_CONTROL) & 0x8000))
+ {
+ if ( // AZERTY CTRL+dead_circumflex
+ (vk == 221 && scan_code == 26)
+ // QWERTZ CTRL+dead_circumflex
+ || (vk == 220 && scan_code == 41))
+ wm_char = '[';
+ if ( // QWERTZ CTRL+dead_two-overdots
+ (vk == 192 && scan_code == 27))
+ wm_char = ']';
+ }
+ if (wm_char != NUL)
{
// post WM_CHAR='[' - which will be interpreted with CTRL
// still hold as ESC
- PostMessageW(msg.hwnd, WM_CHAR, '[', msg.lParam);
+ PostMessageW(msg.hwnd, WM_CHAR, wm_char, msg.lParam);
// ask _OnChar() to not touch this state, wait for next key
// press and maintain knowledge that we are "poisoned" with
// "dead state"