diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/gui_gtk_x11.c | 3 | ||||
-rw-r--r-- | src/option.c | 13 | ||||
-rw-r--r-- | src/option.h | 1 | ||||
-rw-r--r-- | src/proto/gui.pro | 1 | ||||
-rw-r--r-- | src/proto/window.pro | 1 | ||||
-rw-r--r-- | src/screen.c | 26 | ||||
-rw-r--r-- | src/structs.h | 12 | ||||
-rw-r--r-- | src/syntax.c | 7 | ||||
-rw-r--r-- | src/version.h | 4 |
9 files changed, 54 insertions, 14 deletions
diff --git a/src/gui_gtk_x11.c b/src/gui_gtk_x11.c index 1502e0c1c..c608f9d4a 100644 --- a/src/gui_gtk_x11.c +++ b/src/gui_gtk_x11.c @@ -3456,6 +3456,9 @@ update_window_manager_hints(void) * otherwise the hints don't work. */ width = gui_get_base_width(); height = gui_get_base_height(); +# ifdef FEAT_MENU + height += tabpageline_height() * gui.char_height; +# endif # ifdef HAVE_GTK2 width += get_menu_tool_width(); height += get_menu_tool_height(); diff --git a/src/option.c b/src/option.c index cca91cc5d..25ddafbd2 100644 --- a/src/option.c +++ b/src/option.c @@ -2181,6 +2181,13 @@ static struct vimoption {(char_u *)0L, (char_u *)0L} #endif }, + {"tabline", "tal", P_NUM|P_VI_DEF|P_RALL, +#ifdef FEAT_WINDOWS + (char_u *)&p_tal, PV_NONE, +#else + (char_u *)NULL, PV_NONE, +#endif + {(char_u *)1L, (char_u *)0L}}, {"tabstop", "ts", P_NUM|P_VI_DEF|P_RBUF, (char_u *)&p_ts, PV_TS, {(char_u *)8L, (char_u *)0L}}, @@ -7259,6 +7266,12 @@ set_num_option(opt_idx, varp, value, errbuf, errbuflen, opt_flags) { last_status(FALSE); } + + /* (re)set tab page line */ + else if (pp == &p_tal) + { + shell_new_rows(); /* recompute window positions and heights */ + } #endif #ifdef FEAT_GUI diff --git a/src/option.h b/src/option.h index f1714ae44..d3c01ecd1 100644 --- a/src/option.h +++ b/src/option.h @@ -577,6 +577,7 @@ EXTERN char_u *p_lispwords; /* 'lispwords' */ #endif #ifdef FEAT_WINDOWS EXTERN long p_ls; /* 'laststatus' */ +EXTERN long p_tal; /* 'tabline' */ #endif EXTERN char_u *p_lcs; /* 'listchars' */ diff --git a/src/proto/gui.pro b/src/proto/gui.pro index d9dea654d..eacc2ac82 100644 --- a/src/proto/gui.pro +++ b/src/proto/gui.pro @@ -34,6 +34,7 @@ void gui_send_mouse_event __ARGS((int button, int x, int y, int repeated_click, int gui_xy2colrow __ARGS((int x, int y, int *colp)); void gui_menu_cb __ARGS((vimmenu_T *menu)); void gui_init_which_components __ARGS((char_u *oldval)); +void gui_remove_scrollbars __ARGS((void)); void gui_create_scrollbar __ARGS((scrollbar_T *sb, int type, win_T *wp)); scrollbar_T *gui_find_scrollbar __ARGS((long ident)); void gui_drag_scrollbar __ARGS((scrollbar_T *sb, long value, int still_dragging)); diff --git a/src/proto/window.pro b/src/proto/window.pro index a1808bc69..0ff745a08 100644 --- a/src/proto/window.pro +++ b/src/proto/window.pro @@ -26,6 +26,7 @@ void shell_new_rows __ARGS((void)); void shell_new_columns __ARGS((void)); void win_size_save __ARGS((garray_T *gap)); void win_size_restore __ARGS((garray_T *gap)); +int win_comp_pos __ARGS((void)); void win_setheight __ARGS((int height)); void win_setheight_win __ARGS((int height, win_T *win)); void win_setwidth __ARGS((int width)); diff --git a/src/screen.c b/src/screen.c index ba5475b0d..9005efafd 100644 --- a/src/screen.c +++ b/src/screen.c @@ -701,8 +701,14 @@ updateWindow(wp) if (clip_star.available && clip_isautosel()) clip_update_selection(); #endif + win_update(wp); + #ifdef FEAT_WINDOWS + /* When the screen was cleared redraw the tab pages line. */ + if (redraw_tabpage) + draw_tabpage(); + if (wp->w_redr_status # ifdef FEAT_CMDL_INFO || p_ru @@ -7057,6 +7063,9 @@ screenclear2() win_rest_invalid(firstwin); redraw_cmdline = TRUE; +#ifdef FEAT_WINDOWS + redraw_tabpage = TRUE; +#endif if (must_redraw == CLEAR) /* no need to clear again */ must_redraw = NOT_VALID; compute_cmdrow(); @@ -8468,11 +8477,14 @@ draw_tabpage() c = '/'; else c = '\\'; - screen_putchar(c, 0, col++, attr); + if (t_colors < 8) + screen_putchar(c, 0, col++, attr); if (tp->tp_topframe != topframe) attr = attr_nosel; + screen_putchar(' ', 0, col++, attr); + if (tp->tp_topframe == topframe) wp = curwin; else @@ -8488,11 +8500,17 @@ draw_tabpage() len = tabwidth; screen_puts_len(NameBuff, len, 0, col, attr); col += len; + screen_putchar(' ', 0, col++, attr); } - screen_putchar('\\', 0, col++, attr); - while (col < Columns) - screen_putchar('_', 0, col++, attr_fill); + if (t_colors < 8) + { + screen_putchar('\\', 0, col++, attr); + c = '_'; + } + else + c = ' '; + screen_fill(0, 1, col, (int)Columns, c, c, attr_fill); } #endif diff --git a/src/structs.h b/src/structs.h index a743a4f46..893b826f9 100644 --- a/src/structs.h +++ b/src/structs.h @@ -1555,11 +1555,13 @@ typedef struct w_line typedef struct tabpage_S tabpage_T; struct tabpage_S { - tabpage_T *tp_next; /* next tabpage or NULL */ - frame_T *tp_topframe; - win_T *tp_curwin; /* current window in this Tab page */ - win_T *tp_firstwin; /* first window in this Tab page */ - win_T *tp_lastwin; /* last window in this Tab page */ + tabpage_T *tp_next; /* next tabpage or NULL */ + frame_T *tp_topframe; /* topframe for the windows */ + win_T *tp_curwin; /* current window in this Tab page */ + win_T *tp_firstwin; /* first window in this Tab page */ + win_T *tp_lastwin; /* last window in this Tab page */ + long tp_old_Rows; /* Rows when Tab page was left */ + long tp_old_Columns; /* Columns when Tab page was left */ }; /* diff --git a/src/syntax.c b/src/syntax.c index 0db3a6e74..2574f3d47 100644 --- a/src/syntax.c +++ b/src/syntax.c @@ -6079,9 +6079,8 @@ static char *(highlight_init_both[]) = "DiffText term=reverse cterm=bold ctermbg=Red gui=bold guibg=Red", "PmenuThumb cterm=reverse gui=reverse", "PmenuSbar ctermbg=Grey guibg=Grey", - "TabPage term=underline cterm=underline ctermbg=grey gui=underline guibg=grey", - "TabPageSel term=reverse,bold cterm=reverse,bold gui=reverse,bold", - "TabPageFill term=underline cterm=underline ctermbg=grey gui=underline guibg=grey", + "TabPageSel term=bold cterm=bold gui=bold", + "TabPageFill term=reverse cterm=reverse gui=reverse", NULL }; @@ -6110,6 +6109,7 @@ static char *(highlight_init_light[]) = "DiffAdd term=bold ctermbg=LightBlue guibg=LightBlue", "DiffChange term=bold ctermbg=LightMagenta guibg=LightMagenta", "DiffDelete term=bold ctermfg=Blue ctermbg=LightCyan gui=bold guifg=Blue guibg=LightCyan", + "TabPage term=underline cterm=underline ctermbg=LightGrey gui=underline guibg=LightGrey", NULL }; @@ -6138,6 +6138,7 @@ static char *(highlight_init_dark[]) = "DiffAdd term=bold ctermbg=DarkBlue guibg=DarkBlue", "DiffChange term=bold ctermbg=DarkMagenta guibg=DarkMagenta", "DiffDelete term=bold ctermfg=Blue ctermbg=DarkCyan gui=bold guifg=Blue guibg=DarkCyan", + "TabPage term=underline cterm=underline ctermbg=DarkGrey gui=underline guibg=DarkGrey", NULL }; diff --git a/src/version.h b/src/version.h index 6ff870f9f..0f561bc61 100644 --- a/src/version.h +++ b/src/version.h @@ -36,5 +36,5 @@ #define VIM_VERSION_NODOT "vim70aa" #define VIM_VERSION_SHORT "7.0aa" #define VIM_VERSION_MEDIUM "7.0aa ALPHA" -#define VIM_VERSION_LONG "VIM - Vi IMproved 7.0aa ALPHA (2006 Feb 14)" -#define VIM_VERSION_LONG_DATE "VIM - Vi IMproved 7.0aa ALPHA (2006 Feb 14, compiled " +#define VIM_VERSION_LONG "VIM - Vi IMproved 7.0aa ALPHA (2006 Feb 15)" +#define VIM_VERSION_LONG_DATE "VIM - Vi IMproved 7.0aa ALPHA (2006 Feb 15, compiled " |