To: vim_dev@googlegroups.com Subject: Patch 7.4a.037 Fcc: outbox From: Bram Moolenaar Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ------------ Patch 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) Files: src/gui_w32.c, src/gui_w48.c *** ../vim-7.4a.036/src/gui_w32.c 2013-06-27 22:26:31.000000000 +0200 --- src/gui_w32.c 2013-07-21 17:28:36.000000000 +0200 *************** *** 344,354 **** --- 344,356 ---- 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,4136 **** --- 4129,4150 ---- 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,4212 **** --- 4221,4227 ---- 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; *************** *** 4214,4219 **** --- 4229,4245 ---- 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 #if defined(FEAT_OLE) || defined(FEAT_EVAL) || defined(PROTO) *** ../vim-7.4a.036/src/gui_w48.c 2013-07-17 21:59:06.000000000 +0200 --- src/gui_w48.c 2013-07-21 17:28:36.000000000 +0200 *************** *** 177,186 **** --- 177,188 ---- #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 *** ../vim-7.4a.036/src/version.c 2013-07-21 17:05:54.000000000 +0200 --- src/version.c 2013-07-21 17:29:45.000000000 +0200 *************** *** 729,730 **** --- 729,732 ---- { /* Add new patch number below this line */ + /**/ + 37, /**/ -- hundred-and-one symptoms of being an internet addict: 4. Your eyeglasses have a web site burned in on them. /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ /// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ \\\ an exciting new programming language -- http://www.Zimbu.org /// \\\ help me help AIDS victims -- http://ICCF-Holland.org ///