#1593 Rendering problems with SCI_SETCARETLINEVISIBLE and horizontal scrolling

Bug
closed-fixed
Neil Hodgson
5
2014-05-22
2014-04-17
chinhster
No

I upgraded to 3.4.1. I found that when SCI_SETCARETLINEVISIBLE is enabled, horizontal scrolling will cause random lines to be highlighted in the area that is scrolled in. It's best to see the screenshot. Only line 17 is supposed to be highlighted.

This appears to only affect OS X 10.9 because I couldn't reproduce the problem in 10.8. I also tried compiling with both Xcode 5.0.2 and Xcode 4.6.3 and their respective SDKs and the problem exists regardless of which SDK it's compiled against.

1 Attachments

Discussion

  • Neil Hodgson
    Neil Hodgson
    2014-04-17

    • labels: --> scintilla, cocoa
    • status: open --> open-accepted
    • assigned_to: Neil Hodgson
     
  • Neil Hodgson
    Neil Hodgson
    2014-04-17

    It is highlighting lines that were previously highlighted. With responsive scrolling, Cocoa is caching image tiles and the extra lines are in tiles that are still considered valid.

    There should be a way of invalidating the previously highlighted areas or discarding the off-screen tiles but it would affect performance to be too aggressive with calling DiscardOverdraw to discard tiles on every vertical caret movement.

     
  • Neil Hodgson
    Neil Hodgson
    2014-04-20

    Here is a patch that appears to work on Cocoa. Haven't checked that it doesn't disrupt anything on other platforms.

    Edit for better patch.

     
    Last edit: Neil Hodgson 2014-04-21
    Attachments
  • chinhster
    chinhster
    2014-04-21

    The patch has fixed the problem. Thanks!

     
  • Neil Hodgson
    Neil Hodgson
    2014-04-22

    • status: open-accepted --> open-fixed
     
  • Neil Hodgson
    Neil Hodgson
    2014-04-22

    Similar patch committed as [318710].

     

    Related

    Commit: [318710]

  • Neil Hodgson
    Neil Hodgson
    2014-05-22

    • status: open-fixed --> closed-fixed