1
0
Fork 0
mirror of https://github.com/beefytech/Beef.git synced 2025-06-15 14:54:09 +02:00

Keep saved collapse data from collapsing around the cursor

This commit is contained in:
Brian Fiete 2022-07-30 17:43:55 -04:00
parent 3739020504
commit de4269bf32

View file

@ -6078,7 +6078,7 @@ namespace IDE.ui
wantOpen = !wantOpen; wantOpen = !wantOpen;
if (collapseEntry.mIsOpen != wantOpen) if (collapseEntry.mIsOpen != wantOpen)
SetCollapseOpen(@collapseEntry.Index, wantOpen, true); SetCollapseOpen(@collapseEntry.Index, wantOpen, true, true);
} }
mCollapseAwaitingDB = false; mCollapseAwaitingDB = false;
@ -6387,18 +6387,27 @@ namespace IDE.ui
} }
public void SetCollapseOpen(int collapseIdx, bool wantOpen, bool immediate = false) public void SetCollapseOpen(int collapseIdx, bool wantOpen, bool immediate = false, bool keepCursorVisible = false)
{ {
var entry = mOrderedCollapseEntries[collapseIdx]; var entry = mOrderedCollapseEntries[collapseIdx];
var cursorLineAndColumn = CursorLineAndColumn;
if ((!wantOpen) && (keepCursorVisible) && (cursorLineAndColumn.mLine >= entry.mStartLine) && (cursorLineAndColumn.mLine <= entry.mEndLine))
{
if (CursorTextPos < entry.mEndIdx)
{
// Ignore close
return;
}
}
entry.mIsOpen = wantOpen; entry.mIsOpen = wantOpen;
if (immediate) if (immediate)
entry.mOpenPct = entry.mIsOpen ? 1.0f : 0.0f; entry.mOpenPct = entry.mIsOpen ? 1.0f : 0.0f;
mCollapseNeedsUpdate = true; mCollapseNeedsUpdate = true;
mCollapseDBDirty = true; mCollapseDBDirty = true;
var cursorLineAndColumn = CursorLineAndColumn;
if (wantOpen) if (wantOpen)
{ {
if (mEmbeds.GetValue(entry.mAnchorLine) case .Ok(let embed)) if (mEmbeds.GetValue(entry.mAnchorLine) case .Ok(let embed))