From 4b45625b8c583e8c36baa91943f963c1f16b98ec Mon Sep 17 00:00:00 2001 From: nyamatongwe Date: Thu, 13 Aug 2009 03:41:07 +0000 Subject: Made SCI_[GS]ETCURRENTPOS and SCI_[GS]ETANCHOR work in rectangular mode more like 1.x. --- src/Editor.cxx | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/Editor.cxx b/src/Editor.cxx index 41f274529..3f7c9db0f 100644 --- a/src/Editor.cxx +++ b/src/Editor.cxx @@ -6743,18 +6743,30 @@ sptr_t Editor::WndProc(unsigned int iMessage, uptr_t wParam, sptr_t lParam) { return pdoc->CharAt(wParam); case SCI_SETCURRENTPOS: - SetSelection(wParam, sel.MainAnchor()); + if (sel.IsRectangular()) { + sel.Rectangular().caret.SetPosition(wParam); + SetRectangularRange(); + Redraw(); + } else { + SetSelection(wParam, sel.MainAnchor()); + } break; case SCI_GETCURRENTPOS: - return sel.MainCaret(); + return sel.IsRectangular() ? sel.Rectangular().caret.Position() : sel.MainCaret(); case SCI_SETANCHOR: - SetSelection(sel.MainCaret(), wParam); + if (sel.IsRectangular()) { + sel.Rectangular().anchor.SetPosition(wParam); + SetRectangularRange(); + Redraw(); + } else { + SetSelection(sel.MainCaret(), wParam); + } break; case SCI_GETANCHOR: - return sel.MainAnchor(); + return sel.IsRectangular() ? sel.Rectangular().anchor.Position() : sel.MainAnchor(); case SCI_SETSELECTIONSTART: SetSelection(Platform::Maximum(sel.MainCaret(), wParam), wParam); -- cgit v1.2.3