home *** CD-ROM | disk | FTP | other *** search
- To: vim_dev@googlegroups.com
- Subject: Patch 7.4.413
- Fcc: outbox
- From: Bram Moolenaar <Bram@moolenaar.net>
- Mime-Version: 1.0
- Content-Type: text/plain; charset=UTF-8
- Content-Transfer-Encoding: 8bit
- ------------
-
- Patch 7.4.413
- Problem: MS-Windows: Using US international keyboard layout, inserting dead
- key by pressing space does not always work. Issue 250.
- Solution: Let MS-Windows translate the message. (John Wellesz)
- Files: src/gui_w48.c
-
-
- *** ../vim-7.4.412/src/gui_w48.c 2014-08-06 14:52:05.043236174 +0200
- --- src/gui_w48.c 2014-08-22 18:41:09.151182571 +0200
- ***************
- *** 614,619 ****
- --- 614,621 ----
- char_u string[40];
- int len = 0;
-
- + dead_key = 0;
- +
- len = char_to_string(ch, string, 40, FALSE);
- if (len == 1 && string[0] == Ctrl_C && ctrl_c_interrupts)
- {
- ***************
- *** 1788,1811 ****
- if (msg.message == WM_KEYDOWN || msg.message == WM_SYSKEYDOWN)
- {
- vk = (int) msg.wParam;
- ! /* handle key after dead key, but ignore shift, alt and control */
- ! if (dead_key && vk != VK_SHIFT && vk != VK_MENU && vk != VK_CONTROL)
- {
- dead_key = 0;
- ! /* handle non-alphabetic keys (ones that hopefully cannot generate
- ! * umlaut-characters), unless when control is down */
- ! if (vk < 'A' || vk > 'Z' || (GetKeyState(VK_CONTROL) & 0x8000))
- ! {
- ! MSG dm;
- !
- ! dm.message = msg.message;
- ! dm.hwnd = msg.hwnd;
- ! dm.wParam = VK_SPACE;
- ! MyTranslateMessage(&dm); /* generate dead character */
- ! if (vk != VK_SPACE) /* and send current character once more */
- ! PostMessage(msg.hwnd, msg.message, msg.wParam, msg.lParam);
- ! return;
- ! }
- }
-
- /* Check for CTRL-BREAK */
- --- 1790,1810 ----
- if (msg.message == WM_KEYDOWN || msg.message == WM_SYSKEYDOWN)
- {
- vk = (int) msg.wParam;
- ! /*
- ! * If a dead key was pressed and the user presses VK_SPACE, VK_BACK, or
- ! * VK_ESCAPE it means that he actually wants to deal with the dead char
- ! * now, so do nothing special and let Windows handle it.
- ! *
- ! * Note that VK_SPACE combines with the dead_key's character and only
- ! * one WM_CHAR will be generated by TranslateMessage(), in the two
- ! * other cases two WM_CHAR will be generated: the dead char and VK_BACK
- ! * or VK_ESCAPE. That is most likely what the user expects.
- ! */
- ! if (dead_key && (vk == VK_SPACE || vk == VK_BACK || vk == VK_ESCAPE))
- {
- dead_key = 0;
- ! MyTranslateMessage(&msg);
- ! return;
- }
-
- /* Check for CTRL-BREAK */
- *** ../vim-7.4.412/src/version.c 2014-08-22 18:12:53.999244049 +0200
- --- src/version.c 2014-08-22 18:39:03.915187113 +0200
- ***************
- *** 743,744 ****
- --- 743,746 ----
- { /* Add new patch number below this line */
- + /**/
- + 413,
- /**/
-
- --
- hundred-and-one symptoms of being an internet addict:
- 43. You tell the kids they can't use the computer because "Daddy's got work to
- do" and you don't even have a job.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
- /// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
- \\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
-