Hi, On Tue, Jan 29, 2013 at 08:02:32PM -0200, Tiago Resende wrote: > Hello. > > I've been having a problem with only half of some wide characters being drawn > when the cursor is over them. See screenshot: > > http://i.imgur.com/eTCiVad.png > > String used for reproducing can be found here: > > http://pastebin.com/xSgMma7d > > Steps to reproduce are: > > 1. paste above string into terminal; > 2. move cursor into the first of the two characters. > > > I found the culprit to be the careful character handling in > rxvt_term::scr_refresh(), line 2392 in screen.C in rev 1.432. > > If I understand the code correctly, the problem is that if the cursor is over > a > careful character and the one after it is also careful, when looking for > previous careful characters from the one after the cursor, the second text_t > in > the cursor character tests true for having the same rendition as the following > character, but the first text_t tests false, causing text to point to the > second text_t by the end (that is, halfway through the cursor character), > which > then causes rxvt_font_xft::draw() to try to draw a NOCHAR, thus erasing half > the cursor character previously drawn. > > The attached workaround fixes it for me, but I don't think I understand > enough to know what the best, most correct fix would be. I'd appreciate > it if someone more familiar with the code could look into it.
Thanks for the report and the analysis. With which font does the problem occur? It seems suspicious to me is that two renditions belonging to the same wide char are different, but I am not sure if it is a bug. Emanuele _______________________________________________ rxvt-unicode mailing list [email protected] http://lists.schmorp.de/cgi-bin/mailman/listinfo/rxvt-unicode
