summaryrefslogtreecommitdiff
path: root/src/normal.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/normal.c')
-rw-r--r--src/normal.c25
1 files changed, 19 insertions, 6 deletions
diff --git a/src/normal.c b/src/normal.c
index 07857f5ba..4f4ffa954 100644
--- a/src/normal.c
+++ b/src/normal.c
@@ -2437,13 +2437,23 @@ do_mouse(oap, c, dir, count, fixindent)
c1 = TabPageIdxs[mouse_col];
if (c1 >= 0)
{
- /* Go to specified tab page, or next one if not clicking on a
- * label. */
- goto_tabpage(c1);
-
- /* It's like clicking on the status line of a window. */
- if (curwin != old_curwin)
+ if ((mod_mask & MOD_MASK_MULTI_CLICK) == MOD_MASK_2CLICK)
+ {
+ /* double click opens new page */
end_visual_mode();
+ tabpage_new();
+ tabpage_move(c1 == 0 ? 9999 : c1 - 1);
+ }
+ else
+ {
+ /* Go to specified tab page, or next one if not clicking
+ * on a label. */
+ goto_tabpage(c1);
+
+ /* It's like clicking on the status line of a window. */
+ if (curwin != old_curwin)
+ end_visual_mode();
+ }
}
else if (c1 < 0)
{
@@ -7895,6 +7905,9 @@ nv_g_cmd(cap)
case 't':
goto_tabpage((int)cap->count0);
break;
+ case 'T':
+ goto_tabpage(-(int)cap->count1);
+ break;
#endif
default: