From 1ac5992d8ee38ac5bfac5dd60bc3fd28705b7ce1 Mon Sep 17 00:00:00 2001 From: Brian Fiete Date: Tue, 28 Dec 2021 10:42:34 -0500 Subject: [PATCH] Fix for Up/Down with selection without mAllowVirtualCursor --- BeefLibs/Beefy2D/src/widgets/EditWidget.bf | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/BeefLibs/Beefy2D/src/widgets/EditWidget.bf b/BeefLibs/Beefy2D/src/widgets/EditWidget.bf index 7267ce07..922d53cb 100644 --- a/BeefLibs/Beefy2D/src/widgets/EditWidget.bf +++ b/BeefLibs/Beefy2D/src/widgets/EditWidget.bf @@ -2368,11 +2368,16 @@ namespace Beefy.widgets int32 aDir = (keyCode == KeyCode.Up) ? -1 : 1; if ((HasSelection()) && (!mWidgetWindow.IsKeyDown(KeyCode.Shift))) { - var lineAndCol = CursorLineAndColumn; - var usePos = (aDir < 0) ? (int32)mSelection.Value.MinPos : mSelection.Value.MaxPos; - GetLineCharAtIdx(usePos, var selLine, var selLineChar); - CursorLineAndColumn = .(selLine, lineAndCol.mColumn); - mSelection = null; + if (mAllowVirtualCursor) + { + var lineAndCol = CursorLineAndColumn; + var usePos = (aDir < 0) ? (int32)mSelection.Value.MinPos : mSelection.Value.MaxPos; + GetLineCharAtIdx(usePos, var selLine, var selLineChar); + CursorLineAndColumn = .(selLine, lineAndCol.mColumn); + mSelection = null; + } + else + PrepareForCursorMove(aDir); } GetCursorLineChar(out lineIdx, out lineChar);