Menu

Scrolling in text menu does not erase previous contents of lines

joevt
2013-04-22
2013-05-20
  • joevt

    joevt - 2013-04-22

    Using rEFInd 0.6.8, when scrolling down in the text menu (so that lines are moving upward), any shorter line that moves up to where a longer line used to be does not clear the last characters of the longer line.

    e.g.

    If the list were:
    aaa
    bbbbbb
    cccc

    and you scroll down so that the lines move upward, then you would see:

    bbbbbb
    ccccbb

    I think the simplest fix is to print BlankLine + ConWidth - MenuWidth + StringLen(DisplayStrings[i]) after printing DisplayStrings[i]. Or if you know which direction was scrolled then you can use the width of the previous or next boot choice (only if it's longer than the new line's width) instead of MenuWidth so that you don't draw the full width of the menu all the time.

    This bug did not appear in version 0.3.4 (the previous version I had installed).

     
  • joevt

    joevt - 2013-05-20

    This is fixed with rEFInd 0.6.10.

    However, rEFInd now seems to clear and redraw the entire screen each time a line is scrolled. This includes the "rEFInd - Main Menu" banner at the top and the "Use arrow keys" message lines at the bottom. It adds a disconcerting flashing effect that 0.6.9 did not have.

    EFI doesn't have 2D acceleration, so the less that is drawn, the better the performance or at least the appearance. Nothing should be erased first if you can just draw the new content over the old content.

     

Log in to post a comment.

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.