X-Git-Url: https://git.proxmox.com/?a=blobdiff_plain;f=MdeModulePkg%2FUniversal%2FConsole%2FConSplitterDxe%2FConSplitter.c;h=dc391e33bced6ffddaea977b0a8da446f42bfcc7;hb=de8fe2c269cf681ffaed684433a379ea81160d17;hp=d6c3abd9e245517b0abc4134eee9d2e2111de9ea;hpb=af437b7c2e5f5e8dd4eb936c2cdfe6f2511807c7;p=mirror_edk2.git diff --git a/MdeModulePkg/Universal/Console/ConSplitterDxe/ConSplitter.c b/MdeModulePkg/Universal/Console/ConSplitterDxe/ConSplitter.c index d6c3abd9e2..dc391e33bc 100644 --- a/MdeModulePkg/Universal/Console/ConSplitterDxe/ConSplitter.c +++ b/MdeModulePkg/Universal/Console/ConSplitterDxe/ConSplitter.c @@ -3460,11 +3460,26 @@ ConSplitterTextOutSetCursorPosition ( EFI_STATUS ReturnStatus; UINTN MaxColumn; UINTN MaxRow; + INT32 *TextOutModeMap; + INT32 ModeNumber; + INT32 CurrentMode; Private = TEXT_OUT_SPLITTER_PRIVATE_DATA_FROM_THIS (This); - - MaxColumn = Private->TextOutQueryData[Private->TextOutMode.Mode].Columns; - MaxRow = Private->TextOutQueryData[Private->TextOutMode.Mode].Rows; + TextOutModeMap = NULL; + ModeNumber = Private->TextOutMode.Mode; + + // + // Get current MaxColumn and MaxRow from intersection map + // + if (Private->TextOutModeMap != NULL) { + TextOutModeMap = Private->TextOutModeMap + Private->TextOutListCount * ModeNumber; + CurrentMode = *TextOutModeMap; + } else { + CurrentMode = ModeNumber; + } + + MaxColumn = Private->TextOutQueryData[CurrentMode].Columns; + MaxRow = Private->TextOutQueryData[CurrentMode].Rows; if (Column >= MaxColumn || Row >= MaxRow) { return EFI_UNSUPPORTED;