From 905ccae64c06e6d045ed259a32a38d78867633f1 Mon Sep 17 00:00:00 2001 From: Brian Fiete Date: Mon, 27 Dec 2021 06:17:14 -0500 Subject: [PATCH] Fixed cursor up/down when there's a selection --- BeefLibs/Beefy2D/src/widgets/EditWidget.bf | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/BeefLibs/Beefy2D/src/widgets/EditWidget.bf b/BeefLibs/Beefy2D/src/widgets/EditWidget.bf index cf92c840..b2494d92 100644 --- a/BeefLibs/Beefy2D/src/widgets/EditWidget.bf +++ b/BeefLibs/Beefy2D/src/widgets/EditWidget.bf @@ -2366,7 +2366,14 @@ namespace Beefy.widgets case KeyCode.Down: { int32 aDir = (keyCode == KeyCode.Up) ? -1 : 1; - bool didSelectionMove = PrepareForCursorMove(aDir); + if ((mSelection != null) && (!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; + } GetCursorLineChar(out lineIdx, out lineChar); @@ -2403,9 +2410,6 @@ namespace Beefy.widgets mCursorWantX = wantedX; } - - if (didSelectionMove) - CursorToLineStart(false); } break; case KeyCode.Home: