diff options
Diffstat (limited to 'src/gui.c')
-rw-r--r-- | src/gui.c | 22 |
1 files changed, 14 insertions, 8 deletions
@@ -3407,31 +3407,36 @@ gui_update_tabline() } /* - * Get the label for tab page "tp" into NameBuff[]. + * Get the label or tooltip for tab page "tp" into NameBuff[]. */ void -get_tabline_label(tp) +get_tabline_label(tp, tooltip) tabpage_T *tp; + int tooltip; /* TRUE: get tooltip */ { int modified = FALSE; char_u buf[40]; int wincount; win_T *wp; + char_u *opt; - /* Use 'guitablabel' if it's set. */ - if (*p_gtl != NUL) + /* Use 'guitablabel' or 'guitabtooltip' if it's set. */ + opt = (tooltip ? p_gtt : p_gtl); + if (*opt != NUL) { int use_sandbox = FALSE; int save_called_emsg = called_emsg; char_u res[MAXPATHL]; tabpage_T *save_curtab; + char_u *opt_name = (char_u *)(tooltip ? "guitabtooltip" + : "guitablabel"); called_emsg = FALSE; printer_page_num = tabpage_index(tp); # ifdef FEAT_EVAL set_vim_var_nr(VV_LNUM, printer_page_num); - use_sandbox = was_set_insecurely((char_u *)"guitablabel", 0); + use_sandbox = was_set_insecurely(opt_name, 0); # endif /* It's almost as going to the tabpage, but without autocommands. */ curtab->tp_firstwin = firstwin; @@ -3446,7 +3451,7 @@ get_tabline_label(tp) curbuf = curwin->w_buffer; /* Can't use NameBuff directly, build_stl_str_hl() uses it. */ - build_stl_str_hl(curwin, res, MAXPATHL, p_gtl, use_sandbox, + build_stl_str_hl(curwin, res, MAXPATHL, opt, use_sandbox, 0, (int)Columns, NULL, NULL); STRCPY(NameBuff, res); @@ -3459,7 +3464,7 @@ get_tabline_label(tp) curbuf = curwin->w_buffer; if (called_emsg) - set_string_option_direct((char_u *)"guitablabel", -1, + set_string_option_direct(opt_name, -1, (char_u *)"", OPT_FREE, SID_ERROR); called_emsg |= save_called_emsg; } @@ -3467,7 +3472,8 @@ get_tabline_label(tp) { /* Get the buffer name into NameBuff[] and shorten it. */ get_trans_bufname(tp == curtab ? curbuf : tp->tp_curwin->w_buffer); - shorten_dir(NameBuff); + if (!tooltip) + shorten_dir(NameBuff); wp = (tp == curtab) ? firstwin : tp->tp_firstwin; for (wincount = 0; wp != NULL; wp = wp->w_next, ++wincount) |