Don't use UUID for window IDs

This fix uses an incremented number instead.

Fixes #180
This commit is contained in:
ZyX 2013-02-22 18:21:12 +04:00 committed by Kim Silkebækken
parent 861f7dc179
commit 3c62e060be

View File

@ -18,7 +18,6 @@ endif
let s:powerline_pycmd = substitute(get(g:, 'powerline_pycmd', 'py'), '\v^(py)%[thon](3?)$', '\1\2', '')
let s:powerline_pyeval = get(g:, 'powerline_pyeval', s:powerline_pycmd.'eval')
exec s:powerline_pycmd 'import uuid'
try
exec s:powerline_pycmd 'from powerline.core import Powerline'
catch
@ -47,15 +46,17 @@ else
\"endfunction"
endif
let s:last_window_id = 0
function! s:GetWinID(winnr)
let r = getwinvar(a:winnr, 'window_id')
if empty(r)
let r = s:pyeval('str(uuid.uuid4())')
let r = s:last_window_id
let s:last_window_id += 1
call setwinvar(a:winnr, 'window_id', r)
endif
" Without this condition it triggers unneeded statusline redraw
if getwinvar(a:winnr, '&statusline') isnot# '%!Powerline("'.r.'")'
call setwinvar(a:winnr, '&statusline', '%!Powerline("'.r.'")')
if getwinvar(a:winnr, '&statusline') isnot# '%!Powerline('.r.')'
call setwinvar(a:winnr, '&statusline', '%!Powerline('.r.')')
endif
return r
endfunction
@ -63,14 +64,14 @@ endfunction
function! Powerline(window_id)
let winidx = index(map(range(1, winnr('$')), 's:GetWinID(v:val)'), a:window_id)
let current = w:window_id is# a:window_id
return s:pyeval('powerline.renderer.render("'. a:window_id .'", '. winidx .', '. current .')')
return s:pyeval('powerline.renderer.render('. a:window_id .', '. winidx .', '. current .')')
endfunction
function! PowerlineNew()
call map(range(1, winnr('$')), 's:GetWinID(v:val)')
endfunction
" Is immediately changed when Powerline() function is run. Good for global
" Is immediately changed when PowerlineNew() function is run. Good for global
" value.
set statusline=%!PowerlineNew()