diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/Editor.cxx | 22 |
1 files changed, 12 insertions, 10 deletions
diff --git a/src/Editor.cxx b/src/Editor.cxx index 929db7d66..3085bd6ec 100644 --- a/src/Editor.cxx +++ b/src/Editor.cxx @@ -5639,16 +5639,18 @@ void Editor::ButtonDown(Point pt, unsigned int curTime, bool shift, bool ctrl, b SetMouseCapture(true); if (inDragDrop != ddInitial) { SetDragPosition(SelectionPosition(invalidPosition)); - if (ctrl && multipleSelection) { - InvalidateSelection(SelectionRange(newPos), true); - sel.AddSelection(newPos); - } else if (!shift) { - InvalidateSelection(SelectionRange(newPos), true); - if (sel.Count() > 1) - Redraw(); - sel.Clear(); - sel.selType = alt ? Selection::selRectangle : Selection::selStream; - SetSelection(newPos, newPos); + if (!shift) { + if (ctrl && multipleSelection) { + InvalidateSelection(SelectionRange(newPos), true); + sel.AddSelection(newPos); + } else { + InvalidateSelection(SelectionRange(newPos), true); + if (sel.Count() > 1) + Redraw(); + sel.Clear(); + sel.selType = alt ? Selection::selRectangle : Selection::selStream; + SetSelection(newPos, newPos); + } } sel.selType = alt ? Selection::selRectangle : Selection::selStream; selectionType = selChar; |