diff options
author | nyamatongwe <unknown> | 2009-07-30 08:29:43 +0000 |
---|---|---|
committer | nyamatongwe <unknown> | 2009-07-30 08:29:43 +0000 |
commit | b8a801fe139ea37cba36dc7b724e03495cf847e9 (patch) | |
tree | 089cc73c6396c1d45e59dc3c30ec5633c1857d11 /src/Editor.cxx | |
parent | 5102901f8df958fe60fdb0a6d3354ad52bd955c2 (diff) | |
download | scintilla-mirror-b8a801fe139ea37cba36dc7b724e03495cf847e9.tar.gz |
When using Ctrl+Drag for multiple selection when previous selections
dragged over but then that area is deselected, reveal the previous
selections again. This allows the user to undo some bad effects when the
mouse moves further than wanted.
Diffstat (limited to 'src/Editor.cxx')
-rw-r--r-- | src/Editor.cxx | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/src/Editor.cxx b/src/Editor.cxx index ee44a6972..caeb9dfdf 100644 --- a/src/Editor.cxx +++ b/src/Editor.cxx @@ -5644,8 +5644,9 @@ void Editor::ButtonDown(Point pt, unsigned int curTime, bool shift, bool ctrl, b SetDragPosition(SelectionPosition(invalidPosition)); if (!shift) { if (ctrl && multipleSelection) { - InvalidateSelection(SelectionRange(newPos), true); - sel.AddSelection(newPos); + SelectionRange range(newPos); + sel.TentativeSelection(range); + InvalidateSelection(range, true); } else { InvalidateSelection(SelectionRange(newPos), true); if (sel.Count() > 1) @@ -5756,8 +5757,7 @@ void Editor::ButtonMove(Point pt) { SetSelection(movePos, sel.RangeMain().anchor); } else if (sel.Count() > 1) { SelectionRange range(movePos, sel.RangeMain().anchor); - sel.TrimSelection(range); - sel.RangeMain() = range; + sel.TentativeSelection(range); InvalidateSelection(range, true); } else { SetSelection(movePos, sel.RangeMain().anchor); @@ -5883,6 +5883,7 @@ void Editor::ButtonUp(Point pt, unsigned int curTime, bool ctrl) { SetSelection(newPos, sel.RangeMain().anchor); } } + sel.CommitTentative(); } SetRectangularRange(); lastClickTime = curTime; |