From 1b2ec38cf8a7a168d7822824899ec2f59dcbce49 Mon Sep 17 00:00:00 2001 From: cxl Date: Sun, 31 Aug 2014 17:27:23 +0000 Subject: [PATCH] TextDiffCtrl: Fixed selection issue #840 git-svn-id: svn://ultimatepp.org/upp/trunk@7628 f0d560ea-af0d-0410-9eb7-867de7ffcac7 --- uppsrc/TextDiffCtrl/TextCtrl.cpp | 12 +++++++----- uppsrc/TextDiffCtrl/TextDiffCtrl.h | 2 +- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/uppsrc/TextDiffCtrl/TextCtrl.cpp b/uppsrc/TextDiffCtrl/TextCtrl.cpp index 03ad4133d..3692d79ef 100644 --- a/uppsrc/TextDiffCtrl/TextCtrl.cpp +++ b/uppsrc/TextDiffCtrl/TextCtrl.cpp @@ -25,22 +25,23 @@ TextCompareCtrl::TextCompareCtrl() gutter_capture = false; } -int TextCompareCtrl::GetLineNo(int y) +int TextCompareCtrl::GetLineNo(int y, int& ii) { - int ii = scroll.Get().y + y / letter.cy; + ii = scroll.Get().y + y / letter.cy; return ii >= 0 && ii < lines.GetCount() ? lines[ii].number : Null; } void TextCompareCtrl::DoSelection(int y, bool shift) { - int i = GetLineNo(y); + int ii; + int i = GetLineNo(y, ii); if(!IsNull(i)) { if(shift) cursor = i; else cursor = anchor = i; Refresh(); - scroll.ScrollIntoY(i); + scroll.ScrollIntoY(ii); } } @@ -65,7 +66,8 @@ void TextCompareCtrl::LeftDown(Point pt, dword keyflags) void TextCompareCtrl::LeftDouble(Point pt, dword keyflags) { - int i = GetLineNo(pt.y); + int ii; + int i = GetLineNo(pt.y, ii); if(!IsNull(i)) WhenLeftDouble(i - 1); } diff --git a/uppsrc/TextDiffCtrl/TextDiffCtrl.h b/uppsrc/TextDiffCtrl/TextDiffCtrl.h index 49a8596f0..02e35c38a 100644 --- a/uppsrc/TextDiffCtrl/TextDiffCtrl.h +++ b/uppsrc/TextDiffCtrl/TextDiffCtrl.h @@ -49,7 +49,7 @@ private: bool GetSelection(int& l, int& h); void DoSelection(int y, bool shift); void Copy(); - int GetLineNo(int y); + int GetLineNo(int y, int& yy); private: struct Line {