From 144782b51f91b828127d031d946492251718a1cc Mon Sep 17 00:00:00 2001 From: rebornix Date: Mon, 13 Feb 2017 18:48:18 -0800 Subject: [PATCH] remove unnecessary events in view controller --- src/vs/base/browser/mouseEvent.ts | 6 ----- .../editor/browser/controller/mouseHandler.ts | 13 +++++----- src/vs/editor/browser/editorBrowser.ts | 4 +-- src/vs/editor/browser/view/viewController.ts | 26 +++++++------------ 4 files changed, 18 insertions(+), 31 deletions(-) diff --git a/src/vs/base/browser/mouseEvent.ts b/src/vs/base/browser/mouseEvent.ts index c947570aec7..4ebd9f28286 100644 --- a/src/vs/base/browser/mouseEvent.ts +++ b/src/vs/base/browser/mouseEvent.ts @@ -193,10 +193,4 @@ export class StandardMouseWheelEvent { } } } -} - -export enum MouseDownEventType { - Down, - Select, - Drag } \ No newline at end of file diff --git a/src/vs/editor/browser/controller/mouseHandler.ts b/src/vs/editor/browser/controller/mouseHandler.ts index 37632614c26..be698a7550b 100644 --- a/src/vs/editor/browser/controller/mouseHandler.ts +++ b/src/vs/editor/browser/controller/mouseHandler.ts @@ -18,7 +18,7 @@ import { TimeoutTimer, RunOnceScheduler } from 'vs/base/common/async'; import { ViewContext } from 'vs/editor/common/view/viewContext'; import { VisibleRange } from 'vs/editor/common/view/renderingContext'; import { EditorMouseEventFactory, GlobalEditorMouseMoveMonitor, EditorMouseEvent, createEditorPagePosition, ClientCoordinates } from 'vs/editor/browser/editorDom'; -import { StandardMouseWheelEvent, MouseDownEventType } from 'vs/base/browser/mouseEvent'; +import { StandardMouseWheelEvent } from 'vs/base/browser/mouseEvent'; import { EditorZoom } from 'vs/editor/common/config/editorZoom'; import { IViewCursorRenderData } from 'vs/editor/browser/viewParts/viewCursors/viewCursor'; import * as viewEvents from 'vs/editor/common/view/viewEvents'; @@ -412,7 +412,7 @@ class MouseDownOperation extends Disposable { } - this._dispatchMouse(position, MouseDownEventType.Select); + this._dispatchMouse(position, true); } private _onMouseDragThenMove(e: EditorMouseEvent): void { @@ -426,7 +426,6 @@ class MouseDownOperation extends Disposable { } this._dragTargetPosition = position.position; - this._dispatchMouse(position, MouseDownEventType.Drag); this._viewController.emitMouseDrag({ event: e, target: this._createMouseTarget(e, true) @@ -470,7 +469,7 @@ class MouseDownOperation extends Disposable { return; } - this._dispatchMouse(position, e.shiftKey ? MouseDownEventType.Select : MouseDownEventType.Down); + this._dispatchMouse(position, e.shiftKey); if (!this._isActive) { this._isActive = true; @@ -497,7 +496,7 @@ class MouseDownOperation extends Disposable { // Ignoring because position is unknown return; } - this._dispatchMouse(position, MouseDownEventType.Select); + this._dispatchMouse(position, true); }, 10); } @@ -564,13 +563,13 @@ class MouseDownOperation extends Disposable { return new MousePosition(hintedPosition, t.mouseColumn); } - private _dispatchMouse(position: MousePosition, mouseDownEventType: MouseDownEventType): void { + private _dispatchMouse(position: MousePosition, inSelectionMode: boolean): void { this._viewController.dispatchMouse({ position: position.position, mouseColumn: position.mouseColumn, startedOnLineNumbers: this._mouseState.startedOnLineNumbers, - mouseDownEventType: mouseDownEventType, + inSelectionMode: inSelectionMode, mouseDownCount: this._mouseState.count, altKey: this._mouseState.altKey, ctrlKey: this._mouseState.ctrlKey, diff --git a/src/vs/editor/browser/editorBrowser.ts b/src/vs/editor/browser/editorBrowser.ts index 343c2cf3a0b..7f822e7b612 100644 --- a/src/vs/editor/browser/editorBrowser.ts +++ b/src/vs/editor/browser/editorBrowser.ts @@ -7,7 +7,7 @@ import { IEventEmitter } from 'vs/base/common/eventEmitter'; import { IDisposable } from 'vs/base/common/lifecycle'; import { IKeyboardEvent } from 'vs/base/browser/keyboardEvent'; -import { IMouseEvent, MouseDownEventType } from 'vs/base/browser/mouseEvent'; +import { IMouseEvent } from 'vs/base/browser/mouseEvent'; import { IConstructorSignature1 } from 'vs/platform/instantiation/common/instantiation'; import * as editorCommon from 'vs/editor/common/editorCommon'; import { Position } from 'vs/editor/common/core/position'; @@ -106,7 +106,7 @@ export interface IMouseDispatchData { mouseColumn: number; startedOnLineNumbers: boolean; - mouseDownEventType: MouseDownEventType; + inSelectionMode: boolean; mouseDownCount: number; altKey: boolean; ctrlKey: boolean; diff --git a/src/vs/editor/browser/view/viewController.ts b/src/vs/editor/browser/view/viewController.ts index 4f3dbee8bce..0b70991c44e 100644 --- a/src/vs/editor/browser/view/viewController.ts +++ b/src/vs/editor/browser/view/viewController.ts @@ -5,7 +5,6 @@ 'use strict'; import { IKeyboardEvent } from 'vs/base/browser/keyboardEvent'; -import { MouseDownEventType } from 'vs/base/browser/mouseEvent'; import { Position } from 'vs/editor/common/core/position'; import * as editorCommon from 'vs/editor/common/editorCommon'; import { IEditorMouseEvent, IViewController, IMouseDispatchData } from 'vs/editor/browser/editorBrowser'; @@ -80,13 +79,13 @@ export class ViewController implements IViewController { if (data.startedOnLineNumbers) { // If the dragging started on the gutter, then have operations work on the entire line if (data.altKey) { - if (data.mouseDownEventType === MouseDownEventType.Select) { + if (data.inSelectionMode) { this.lastCursorLineSelect('mouse', data.position); } else { this.createCursor('mouse', data.position, true); } } else { - if (data.mouseDownEventType === MouseDownEventType.Select) { + if (data.inSelectionMode) { this.lineSelectDrag('mouse', data.position); } else { this.lineSelect('mouse', data.position); @@ -96,13 +95,13 @@ export class ViewController implements IViewController { this.selectAll('mouse'); } else if (data.mouseDownCount === 3) { if (data.altKey) { - if (data.mouseDownEventType === MouseDownEventType.Select) { + if (data.inSelectionMode) { this.lastCursorLineSelectDrag('mouse', data.position); } else { this.lastCursorLineSelect('mouse', data.position); } } else { - if (data.mouseDownEventType === MouseDownEventType.Select) { + if (data.inSelectionMode) { this.lineSelectDrag('mouse', data.position); } else { this.lineSelect('mouse', data.position); @@ -112,7 +111,7 @@ export class ViewController implements IViewController { if (data.altKey) { this.lastCursorWordSelect('mouse', data.position); } else { - if (data.mouseDownEventType === MouseDownEventType.Select) { + if (data.inSelectionMode) { this.wordSelectDrag('mouse', data.position); } else { this.wordSelect('mouse', data.position); @@ -125,7 +124,7 @@ export class ViewController implements IViewController { this.columnSelect('mouse', data.position, data.mouseColumn); } else { // Do multi-cursor operations only when purely alt is pressed - if (data.mouseDownEventType === MouseDownEventType.Select) { + if (data.inSelectionMode) { this.lastCursorMoveToSelect('mouse', data.position); } else { this.createCursor('mouse', data.position, false); @@ -135,15 +134,10 @@ export class ViewController implements IViewController { } } } else { - switch (data.mouseDownEventType) { - case MouseDownEventType.Down: - this.moveTo('mouse', data.position); - break; - case MouseDownEventType.Select: - this.moveToSelect('mouse', data.position); - break; - default: - break; + if (data.inSelectionMode) { + this.moveToSelect('mouse', data.position); + } else { + this.moveTo('mouse', data.position); } } } -- GitLab