diff options
author | Bram Moolenaar <Bram@vim.org> | 2022-01-22 10:24:47 +0000 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2022-01-22 10:24:47 +0000 |
commit | 0bd663a3804fceb3efb26a179e9c1d830ddcdb6e (patch) | |
tree | 21e6a4faa46171abba58129a04001370b0cbcd81 /src/gui_w32.c | |
parent | 19e69a63302f7f8972cee723bf0f3fc176825583 (diff) |
patch 8.2.4175: MS-Windows: runtime check for multi-line balloon is obsoletev8.2.4175
Problem: MS-Windows: runtime check for multi-line balloon is obsolete.
Solution: Remove the obsolete code. (Ken Takata, closes #9592)
Diffstat (limited to 'src/gui_w32.c')
-rw-r--r-- | src/gui_w32.c | 146 |
1 files changed, 11 insertions, 135 deletions
diff --git a/src/gui_w32.c b/src/gui_w32.c index 97abfab429..588b5fa3e5 100644 --- a/src/gui_w32.c +++ b/src/gui_w32.c @@ -4035,42 +4035,6 @@ static UINT_PTR BevalTimerId = 0; static DWORD LastActivity = 0; -// cproto fails on missing include files -# ifndef PROTO - -/* - * excerpts from headers since this may not be presented - * in the extremely old compilers - */ -# include <pshpack1.h> - -# endif - -typedef struct _DllVersionInfo -{ - DWORD cbSize; - DWORD dwMajorVersion; - DWORD dwMinorVersion; - DWORD dwBuildNumber; - DWORD dwPlatformID; -} DLLVERSIONINFO; - -# ifndef PROTO -# include <poppack.h> -# endif - -typedef struct tagTOOLINFOA_NEW -{ - UINT cbSize; - UINT uFlags; - HWND hwnd; - UINT_PTR uId; - RECT rect; - HINSTANCE hinst; - LPSTR lpszText; - LPARAM lParam; -} TOOLINFO_NEW; - typedef struct tagNMTTDISPINFO_NEW { NMHDR hdr; @@ -4105,7 +4069,6 @@ typedef struct tagNMTTDISPINFOW_NEW } NMTTDISPINFOW_NEW; -typedef HRESULT (WINAPI* DLLGETVERSIONPROC)(DLLVERSIONINFO *); # ifndef TTM_SETMAXTIPWIDTH # define TTM_SETMAXTIPWIDTH (WM_USER+24) # endif @@ -8497,89 +8460,13 @@ gui_mch_destroy_sign(void *sign) * 5) WM_NOTIFY:TTN_POP destroys created tooltip */ -/* - * determine whether installed Common Controls support multiline tooltips - * (i.e. their version is >= 4.70 - */ - int -multiline_balloon_available(void) -{ - HINSTANCE hDll; - static char comctl_dll[] = "comctl32.dll"; - static int multiline_tip = MAYBE; - - if (multiline_tip != MAYBE) - return multiline_tip; - - hDll = GetModuleHandle(comctl_dll); - if (hDll != NULL) - { - DLLGETVERSIONPROC pGetVer; - pGetVer = (DLLGETVERSIONPROC)GetProcAddress(hDll, "DllGetVersion"); - - if (pGetVer != NULL) - { - DLLVERSIONINFO dvi; - HRESULT hr; - - ZeroMemory(&dvi, sizeof(dvi)); - dvi.cbSize = sizeof(dvi); - - hr = (*pGetVer)(&dvi); - - if (SUCCEEDED(hr) - && (dvi.dwMajorVersion > 4 - || (dvi.dwMajorVersion == 4 - && dvi.dwMinorVersion >= 70))) - { - multiline_tip = TRUE; - return multiline_tip; - } - } - else - { - // there is chance we have ancient CommCtl 4.70 - // which doesn't export DllGetVersion - DWORD dwHandle = 0; - DWORD len = GetFileVersionInfoSize(comctl_dll, &dwHandle); - if (len > 0) - { - VS_FIXEDFILEINFO *ver; - UINT vlen = 0; - void *data = alloc(len); - - if ((data != NULL - && GetFileVersionInfo(comctl_dll, 0, len, data) - && VerQueryValue(data, "\\", (void **)&ver, &vlen) - && vlen - && HIWORD(ver->dwFileVersionMS) > 4) - || ((HIWORD(ver->dwFileVersionMS) == 4 - && LOWORD(ver->dwFileVersionMS) >= 70))) - { - vim_free(data); - multiline_tip = TRUE; - return multiline_tip; - } - vim_free(data); - } - } - } - multiline_tip = FALSE; - return multiline_tip; -} - static void make_tooltip(BalloonEval *beval, char *text, POINT pt) { - TOOLINFOW *pti; - int ToolInfoSize; - - if (multiline_balloon_available()) - ToolInfoSize = sizeof(TOOLINFOW_NEW); - else - ToolInfoSize = sizeof(TOOLINFOW); + TOOLINFOW_NEW *pti; + RECT rect; - pti = alloc(ToolInfoSize); + pti = alloc(sizeof(TOOLINFOW_NEW)); if (pti == NULL) return; @@ -8591,30 +8478,19 @@ make_tooltip(BalloonEval *beval, char *text, POINT pt) SetWindowPos(beval->balloon, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE | SWP_NOACTIVATE); - pti->cbSize = ToolInfoSize; + pti->cbSize = sizeof(TOOLINFOW_NEW); pti->uFlags = TTF_SUBCLASS; pti->hwnd = beval->target; pti->hinst = 0; // Don't use string resources pti->uId = ID_BEVAL_TOOLTIP; - if (multiline_balloon_available()) - { - RECT rect; - TOOLINFOW_NEW *ptin = (TOOLINFOW_NEW *)pti; - pti->lpszText = LPSTR_TEXTCALLBACKW; - beval->tofree = enc_to_utf16((char_u*)text, NULL); - ptin->lParam = (LPARAM)beval->tofree; - // switch multiline tooltips on - if (GetClientRect(s_textArea, &rect)) - SendMessageW(beval->balloon, TTM_SETMAXTIPWIDTH, 0, - (LPARAM)rect.right); - } - else - { - // do this old way - beval->tofree = enc_to_utf16((char_u*)text, NULL); - pti->lpszText = (LPWSTR)beval->tofree; - } + pti->lpszText = LPSTR_TEXTCALLBACKW; + beval->tofree = enc_to_utf16((char_u*)text, NULL); + pti->lParam = (LPARAM)beval->tofree; + // switch multiline tooltips on + if (GetClientRect(s_textArea, &rect)) + SendMessageW(beval->balloon, TTM_SETMAXTIPWIDTH, 0, + (LPARAM)rect.right); // Limit ballooneval bounding rect to CursorPos neighbourhood. pti->rect.left = pt.x - 3; |