Skip to content

Commit da21fd9

Browse files
committed
Add some more comments.
1 parent c7d6b09 commit da21fd9

File tree

1 file changed

+16
-7
lines changed

1 file changed

+16
-7
lines changed

src/terminal/adapter/PageManager.cpp

+16-7
Original file line numberDiff line numberDiff line change
@@ -104,20 +104,29 @@ Page PageManager::Get(const til::CoordType pageNumber) const
104104
{
105105
const auto requestedPageNumber = std::min(std::max(pageNumber, 1), MAX_PAGES);
106106
auto [visibleBuffer, visibleViewport, isMainBuffer] = _api.GetBufferAndViewport();
107+
108+
// If we're not in the main buffer (either because an app has enabled the
109+
// alternate buffer mode, or switched the conhost screen buffer), then VT
110+
// paging doesn't apply, so we disregard the requested page number and just
111+
// use the visible buffer (with a fixed page number of 1).
107112
if (!isMainBuffer)
108113
{
109114
return { visibleBuffer, visibleViewport, 1 };
110115
}
111-
else if (requestedPageNumber == _visiblePageNumber)
116+
117+
// If the requested page number happens to be the visible page, then we
118+
// can also just use the visible buffer as is.
119+
if (requestedPageNumber == _visiblePageNumber)
112120
{
113121
return { visibleBuffer, visibleViewport, _visiblePageNumber };
114122
}
115-
else
116-
{
117-
const auto pageSize = visibleViewport.size();
118-
auto& pageBuffer = _getBuffer(requestedPageNumber, pageSize);
119-
return { pageBuffer, til::rect{ pageSize }, requestedPageNumber };
120-
}
123+
124+
// Otherwise we're working with a background buffer, so we need to
125+
// retrieve that from the buffer array, and resize it to match the
126+
// active page size.
127+
const auto pageSize = visibleViewport.size();
128+
auto& pageBuffer = _getBuffer(requestedPageNumber, pageSize);
129+
return { pageBuffer, til::rect{ pageSize }, requestedPageNumber };
121130
}
122131

123132
Page PageManager::ActivePage() const

0 commit comments

Comments
 (0)