summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/evalfunc.c12
-rw-r--r--src/gui_w32.c146
-rw-r--r--src/proto/gui_w32.pro1
-rw-r--r--src/version.c2
4 files changed, 15 insertions, 146 deletions
diff --git a/src/evalfunc.c b/src/evalfunc.c
index c73128028..f83351254 100644
--- a/src/evalfunc.c
+++ b/src/evalfunc.c
@@ -5104,8 +5104,7 @@ f_has(typval_T *argvars, typval_T *rettv)
#endif
},
{"balloon_multiline",
-#if defined(FEAT_BEVAL_GUI) && !defined(FEAT_GUI_MSWIN)
- // MS-Windows requires runtime check, see below
+#ifdef FEAT_BEVAL_GUI
1
#else
0
@@ -6079,10 +6078,6 @@ f_has(typval_T *argvars, typval_T *rettv)
{
// intentionally empty
}
-#if defined(FEAT_BEVAL) && defined(FEAT_GUI_MSWIN)
- else if (STRICMP(name, "balloon_multiline") == 0)
- n = multiline_balloon_available();
-#endif
#ifdef VIMDLL
else if (STRICMP(name, "filterpipe") == 0)
n = gui.in_use || gui.starting;
@@ -6261,9 +6256,6 @@ f_has(typval_T *argvars, typval_T *rettv)
dynamic_feature(char_u *feature)
{
return (feature == NULL
-#if defined(FEAT_BEVAL) && defined(FEAT_GUI_MSWIN)
- || STRICMP(feature, "balloon_multiline") == 0
-#endif
#if defined(FEAT_GUI) && defined(FEAT_BROWSE)
|| (STRICMP(feature, "browse") == 0 && !gui.in_use)
#endif
@@ -6716,7 +6708,7 @@ f_islocked(typval_T *argvars, typval_T *rettv)
if (*end != NUL)
{
semsg(_(lv.ll_name == lv.ll_name_end
- ? e_invalid_argument_str : e_trailing_characters_str), end);
+ ? e_invalid_argument_str : e_trailing_characters_str), end);
}
else
{
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;
diff --git a/src/proto/gui_w32.pro b/src/proto/gui_w32.pro
index d850d22d1..43484ad80 100644
--- a/src/proto/gui_w32.pro
+++ b/src/proto/gui_w32.pro
@@ -90,7 +90,6 @@ void gui_mch_set_foreground(void);
void gui_mch_drawsign(int row, int col, int typenr);
void *gui_mch_register_sign(char_u *signfile);
void gui_mch_destroy_sign(void *sign);
-int multiline_balloon_available(void);
void gui_mch_disable_beval_area(BalloonEval *beval);
void gui_mch_enable_beval_area(BalloonEval *beval);
void gui_mch_post_balloon(BalloonEval *beval, char_u *mesg);
diff --git a/src/version.c b/src/version.c
index edf26ed80..728f72419 100644
--- a/src/version.c
+++ b/src/version.c
@@ -751,6 +751,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 4175,
+/**/
4174,
/**/
4173,