From 44f60c720d1995effc596a0adc99f62b6dbe2fad Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Wed, 17 Feb 2010 16:30:52 +0000 Subject: [PATCH] [7.2.362] Win64: Vim doesn't work when cross-compiled with MingW libraries. 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) Patch 7.2.362 (extra, after 7.2.352) --- src/gui_w32.c | 23 +++++++++++++++++++++++ src/gui_w48.c | 7 ------- src/version.c | 2 ++ 3 files changed, 25 insertions(+), 7 deletions(-) diff --git a/src/gui_w32.c b/src/gui_w32.c index 5a43d82..3331d54 100644 --- 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; diff --git a/src/gui_w48.c b/src/gui_w48.c index 40af60f..ddaf1fb 100644 --- a/src/gui_w48.c +++ b/src/gui_w48.c @@ -1084,13 +1084,6 @@ _TextAreaWndProc( 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); } diff --git a/src/version.c b/src/version.c index 89a553d..47c1223 100644 --- a/src/version.c +++ b/src/version.c @@ -682,6 +682,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 362, +/**/ 361, /**/ 360, -- 2.11.4.GIT