From 04daa66b487d7a1068a685d8a942874bbaca611c Mon Sep 17 00:00:00 2001 From: Bailey Ling Date: Sat, 24 Aug 2013 01:08:22 -0400 Subject: [PATCH] Revert "inactivate existing statusline without building a new one." This reverts commit 53b856b0c5f159f65c512621a7539fd0a37d7546. --- autoload/airline.vim | 14 ++++++-------- autoload/airline/builder.vim | 6 +++++- 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/autoload/airline.vim b/autoload/airline.vim index 907093c..29a9d01 100644 --- a/autoload/airline.vim +++ b/autoload/airline.vim @@ -94,12 +94,10 @@ endfunction function! airline#update_statusline() for nr in filter(range(1, winnr('$')), 'v:val != winnr()') - if airline#util#getwinvar(nr, 'airline_active', 0) - call setwinvar(nr, 'airline_active', 0) - let stl = getwinvar(nr, '&statusline') - let line = substitute(stl, '%#.\{-}\ze#', '\0_inactive', 'g') - call setwinvar(nr, '&statusline', line) - endif + call setwinvar(nr, 'airline_active', 0) + let context = { 'winnr': nr, 'active': 0 } + let builder = airline#builder#new(context, s:highlighter) + call setwinvar(nr, '&statusline', airline#get_statusline(builder, nr, 0)) endfor let w:airline_active = 1 @@ -111,8 +109,8 @@ function! airline#update_statusline() endfor let context = { 'winnr': winnr(), 'active': 1 } - let builder = airline#builder#new(s:highlighter) - let err = airline#util#exec_funcrefs(g:airline_statusline_funcrefs, builder, context) + let builder = airline#builder#new(context, s:highlighter) + let err = airline#util#exec_funcrefs(g:airline_statusline_funcrefs, builder) if err == 0 call setwinvar(winnr(), '&statusline', airline#get_statusline(builder, winnr(), 1)) elseif err == 1 diff --git a/autoload/airline/builder.vim b/autoload/airline/builder.vim index 0b74f3e..e79e57e 100644 --- a/autoload/airline/builder.vim +++ b/autoload/airline/builder.vim @@ -24,11 +24,15 @@ function! s:prototype.add_raw(text) endfunction function! s:prototype.build() + if !self._context.active + let self._line = substitute(self._line, '%#.\{-}\ze#', '\0_inactive', 'g') + endif return self._line endfunction -function! airline#builder#new(highlighter) +function! airline#builder#new(context, highlighter) let builder = copy(s:prototype) + let builder._context = a:context let builder._highlighter = a:highlighter let builder._side = 1 let builder._curgroup = ''