On Sun, Nov 24, 2013 at 4:12 PM, Bram Moolenaar <[email protected]> wrote: > > Thomas Tuegel wrote: > >> I recently discovered a graphical glitch that occurs sometimes in GUI >> mode. If the GUI is using subpixel rendering, characters may leave >> artifacts in their neighbors' cells after being erased. I discovered >> this in the GTK+2 frontend, but it could be a problem in any GUI, >> though it's highly dependent on a system's subpixel rendering >> configuration, the font used, and probably some other variables I >> haven't even considered. >> >> I am sending a patch which corrects the issue by redrawing the >> characters immediately to the left or right of any updated character. >> This is the approach already taken with bold characters, which have >> the same problem. I merely extended the treatment of bold characters >> to apply to any updated character whenever Vim is in GUI mode. > > Is there a reliable way to know if this is needed? Redrawing more for > all GUIs seems overkill. e.g. on Windows it would not be needed, right?
As far as I know, this can happen on any platform whenever subpixel rendering (ClearType on Windows) is enabled. As Ken pointed out, though unknown to me, this was already a known issue on Windows. If there were a reliable way to detect at runtime that subpixel rendering is disabled, then the extra redraws could be disabled. That detection is platform-specific, so the GUI would have to do the detection and indicate if it wants the extra redraws. On the other hand, the overhead associated with the extra redraws is small; most terminal emulators on Linux are already doing this, for example. -- Thomas Tuegel -- -- You received this message from the "vim_dev" maillist. Do not top-post! Type your reply below the text you are replying to. For more information, visit http://www.vim.org/maillist.php --- You received this message because you are subscribed to the Google Groups "vim_dev" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/groups/opt_out.
