suzdraws / mintty

Automatically exported from code.google.com/p/mintty
0 stars 0 forks source link

Intermittent cursor flicker #90

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
I've configured mintty for block cursor, no blinking.

I've noticed that when the window doesn't have focus, it will often redraw
the cursor repeatedly, causing what appears as a flashing cursor. Text does
not flicker.

So far I've only noticed this behavior when the window is partially
obscured. I'm using svn trunk r239 on a Vista machine, but the issue can
also be seen on the 0.3.8 binaries.

Original issue reported on code.google.com by mjba...@gmail.com on 16 Apr 2009 at 11:20

GoogleCodeExporter commented 9 years ago
I'm afraid I can't reproduce this. Could you attach your ~/.minttyrc? Does this
happen when any other window is active or is a particular program involved? 
Have you
got any desktop managers or other utilities running that might be connected 
with this?

Original comment by andy.koppe on 21 Apr 2009 at 4:08

GoogleCodeExporter commented 9 years ago
It's a standard Vista install with many of the visual effects turned off 
(windows
classic theme). I've configured mintty to match the putty defaults; green block
cursor with mouse cut and paste.

I can't figure out a particular pattern to the occurrences but the cursor 
flicker
seems to happen randomly when the mintty window is obscured. My typical desktop 
is
covered by mintty and putty windows with single firefox window in the 
foreground. The
cursor flickering happens as a random annoyance when the mintty windows are in 
the
background; I haven't been able to reproduce it on demand yet which is 
hampering my
own attempts to debug it.

It appears as if the mintty cursor gets stuck in a redraw loop, which gives the
cursor a flicker and combines with the display refresh rate to make beat 
frequency flash.

(In several years of using putty I've never seen the behavior from putty)

Original comment by mjba...@gmail.com on 22 Apr 2009 at 5:12

Attachments:

GoogleCodeExporter commented 9 years ago
Thanks for the additional info. Still haven't been able to reproduce it, but 
I'll
keep looking out for it. I did faff around with the update logic, so it's 
entirely
possible I messed it up.

Original comment by andy.koppe on 24 Apr 2009 at 5:18

GoogleCodeExporter commented 9 years ago
Tracked it down; there's a 500ms timer running tblink_cb which calls win_update 
and
repaints the entire window and the repainting is causing the flicker. As a 
workaround
I've disabled text blinking (AllowBlinking=0) in my config file and the problem 
has
gone away.

I suggest only enabling the tblink timer when there's blinking text on the 
screen.

Original comment by mjba...@gmail.com on 24 Apr 2009 at 10:56

GoogleCodeExporter commented 9 years ago
Hmm, the logic for text blinking could definitely be more clever, but I haven't
worked out why it has the effect you're seeing. win_update, which ends up 
calling
term_paint, should only repaint those character cell that have actually changed,
which normally would be nothing. So, further investigation needed.

Meanwhile, I've disabled text blinking in the default config for 0.4, as it's a 
crime
against aesthetic decency anyway.

Original comment by andy.koppe on 25 Apr 2009 at 7:45

GoogleCodeExporter commented 9 years ago
ps: Change is in r257 on trunk.

Original comment by andy.koppe on 25 Apr 2009 at 7:47

GoogleCodeExporter commented 9 years ago
I managed to reproduce this on Windows 7, both with the "Classic" and the 
"Basic" 
theme. The issue goes away if Aero is enabled.

Unfortunately I found that PuTTY suffers from this too if blinking is enabled 
on the 
'Terminal' page of its options, which means this isn't just a question of going 
back 
through mintty history to find the change where I broke it.

Original comment by andy.koppe on 28 Mar 2010 at 11:13

GoogleCodeExporter commented 9 years ago
It happens for all three types of cursor. Also, the line and underscore cursors
flicker when clicking in the window, independent of whether blinking is enabled.

Still can't reproduce it on XP, so it seems to be limited to non-Aero Vista and 
up.

Original comment by andy.koppe on 28 Mar 2010 at 11:38

GoogleCodeExporter commented 9 years ago
Fixed in r1000 on trunk, by ensuring that the cursor cell is only redrawn when 
there actually is a change to it. As so often, it was easy to fix once I'd 
managed to track it down.

The underlying issue here seems to be a problem with the non-Aero display mode 
on Vista and up though. The cursor cell is drawn by first drawing the character 
in it and then drawing the cursor shape on top (except for the active block 
cursor, which is done simply by changing foreground and background colour when 
drawing the text).

Before Vista and also in Aero mode, this is fine: the intermediate step can't 
be seen because it happens far too quickly. But for some reason that's no 
longer true in non-Aero mode: the display of the second step gets delayed, so 
the cursor cell briefly appears without the cursor shape, thus causing a 
noticeable flicker. Such a flicker can be noticed elsewhere too, e.g. when 
clicking on radio buttons or checkboxes such as 'Match Case' in Notepad's 
Edit/Replace dialog. Could be a display driver problem of course; the two boxes 
I've tried this with both have Nvidia cards.

Original comment by andy.koppe on 29 Aug 2010 at 4:51

GoogleCodeExporter commented 9 years ago

Original comment by andy.koppe on 29 Aug 2010 at 4:52

GoogleCodeExporter commented 9 years ago

Original comment by andy.koppe on 3 Oct 2010 at 3:40