From: test Date: Wed, 16 Dec 2020 11:41:20 +0000 (+0900) Subject: スクロール時にキャレットまで動かすとメモリーを食うし、遅くなるのでキャレットを動かさないようにした X-Git-Url: http://git.osdn.net/view?p=fooeditengine%2FFooEditEngine.git;a=commitdiff_plain;h=588a5b710fd0108c39a0a834f86d49d691cb68fe スクロール時にキャレットまで動かすとメモリーを食うし、遅くなるのでキャレットを動かさないようにした --- diff --git a/Core/EditView.cs b/Core/EditView.cs index 341c1c6..593955c 100644 --- a/Core/EditView.cs +++ b/Core/EditView.cs @@ -605,6 +605,9 @@ namespace FooEditEngine { if (tp.row < this.Src.Row) return Rectangle.Empty; + //画面外にある時は計算する必要がそもそもない + if (tp.row - this.Src.Row > this.LineCountOnScreen) + return Rectangle.Empty; double radius = width / 2; Point point = this.GetPostionFromTextPoint(tp); double lineHeight = this.render.emSize.Height; diff --git a/UWP/FooEditEngine.UWP/FooTextBox.cs b/UWP/FooEditEngine.UWP/FooTextBox.cs index 71da92f..c26e26b 100644 --- a/UWP/FooEditEngine.UWP/FooTextBox.cs +++ b/UWP/FooEditEngine.UWP/FooTextBox.cs @@ -1174,20 +1174,6 @@ namespace FooEditEngine.UWP void gestureRecongnizer_Dragging(GestureRecognizer sender, DraggingEventArgs e) { - Point p = e.Position; - TextPointSearchRange searchRange; - if (this.View.HitTextArea(p.X, p.Y)) - searchRange = TextPointSearchRange.TextAreaOnly; - else if (this._Controller.SelectionLength > 0) - searchRange = TextPointSearchRange.Full; - else - return; - TextPoint tp = this.View.GetTextPointFromPostion(p, searchRange); - this._Controller.MoveCaretAndSelect(tp, this.IsModiferKeyPressed(VirtualKey.LeftControl)); -#if ENABLE_AUTMATION - if (this.peer != null) - this.peer.OnNotifyCaretChanged(); -#endif this.Refresh(); } diff --git a/WPF/FooEditEngine/FooTextBox.cs b/WPF/FooEditEngine/FooTextBox.cs index 2a65a0f..c874899 100644 --- a/WPF/FooEditEngine/FooTextBox.cs +++ b/WPF/FooEditEngine/FooTextBox.cs @@ -931,16 +931,25 @@ namespace FooEditEngine.WPF TextPointSearchRange searchRange; if (this.View.HitTextArea(p.X, p.Y)) + { searchRange = TextPointSearchRange.TextAreaOnly; + } else if (leftPressed) + { searchRange = TextPointSearchRange.Full; + } else - searchRange = TextPointSearchRange.TextAreaOnly; + { + this.Cursor = Cursors.Arrow; + base.OnMouseMove(e); + return; + } TextPoint tp = this.View.GetTextPointFromPostion(p, searchRange); if (tp == TextPoint.Null) { + this.Cursor = Cursors.Arrow; base.OnMouseMove(e); return; } @@ -966,15 +975,6 @@ namespace FooEditEngine.WPF { this.Cursor = Cursors.Arrow; } - - if (leftPressed) - { - bool controlPressed = (Keyboard.GetKeyStates(Key.LeftCtrl) & KeyStates.Down) == KeyStates.Down; - this._Controller.MoveCaretAndSelect(tp, controlPressed); - if (this.peer != null) - this.peer.OnNotifyCaretChanged(); - this.Refresh(); - } } Gripper hittedGripper; diff --git a/Windows/FooEditEngine/FooTextBox.cs b/Windows/FooEditEngine/FooTextBox.cs index 0b7c134..71dc24f 100644 --- a/Windows/FooEditEngine/FooTextBox.cs +++ b/Windows/FooEditEngine/FooTextBox.cs @@ -1200,12 +1200,6 @@ namespace FooEditEngine.Windows this.Cursor = Cursors.Hand; else this.Cursor = Cursors.IBeam; - - if (e.Button == MouseButtons.Left) - { - this.Controller.MoveCaretAndSelect(tp, ModifierKeys.HasFlag(Keys.Control)); - this.Refresh(); - } } else {