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:
@@ -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
|
||||||
|
@@ -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
|
||||||
|
28
src/normal.c
28
src/normal.c
@@ -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
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
Reference in New Issue
Block a user