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).
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
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.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
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).
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.