Mercurial > vim
changeset 2078:d7ce3adb8dda v7.2.362
updated for version 7.2.362
Problem: Win64: Vim doesn't work when cross-compiled with MingW libraries.
Solution: Instead of handling WM_NCCREATE, create wide text area window
class if the parent window iw side. (Sergey Khorev)
author | Bram Moolenaar <bram@zimbu.org> |
---|---|
date | Wed, 17 Feb 2010 16:31:32 +0100 |
parents | d8983769c9dd |
children | 5abd3e3c0085 |
files | src/gui_w32.c src/gui_w48.c src/version.c |
diffstat | 3 files changed, 25 insertions(+), 7 deletions(-) [+] |
line wrap: on
line diff
--- a/src/gui_w32.c +++ b/src/gui_w32.c @@ -1329,6 +1329,7 @@ gui_mch_init(void) WNDCLASS wndclass; #ifdef FEAT_MBYTE const WCHAR szVimWndClassW[] = VIM_CLASSW; + const WCHAR szTextAreaClassW[] = L"VimTextArea"; WNDCLASSW wndclassw; #endif #ifdef GLOBAL_IME @@ -1479,6 +1480,28 @@ gui_mch_init(void) #endif /* Create the text area window */ +#ifdef FEAT_MBYTE + if (wide_WindowProc) + { + if (GetClassInfoW(s_hinst, szTextAreaClassW, &wndclassw) == 0) + { + wndclassw.style = CS_OWNDC; + wndclassw.lpfnWndProc = _TextAreaWndProc; + wndclassw.cbClsExtra = 0; + wndclassw.cbWndExtra = 0; + wndclassw.hInstance = s_hinst; + wndclassw.hIcon = NULL; + wndclassw.hCursor = LoadCursor(NULL, IDC_ARROW); + wndclassw.hbrBackground = NULL; + wndclassw.lpszMenuName = NULL; + wndclassw.lpszClassName = szTextAreaClassW; + + if (RegisterClassW(&wndclassw) == 0) + return FAIL; + } + } + else +#endif if (GetClassInfo(s_hinst, szTextAreaClass, &wndclass) == 0) { wndclass.style = CS_OWNDC;
--- a/src/gui_w48.c +++ b/src/gui_w48.c @@ -1084,13 +1084,6 @@ HandleMouseHide(UINT uMsg, LPARAM lParam case WM_NOTIFY: Handle_WM_Notify(hwnd, (LPNMHDR)lParam); return TRUE; #endif - /* Workaround for the problem that MyWindowProc() returns FALSE on 64 - * bit windows when cross-compiled using Mingw libraries. (Andy - * Kittner) */ - case WM_NCCREATE: - MyWindowProc(hwnd, uMsg, wParam, lParam); - return TRUE; - default: return MyWindowProc(hwnd, uMsg, wParam, lParam); }