aboutsummaryrefslogtreecommitdiffstats
path: root/bundle
diff options
context:
space:
mode:
Diffstat (limited to 'bundle')
-rw-r--r--bundle/git-blamer/autoload/git_blamer.vim21
1 files changed, 20 insertions, 1 deletions
diff --git a/bundle/git-blamer/autoload/git_blamer.vim b/bundle/git-blamer/autoload/git_blamer.vim
index dc41bca..df9832e 100644
--- a/bundle/git-blamer/autoload/git_blamer.vim
+++ b/bundle/git-blamer/autoload/git_blamer.vim
@@ -7,6 +7,7 @@ function! git_blamer#Blame()
let l:line_number = line('.')
let l:buffer_name = shellescape(bufname('%'))
let l:buffer_number = bufnr('%')
+ let t:git_blamer_window_number = winnr()
let restore = ''
if &l:wrap
@@ -42,5 +43,23 @@ function! git_blamer#Blame()
nnoremap <buffer> q :q<CR>
" Restore starting file's scrollbind on exit
- autocmd BufWinLeave <buffer> execute b:git_blamer_restore
+ autocmd BufWinLeave <buffer>
+ \ execute b:git_blamer_restore
+ \ | call s:FocusOriginalWindow()
+endfunction
+
+function! s:FocusOriginalWindow()
+ augroup git_blamer
+ autocmd!
+
+ autocmd WinEnter *
+ \ execute t:git_blamer_window_number . 'wincmd w'
+ \ | call s:RemoveWindowFocusAutocmd()
+ augroup END
+endfunction
+
+function! s:RemoveWindowFocusAutocmd()
+ augroup git_blamer
+ autocmd!
+ augroup END
endfunction