0
0
mirror of https://github.com/vim/vim.git synced 2025-09-23 03:43:49 -04:00

Make it possible to drag a tab page label to another position. (Paul B. Mahol)

This commit is contained in:
Bram Moolenaar
2010-07-17 16:30:42 +02:00
parent c5604bc165
commit 58f0a1f8e1
3 changed files with 30 additions and 5 deletions

View File

@@ -46,7 +46,7 @@ close the tab page.
OPENING A NEW TAB PAGE: OPENING A NEW TAB PAGE:
When starting Vim "vim -p filename ..." opens each file argument in a separate When starting Vim "vim -p filename ..." opens each file argument in a separate
tab page (up to 'tabpagemax'). |-p| tab page (up to 'tabpagemax'). See |-p|
A double click with the mouse in the non-GUI tab pages line opens a new, empty A double click with the mouse in the non-GUI tab pages line opens a new, empty
tab page. It is placed left of the position of the click. The first click tab page. It is placed left of the position of the click. The first click

View File

@@ -30,6 +30,8 @@ be worked on, but only if you sponsor Vim development. See |sponsor|.
*known-bugs* *known-bugs*
-------------------- Known bugs and current work ----------------------- -------------------- Known bugs and current work -----------------------
GTK: torn-off menu doesn't work.
Cursor positioning wrong with 0x200e character. (John Becket, 2010 May 6) Cursor positioning wrong with 0x200e character. (John Becket, 2010 May 6)
Test 69 breaks on MS-Windows, both 32 and 64 builds. (George Reilly, 2010 Feb Test 69 breaks on MS-Windows, both 32 and 64 builds. (George Reilly, 2010 Feb
@@ -1091,9 +1093,6 @@ Before (beta) release 7.3:
Vim 7.3: Vim 7.3:
Patches to possibly include: Patches to possibly include:
- 9 Make it possible to drag a tab page label to another position with the
mouse.
Patch by Paul B. Mahol, 2008 Aug 29.
- Mac: Patch to disable antialias. (LC Mi, 2008 Aug 23) Tested on 10.5 and - Mac: Patch to disable antialias. (LC Mi, 2008 Aug 23) Tested on 10.5 and
10.4. 10.4.
- Patch for adding "J" flag to 'cinoptions': placement of jump label. (Manuel - Patch for adding "J" flag to 'cinoptions': placement of jump label. (Manuel

View File

@@ -2281,6 +2281,9 @@ do_mouse(oap, c, dir, count, fixindent)
pos_T start_visual; pos_T start_visual;
int moved; /* Has cursor moved? */ int moved; /* Has cursor moved? */
int in_status_line; /* mouse in status line */ int in_status_line; /* mouse in status line */
#ifdef FEAT_WINDOWS
static int in_tab_line = FALSE; /* mouse clicked in tab line */
#endif
#ifdef FEAT_VERTSPLIT #ifdef FEAT_VERTSPLIT
int in_sep_line; /* mouse in vertical separator line */ int in_sep_line; /* mouse in vertical separator line */
#endif #endif
@@ -2358,7 +2361,16 @@ do_mouse(oap, c, dir, count, fixindent)
if (!got_click) /* didn't get click, ignore */ if (!got_click) /* didn't get click, ignore */
return FALSE; return FALSE;
if (!is_drag) /* release, reset got_click */ if (!is_drag) /* release, reset got_click */
{
got_click = FALSE; got_click = FALSE;
#ifdef FEAT_WINDOWS
if (in_tab_line)
{
in_tab_line = FALSE;
return FALSE;
}
#endif
}
} }
#ifndef FEAT_VISUAL #ifndef FEAT_VISUAL
@@ -2512,8 +2524,14 @@ do_mouse(oap, c, dir, count, fixindent)
if (mouse_row == 0 && firstwin->w_winrow > 0) if (mouse_row == 0 && firstwin->w_winrow > 0)
{ {
if (is_drag) if (is_drag)
{
if (in_tab_line)
{
c1 = TabPageIdxs[mouse_col];
tabpage_move(c1 <= 0 ? 9999 : c1 - 1);
}
return FALSE; return FALSE;
got_click = FALSE; /* ignore mouse-up and drag events */ }
/* click in a tab selects that tab page */ /* click in a tab selects that tab page */
if (is_click if (is_click
@@ -2522,6 +2540,7 @@ do_mouse(oap, c, dir, count, fixindent)
# endif # endif
&& mouse_col < Columns) && mouse_col < Columns)
{ {
in_tab_line = TRUE;
c1 = TabPageIdxs[mouse_col]; c1 = TabPageIdxs[mouse_col];
if (c1 >= 0) if (c1 >= 0)
{ {
@@ -2563,6 +2582,13 @@ do_mouse(oap, c, dir, count, fixindent)
} }
return TRUE; return TRUE;
} }
else if (is_drag && in_tab_line)
{
c1 = TabPageIdxs[mouse_col];
tabpage_move(c1 <= 0 ? 9999 : c1 - 1);
return FALSE;
}
#endif #endif
/* /*