Patch 8.2.2940

5 views
Skip to first unread message

Bram Moolenaar

unread,
Jun 5, 2021, 10:26:05 AM6/5/21
to vim...@googlegroups.com

Patch 8.2.2940
Problem: MS-Windows: cannot see the size of the text area when resizing the
gvim window.
Solution: Show a tooltip with the text size. (Ken Takata, closes #8326)
Files: src/gui_w32.c


*** ../vim-8.2.2939/src/gui_w32.c 2021-06-02 13:28:11.431120460 +0200
--- src/gui_w32.c 2021-06-05 16:22:53.510159602 +0200
***************
*** 2942,2948 ****
int w,
int h,
int *valid_w,
! int *valid_h)
{
int base_width, base_height;

--- 2942,2950 ----
int w,
int h,
int *valid_w,
! int *valid_h,
! int *cols,
! int *rows)
{
int base_width, base_height;

***************
*** 2957,2966 ****
+ gui_mswin_get_menu_height(FALSE)
#endif
;
! *valid_w = base_width +
! ((w - base_width) / gui.char_width) * gui.char_width;
! *valid_h = base_height +
! ((h - base_height) / gui.char_height) * gui.char_height;
}

void
--- 2959,2968 ----
+ gui_mswin_get_menu_height(FALSE)
#endif
;
! *cols = (w - base_width) / gui.char_width;
! *rows = (h - base_height) / gui.char_height;
! *valid_w = base_width + *cols * gui.char_width;
! *valid_h = base_height + *rows * gui.char_height;
}

void
***************
*** 4480,4485 ****
--- 4482,4527 ----
}
#endif

+
+ static HWND hwndTip = NULL;
+
+ static void
+ show_sizing_tip(int cols, int rows)
+ {
+ TOOLINFOA ti = {sizeof(ti)};
+ char buf[32];
+
+ ti.hwnd = s_hwnd;
+ ti.uId = (UINT_PTR)s_hwnd;
+ ti.uFlags = TTF_SUBCLASS | TTF_IDISHWND;
+ ti.lpszText = buf;
+ sprintf(buf, "%dx%d", cols, rows);
+ if (hwndTip == NULL)
+ {
+ hwndTip = CreateWindowExA(0, TOOLTIPS_CLASSA, NULL,
+ WS_POPUP | TTS_ALWAYSTIP | TTS_NOPREFIX,
+ CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT,
+ s_hwnd, NULL, GetModuleHandle(NULL), NULL);
+ SendMessage(hwndTip, TTM_ADDTOOL, 0, (LPARAM)&ti);
+ SendMessage(hwndTip, TTM_TRACKACTIVATE, TRUE, (LPARAM)&ti);
+ }
+ else
+ {
+ SendMessage(hwndTip, TTM_UPDATETIPTEXT, 0, (LPARAM)&ti);
+ }
+ SendMessage(hwndTip, TTM_POPUP, 0, 0);
+ }
+
+ static void
+ destroy_sizing_tip(void)
+ {
+ if (hwndTip != NULL)
+ {
+ DestroyWindow(hwndTip);
+ hwndTip = NULL;
+ }
+ }
+
static int
_DuringSizing(
UINT fwSide,
***************
*** 4488,4497 ****
int w, h;
int valid_w, valid_h;
int w_offset, h_offset;

w = lprc->right - lprc->left;
h = lprc->bottom - lprc->top;
! gui_mswin_get_valid_dimensions(w, h, &valid_w, &valid_h);
w_offset = w - valid_w;
h_offset = h - valid_h;

--- 4530,4540 ----
int w, h;
int valid_w, valid_h;
int w_offset, h_offset;
+ int cols, rows;

w = lprc->right - lprc->left;
h = lprc->bottom - lprc->top;
! gui_mswin_get_valid_dimensions(w, h, &valid_w, &valid_h, &cols, &rows);
w_offset = w - valid_w;
h_offset = h - valid_h;

***************
*** 4508,4513 ****
--- 4551,4558 ----
else if (fwSide == WMSZ_BOTTOM || fwSide == WMSZ_BOTTOMLEFT
|| fwSide == WMSZ_BOTTOMRIGHT)
lprc->bottom -= h_offset;
+
+ show_sizing_tip(cols, rows);
return TRUE;
}

***************
*** 4648,4653 ****
--- 4693,4702 ----
return 0L;
#endif

+ case WM_EXITSIZEMOVE:
+ destroy_sizing_tip();
+ break;
+
case WM_SIZING: // HANDLE_MSG doesn't seem to handle this one
return _DuringSizing((UINT)wParam, (LPRECT)lParam);

*** ../vim-8.2.2939/src/version.c 2021-06-05 16:06:36.965265806 +0200
--- src/version.c 2021-06-05 16:24:59.605833636 +0200
***************
*** 752,753 ****
--- 752,755 ----
{ /* Add new patch number below this line */
+ /**/
+ 2940,
/**/

--
ARTHUR: CHARGE!
[The mighty ARMY charges. Thundering noise of feet. Clatter of coconuts.
Shouts etc. Suddenly there is a wail of a siren and a couple of police
cars roar round in front of the charging ARMY and the POLICE leap out and
stop them. TWO POLICEMAN and the HISTORIAN'S WIFE. Black Marias skid up
behind them.]
HISTORIAN'S WIFE: They're the ones, I'm sure.
"Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD

/// Bram Moolenaar -- Br...@Moolenaar.net -- http://www.Moolenaar.net \\\
/// \\\
\\\ sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///
Reply all
Reply to author
Forward
0 new messages