Explorar el Código

Workaround for screen freeze in MacVim GUI (#36)

Junegunn Choi hace 11 años
padre
commit
9132e9d50d
Se han modificado 1 ficheros con 10 adiciones y 0 borrados
  1. 10 0
      plug.vim

+ 10 - 0
plug.vim

@@ -705,6 +705,15 @@ function! s:update_parallel(pull, todo, threads)
     threads.each { |t| t.join rescue nil }
     main.kill
   }
+  refresh = Thread.new {
+    while true
+      mtx.synchronize do
+        break unless running
+        VIM::command('normal! a')
+      end
+      sleep 0.2
+    end
+  } if VIM::evaluate('has("mac") && has("gui_running")') == 1
 
   processed = Set.new
   progress = iswin ? '' : '--progress'
@@ -762,6 +771,7 @@ function! s:update_parallel(pull, todo, threads)
     all.merge!(extended)
     logh.call
   end
+  refresh.kill if refresh
   watcher.kill
   $curbuf[1] = "Updated. Elapsed time: #{"%.6f" % (Time.now - st)} sec."
 EOF