diff --git a/src/vs/editor/browser/controller/mouseHandler.ts b/src/vs/editor/browser/controller/mouseHandler.ts index 6657158e914..0b385bd1181 100644 --- a/src/vs/editor/browser/controller/mouseHandler.ts +++ b/src/vs/editor/browser/controller/mouseHandler.ts @@ -353,6 +353,7 @@ class MouseDownOperation extends Disposable { && e.detail < 2 // only single click on a selection can work && !this._isActive // the mouse is not down yet && !this._currentSelection.isEmpty() // we don't drag single cursor + && (position.type === editorBrowser.MouseTargetType.CONTENT_TEXT) // single click on text && this._currentSelection.containsPosition(position.position) // single click on a selection ) { this._mouseState.isDragAndDrop = true; diff --git a/src/vs/editor/contrib/dnd/dnd.ts b/src/vs/editor/contrib/dnd/dnd.ts index 4b00279afa0..2e374330900 100644 --- a/src/vs/editor/contrib/dnd/dnd.ts +++ b/src/vs/editor/contrib/dnd/dnd.ts @@ -20,7 +20,6 @@ import { DragAndDropCommand } from 'vs/editor/contrib/dnd/dragAndDropCommand'; import { ModelDecorationOptions } from 'vs/editor/common/model/textModel'; import { IModelDeltaDecoration } from 'vs/editor/common/model'; import { IMouseEvent } from 'vs/base/browser/mouseEvent'; -import { IEmptyContentData } from 'vs/editor/browser/controller/mouseTarget'; import { CodeEditorWidget } from 'vs/editor/browser/widget/codeEditorWidget'; function hasTriggerModifier(e: IKeyboardEvent | IMouseEvent): boolean { @@ -40,7 +39,6 @@ export class DragAndDropController implements editorCommon.IEditorContribution { private _dragSelection: Selection; private _dndDecorationIds: string[]; private _mouseDown: boolean; - private _mouseDownInfo: IEditorMouseEvent; private _modiferPressed: boolean; static TRIGGER_KEY_VALUE = isMacintosh ? KeyCode.Alt : KeyCode.Ctrl; @@ -60,7 +58,6 @@ export class DragAndDropController implements editorCommon.IEditorContribution { this._toUnhook.push(this._editor.onDidBlurEditorWidget(() => this.onEditorBlur())); this._dndDecorationIds = []; this._mouseDown = false; - this._mouseDownInfo = null; this._modiferPressed = false; this._dragSelection = null; } @@ -106,12 +103,10 @@ export class DragAndDropController implements editorCommon.IEditorContribution { private _onEditorMouseDown(mouseEvent: IEditorMouseEvent): void { this._mouseDown = true; - this._mouseDownInfo = mouseEvent; } private _onEditorMouseUp(mouseEvent: IEditorMouseEvent): void { this._mouseDown = false; - this._mouseDownInfo = null; // Whenever users release the mouse, the drag and drop operation should finish and the cursor should revert to text. this._editor.updateOptions({ mouseStyle: 'text' @@ -119,19 +114,6 @@ export class DragAndDropController implements editorCommon.IEditorContribution { } private _onEditorMouseDrag(mouseEvent: IEditorMouseEvent): void { - if (!this._mouseDownInfo) { - return; - } - - if (this._mouseDownInfo.target.type === MouseTargetType.CONTENT_EMPTY) { - const epsilon = this._editor.getConfiguration().fontInfo.typicalHalfwidthCharacterWidth / 2; - const data = mouseEvent.target.detail; - if (!data || data.isAfterLines || typeof data.horizontalDistanceToText !== 'number' || data.horizontalDistanceToText >= epsilon) { - this._mouseDownInfo = null; // clear the mousedown info then we can early exit for this drag listener. - return; - } - } - let target = mouseEvent.target; if (this._dragSelection === null) {