@xterm/xterm
Advanced tools
+2
-2
| { | ||
| "name": "@xterm/xterm", | ||
| "description": "Full xterm terminal, in your browser", | ||
| "version": "6.1.0-beta.287", | ||
| "version": "6.1.0-beta.288", | ||
| "main": "lib/xterm.js", | ||
@@ -122,3 +122,3 @@ "module": "lib/xterm.mjs", | ||
| }, | ||
| "commit": "53a98a720ae4a973e384fa2440880d09537132f3" | ||
| "commit": "8aab310366549d8d865bd8fc4bd509051f2bb2a1" | ||
| } |
@@ -10,3 +10,3 @@ /** | ||
| import { C0 } from '../../common/data/EscapeSequences'; | ||
| import { DisposableStore, MutableDisposable, toDisposable } from '../../common/Lifecycle'; | ||
| import { DisposableStore, MutableDisposable } from '../../common/Lifecycle'; | ||
| import { ICoreBrowserService, IMouseCoordsService, IMouseService, IMouseServiceTarget, IRenderService, ISelectionService } from './Services'; | ||
@@ -25,2 +25,4 @@ import { Gesture, EventType as GestureEventType, IGestureEvent } from '../scrollable/touch'; | ||
| readonly requestedEvents: RequestedMouseEvents; | ||
| readonly mouseupListener: MutableDisposable<IDisposable>; | ||
| readonly mousedragListener: MutableDisposable<IDisposable>; | ||
| } | ||
@@ -66,3 +68,7 @@ | ||
| }; | ||
| const ctx: IMouseBindContext = { target, focus, requestedEvents }; | ||
| const mouseupListener = new MutableDisposable<IDisposable>(); | ||
| const mousedragListener = new MutableDisposable<IDisposable>(); | ||
| register(mouseupListener); | ||
| register(mousedragListener); | ||
| const ctx: IMouseBindContext = { target, focus, requestedEvents, mouseupListener, mousedragListener }; | ||
| const eventListeners: Record<'mouseup' | 'wheel' | 'mousedrag' | 'mousemove', EventListener> = { | ||
@@ -91,12 +97,2 @@ mouseup: (ev: Event) => this._handleMouseUp(ctx, ev as MouseEvent), | ||
| // Ensure document-level listeners are removed on dispose | ||
| register(toDisposable(() => { | ||
| if (requestedEvents.mouseup) { | ||
| document.removeEventListener('mouseup', requestedEvents.mouseup); | ||
| } | ||
| if (requestedEvents.mousedrag) { | ||
| document.removeEventListener('mousemove', requestedEvents.mousedrag); | ||
| } | ||
| })); | ||
| /** | ||
@@ -206,8 +202,4 @@ * "Always on" event listeners. | ||
| // if no other button is held remove global handlers | ||
| if (ctx.requestedEvents.mouseup) { | ||
| ctx.target.document.removeEventListener('mouseup', ctx.requestedEvents.mouseup); | ||
| } | ||
| if (ctx.requestedEvents.mousedrag) { | ||
| ctx.target.document.removeEventListener('mousemove', ctx.requestedEvents.mousedrag); | ||
| } | ||
| ctx.mouseupListener.clear(); | ||
| ctx.mousedragListener.clear(); | ||
| } | ||
@@ -254,7 +246,10 @@ } | ||
| // is held, we currently limit 'mousedown' to the terminal only. | ||
| // Use the element's current document in case it moved to another window after open. | ||
| const { element, document: targetDocument } = ctx.target; | ||
| const listenerDocument = element.ownerDocument ?? targetDocument; | ||
| if (ctx.requestedEvents.mouseup) { | ||
| ctx.target.document.addEventListener('mouseup', ctx.requestedEvents.mouseup); | ||
| ctx.mouseupListener.value = addDisposableListener(listenerDocument, 'mouseup', ctx.requestedEvents.mouseup); | ||
| } | ||
| if (ctx.requestedEvents.mousedrag) { | ||
| ctx.target.document.addEventListener('mousemove', ctx.requestedEvents.mousedrag); | ||
| ctx.mousedragListener.value = addDisposableListener(listenerDocument, 'mousemove', ctx.requestedEvents.mousedrag); | ||
| } | ||
@@ -407,3 +402,3 @@ } | ||
| private _handleProtocolChange(ctx: IMouseBindContext, eventListeners: Record<'mouseup' | 'wheel' | 'mousedrag' | 'mousemove', EventListener>, events: CoreMouseEventType): void { | ||
| const { element, document } = ctx.target; | ||
| const { element } = ctx.target; | ||
| const { requestedEvents } = ctx; | ||
@@ -443,5 +438,3 @@ // apply global changes on events | ||
| if (!(events & CoreMouseEventType.UP)) { | ||
| if (requestedEvents.mouseup) { | ||
| document.removeEventListener('mouseup', requestedEvents.mouseup); | ||
| } | ||
| ctx.mouseupListener.clear(); | ||
| requestedEvents.mouseup = null; | ||
@@ -453,5 +446,3 @@ } else { | ||
| if (!(events & CoreMouseEventType.DRAG)) { | ||
| if (requestedEvents.mousedrag) { | ||
| document.removeEventListener('mousemove', requestedEvents.mousedrag); | ||
| } | ||
| ctx.mousedragListener.clear(); | ||
| requestedEvents.mousedrag = null; | ||
@@ -458,0 +449,0 @@ } else { |
@@ -9,2 +9,2 @@ /** | ||
| */ | ||
| export const XTERM_VERSION = '6.1.0-beta.287'; | ||
| export const XTERM_VERSION = '6.1.0-beta.288'; |
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
4747816
-0.02%30501
-0.03%