Subject: bug#17392: 24.3.90; cursor blinks faster and faster

From: Michael Heerdegen <[email-masked]>
Date: Sun, 04 May 2014 00:29:48 +0200

Michael Heerdegen <[email-masked]> writes:

> For now, I added to my .gnu-emacs a timer that immediately warns me when
> the above situation eventuates.  So hopefully I can say more soon.

I think I found the culprit.  When changing the selected window (or
frame), I arrange to call something like this:

--8<---------------cut here---------------start------------->8---
(defun my-flash-window ()
  (interactive)
  "Flash the selected window."
  (unless (minibufferp)
    ...
    (run-with-idle-timer
     0.001 nil
     (lambda (win make-fringe-string ovl1 ovl2)
       (overlay-put ovl1 'window win)
       (overlay-put ovl2 'window win)
       (overlay-put ovl1 'before-string (funcall make-fringe-string nil))
       (overlay-put ovl2 'before-string (funcall make-fringe-string t))
       (unless (window-minibuffer-p) (my-display-frame-list))
       (sit-for 1.5)
       (delete-overlay ovl1)
       (delete-overlay ovl2))
     win make-fringe-string ovl1 ovl2)))
--8<---------------cut here---------------end--------------->8---

to get some visual feedback.  The sit-for inside the timer function
seems to trigger the problem.  This code is not kosher, I wanted to
rewrite it anyway.  Now that I've done that (by just using a second timer),
this seems to fixed.

If there are no objections, I'll just close this report.

Thanks,

Michael.