Subject: bug#20285: 25.0.50; blink-cursor-mode sometimes stops blinking

From: Eli Zaretskii <[email-masked]>
Date: Fri, 10 Apr 2015 20:32:33 +0300

> From: Tassilo Horn <[email-masked]>
> Cc: [email-masked]
> Date: Fri, 10 Apr 2015 16:13:44 +0200
> 
> > Maybe we should have a mechanism to force redisplay once in a while
> > even if Emacs has something to do, and blink-cursor-mode could then
> > activate that mechanism.
> 
> I can't read your brain but wouldn't it be possible (but unlikely) that
> this mechanism always forces a redisplay when the cursor is in the
> invisible state?

Not if the time interval is chosen as to make the probability of this
low enough.

> What I can imagine is `redisplay' having a second optional argument SECS
> which would trigger a redisplay only if there hasn't been one in the
> last SECS seconds.  Then `blink-cursor-timer-function' could do
> 
>   (internal-show-cursor nil (not (internal-show-cursor-p)))
>   (when (internal-show-cursor-p)
>     (redisplay 'force 2))
> 
> so that toggling the cursor to visible again forces a redisplay every 2
> seconds.  Then, the worst situation that can occur is a cycle of cursor
> invisible for 2 seconds, cursor visible for 0.5 seconds.

The interval should not be an integral multiple of 0.5 sec.