Opened 13 years ago
Closed 13 years ago
Last modified 4 years ago
#4768 closed defect (fixed)
GUI: Caret blink shaves pixels from the letter underneath
|Reported by:||salty-horse||Owned by:||lordhoto|
Using latext svn.
In editable text fields, when the caret is drawn and then erased after a moment, the character below it loses a few pixels. Moving the caret causes redraw of the entire text, so it's only noticeable if you look carefully.
It is visible with most, if not all, lowercase characters and some uppercase ones (such as 'A'). The other characters don't have enough pixels on their first column to be erased.
Ticket imported from: #2951681. Ticket imported from: bugs/4768.
Change History (9)
comment:1 by , 13 years ago
comment:2 by , 13 years ago
|Priority:||normal → high|
comment:3 by , 13 years ago
|Summary:||Caret blink shaves pixels from the letter underneath → GUI: Caret blink shaves pixels from the letter underneath|
comment:4 by , 13 years ago
Here is a patch for this bug: http://pastebin.org/130566
The problem is in ThemeEngine::drawCaret and EditableWidget::drawCaret. When erasing the cursor caret, ThemeEngine::drawCaret only restore the background of the widget but not the text. My solution is to draw again the char affected by the cursor in EditableWidget::drawCaret after the background was restored. This way the text is restored when the cursor blinks.
comment:5 by , 13 years ago
Mmm, the patch won't work if the text is scrolled. I'll fix that and submit another patch soon.
comment:6 by , 13 years ago
Please do not post patches like that. Create a separate item on the patch tracker for that. And since I guess that's your patch for your GSoC application also mark it with "GSoC:" at the beginning of the title and link it from your application.
comment:7 by , 13 years ago
Fixed by committing patch #2980691 (http://sf.net/support/tracker.php?aid=2980691)
comment:8 by , 13 years ago
|Status:||new → closed|
comment:9 by , 4 years ago
This bug is nice to get fixed before the release. Raising priority for keeping the track.