提交 aaff2c6f 编写于 作者: M MikeBeaton

OpenCanopy: Fix view init when default entry beyond right of screen

https://github.com/acidanthera/bugtracker/issues/1703
上级 ffc3dab8
......@@ -17,6 +17,7 @@ OpenCore Changelog
- Fixed DEBUG ASSERT on pressing change entry keys with single boot entry in OpenCanopy
- Added recommended `Apple12` and `Windows11` flavours
- Added `TpmInfo` tool to DEBUG TPM status
- Fixed incorrect OpenCanopy initial display when default entry beyond right of screen
#### v0.7.0
- Fixed NVRAM reset on firmware with write-protected `BootOptionSupport`
......
......@@ -1997,41 +1997,21 @@ BootPickerViewLateInitialize (
IN UINT8 DefaultIndex
)
{
UINT32 Index;
INT64 ScrollOffset;
CONST GUI_VOLUME_ENTRY *BootEntry;
ASSERT (DefaultIndex < mBootPicker.Hdr.Obj.NumChildren);
ScrollOffset = InternelBootPickerScrollSelected ();
mBootPicker.SelectedIndex = DefaultIndex;
//
// If ScrollOffset is non-0, the selected entry will be aligned left- or
// right-most. The view holds a discrete amount of entries, so cut-offs are
// impossible.
// If more entries than screen width, firstly align left-most entry
// then scroll from there as needed to bring default entry on screen
//
if (ScrollOffset == 0) {
//
// Find the first entry that is fully visible.
//
for (Index = 0; Index < mBootPicker.Hdr.Obj.NumChildren; ++Index) {
//
// Move the first partially visible boot entry to the very left to prevent
// cut-off entries. This only applies when entries overflow.
//
BootEntry = InternalGetVolumeEntry (Index);
if (mBootPicker.Hdr.Obj.OffsetX + BootEntry->Hdr.Obj.OffsetX >= 0) {
//
// Move the cut-off entry on-screen.
//
ScrollOffset = -ScrollOffset;
break;
}
ScrollOffset = mBootPicker.Hdr.Obj.OffsetX + BootEntry->Hdr.Obj.OffsetX;
}
if (mBootPicker.Hdr.Obj.OffsetX < 0) {
mBootPicker.Hdr.Obj.OffsetX = 0;
mBootPicker.Hdr.Obj.OffsetX = InternelBootPickerScrollSelected ();
}
mBootPicker.Hdr.Obj.OffsetX += ScrollOffset;
//
// If the scroll buttons are hidden, the intro animation will update them
// implicitly.
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册