summaryrefslogtreecommitdiff
path: root/src/gui_w32.c
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2022-01-22 10:24:47 +0000
committerBram Moolenaar <Bram@vim.org>2022-01-22 10:24:47 +0000
commit0bd663a3804fceb3efb26a179e9c1d830ddcdb6e (patch)
tree21e6a4faa46171abba58129a04001370b0cbcd81 /src/gui_w32.c
parent19e69a63302f7f8972cee723bf0f3fc176825583 (diff)
downloadvim-git-0bd663a3804fceb3efb26a179e9c1d830ddcdb6e.tar.gz
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.c146
1 files changed, 11 insertions, 135 deletions
diff --git a/src/gui_w32.c b/src/gui_w32.c
index 97abfab42..588b5fa3e 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;