diff --git a/plugin/airline.vim b/plugin/airline.vim index fc8e975b..db0b937d 100644 --- a/plugin/airline.vim +++ b/plugin/airline.vim @@ -37,6 +37,13 @@ function! s:on_window_changed() if pumvisible() && (!&previewwindow || g:airline_exclude_preview) return endif + " Handle each window only once, since we might come here several times for + " different autocommands. + let l:key = [bufnr('%'), winnr(), winnr('$')] + if get(t:, 'airline_last_window_changed', []) == l:key + return + endif + let t:airline_last_window_changed = l:key call s:init() call airline#update_statusline() endfunction