Fix restoring cursorline after focus change.
authorIain Patterson <me@iain.cx>
Fri, 8 Oct 2010 10:00:41 +0000 (11:00 +0100)
committerIain Patterson <me@iain.cx>
Fri, 29 Oct 2010 13:06:28 +0000 (14:06 +0100)
If focus was lost for the first time after manually setting cursorline but we
were NOT held in insert mode, cursorline would incorrectly be unset when
focus was restored.
Losing focus for the first time after manually setting cursorline when held
in insert mode behaved correctly.

.vimrc

diff --git a/.vimrc b/.vimrc
index 03862f6..9c7457a 100644 (file)
--- a/.vimrc
+++ b/.vimrc
@@ -1129,12 +1129,15 @@ endfun "}}}2
 fun! <SID>ToggleCursorLine() "{{{2
   call Iain_Vars()
 
-  if b:iainstatus =~# "f" && b:iainstatus =~# "H" && b:iainstatus =~# "I"
-    " Focus lost while held in insert mode.
-    let b:iaincul = getbufvar("", "&cursorline")
-    setlocal cursorline
-  elseif ! b:iaincul
-    setlocal nocursorline
+  if b:iainstatus =~# "H" && b:iainstatus =~# "I"
+    " We are held in insert mode.
+    if b:iainstatus =~# "f"
+      " And focus was lost.
+      let b:iaincul = getbufvar("", "&cursorline")
+      setlocal cursorline
+    elseif ! b:iaincul
+      setlocal nocursorline
+    endif
   endif
 endfun "}}}2