]> granicus.if.org Git - vim/commitdiff
updated for version 7.4a.037 v7.4a.037
authorBram Moolenaar <Bram@vim.org>
Sun, 21 Jul 2013 15:46:43 +0000 (17:46 +0200)
committerBram Moolenaar <Bram@vim.org>
Sun, 21 Jul 2013 15:46:43 +0000 (17:46 +0200)
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
src/gui_w48.c
src/version.c

index 4443d35c0aad2b3cb9f8a3116326a60e8357ccea..5ec14983ecbd6d9303bf6e2b27bb98c4771a76b1 100644 (file)
@@ -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
 
index 8097fb9c1de4252f89f5714000921d36d009c6c0..4458bde53b1fa00342d4582a5a3de1ce1d7c85ab 100644 (file)
@@ -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
 
index b22b9749c33e86dde5aac9dd1f61f0eb34d643dd..16faee2f9742cdbf7103902aeeaef60cad3e40be 100644 (file)
@@ -727,6 +727,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    37,
 /**/
     36,
 /**/