@theia/core
Version:
Theia is a cloud & desktop IDE framework implemented in TypeScript.
31 lines • 1.68 kB
TypeScript
import { FrontendApplicationContribution } from '../frontend-application';
import { ApplicationShell } from './application-shell';
import { DisposableCollection } from '../../common/disposable';
import { Emitter, Event } from '../../common/event';
import { SplitPanel } from '@phosphor/widgets';
import { Widget } from '../widgets';
/**
* Contribution that tracks `mouseup` and `mousedown` events.
*
* This is required to be able to track the `TabBar`, `DockPanel`, and `SidePanel` resizing and drag and drop events correctly
* all over the application. By default, when the mouse is over an `iframe` we lose the mouse tracking ability, so whenever
* we click (`mousedown`), we overlay a transparent `div` over the `iframe` in the Mini Browser, then we set the `display` of
* the transparent `div` to `none` on `mouseup` events.
*/
export declare class ApplicationShellMouseTracker implements FrontendApplicationContribution {
protected readonly applicationShell: ApplicationShell;
protected readonly toDispose: DisposableCollection;
protected readonly toDisposeOnActiveChange: DisposableCollection;
protected readonly mouseupEmitter: Emitter<MouseEvent>;
protected readonly mousedownEmitter: Emitter<MouseEvent>;
protected readonly mouseupListener: (e: MouseEvent) => void;
protected readonly mousedownListener: (e: MouseEvent) => void;
onStart(): void;
onStop(): void;
get onMouseup(): Event<MouseEvent>;
get onMousedown(): Event<MouseEvent>;
}
export declare namespace ApplicationShellMouseTracker {
function isSplitPanel(arg: Widget): arg is SplitPanel;
}
//# sourceMappingURL=application-shell-mouse-tracker.d.ts.map