From 5f919ee8ebe15906bf865e772d5b922438e95ec0 Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Sun, 21 Jul 2013 17:46:43 +0200 Subject: updated for version 7.4a.037 Problem: Win32: When mouse is hidden and in the toolbar, moving it won't make it appear. (Sami Salonen) Solution: Add tabline_wndproc() and toolbar_wndproc(). (Ken Takata) --- src/gui_w32.c | 26 ++++++++++++++++++++++++++ src/gui_w48.c | 2 ++ src/version.c | 2 ++ 3 files changed, 30 insertions(+) diff --git a/src/gui_w32.c b/src/gui_w32.c index 4443d35c0..5ec14983e 100644 --- a/src/gui_w32.c +++ b/src/gui_w32.c @@ -344,11 +344,13 @@ static UINT msh_msgmousewheel = 0; static int s_usenewlook; /* emulate W95/NT4 non-bold dialogs */ #ifdef FEAT_TOOLBAR static void initialise_toolbar(void); +static LRESULT CALLBACK toolbar_wndproc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam); static int get_toolbar_bitmap(vimmenu_T *menu); #endif #ifdef FEAT_GUI_TABLINE static void initialise_tabline(void); +static LRESULT CALLBACK tabline_wndproc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam); #endif #ifdef FEAT_MBYTE_IME @@ -4127,10 +4129,22 @@ initialise_toolbar(void) TOOLBAR_BUTTON_HEIGHT, sizeof(TBBUTTON) ); + s_toolbar_wndproc = SubclassWindow(s_toolbarhwnd, toolbar_wndproc); gui_mch_show_toolbar(vim_strchr(p_go, GO_TOOLBAR) != NULL); } + static LRESULT CALLBACK +toolbar_wndproc( + HWND hwnd, + UINT uMsg, + WPARAM wParam, + LPARAM lParam) +{ + HandleMouseHide(uMsg, lParam); + return CallWindowProc(s_toolbar_wndproc, hwnd, uMsg, wParam, lParam); +} + static int get_toolbar_bitmap(vimmenu_T *menu) { @@ -4207,12 +4221,24 @@ initialise_tabline(void) WS_CHILD|TCS_FOCUSNEVER|TCS_TOOLTIPS, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, s_hwnd, NULL, s_hinst, NULL); + s_tabline_wndproc = SubclassWindow(s_tabhwnd, tabline_wndproc); gui.tabline_height = TABLINE_HEIGHT; # ifdef USE_SYSMENU_FONT set_tabline_font(); # endif +} + + static LRESULT CALLBACK +tabline_wndproc( + HWND hwnd, + UINT uMsg, + WPARAM wParam, + LPARAM lParam) +{ + HandleMouseHide(uMsg, lParam); + return CallWindowProc(s_tabline_wndproc, hwnd, uMsg, wParam, lParam); } #endif diff --git a/src/gui_w48.c b/src/gui_w48.c index 8097fb9c1..4458bde53 100644 --- a/src/gui_w48.c +++ b/src/gui_w48.c @@ -177,10 +177,12 @@ static HBRUSH s_brush = NULL; #ifdef FEAT_TOOLBAR static HWND s_toolbarhwnd = NULL; +static WNDPROC s_toolbar_wndproc = NULL; #endif #ifdef FEAT_GUI_TABLINE static HWND s_tabhwnd = NULL; +static WNDPROC s_tabline_wndproc = NULL; static int showing_tabline = 0; #endif diff --git a/src/version.c b/src/version.c index b22b9749c..16faee2f9 100644 --- a/src/version.c +++ b/src/version.c @@ -727,6 +727,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 37, /**/ 36, /**/ -- cgit v1.2.1