提交 144782b5 编写于 作者: R rebornix

remove unnecessary events in view controller

上级 96fcdf1e
......@@ -193,10 +193,4 @@ export class StandardMouseWheelEvent {
}
}
}
}
export enum MouseDownEventType {
Down,
Select,
Drag
}
\ No newline at end of file
......@@ -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,
......
......@@ -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;
......
......@@ -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);
}
}
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册