@theia/core 1.59.0 → 1.60.0-next.43
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +10 -10
- package/lib/browser/about-dialog.d.ts.map +1 -1
- package/lib/browser/about-dialog.js +2 -1
- package/lib/browser/about-dialog.js.map +1 -1
- package/lib/browser/browser.d.ts +2 -0
- package/lib/browser/browser.d.ts.map +1 -1
- package/lib/browser/browser.js +6 -1
- package/lib/browser/browser.js.map +1 -1
- package/lib/browser/catalog.json +157 -13
- package/lib/browser/common-frontend-contribution.d.ts.map +1 -1
- package/lib/browser/common-frontend-contribution.js +24 -22
- package/lib/browser/common-frontend-contribution.js.map +1 -1
- package/lib/browser/common-styling-participants.js +25 -25
- package/lib/browser/menu/browser-context-menu-renderer.d.ts.map +1 -1
- package/lib/browser/menu/browser-context-menu-renderer.js +1 -2
- package/lib/browser/menu/browser-context-menu-renderer.js.map +1 -1
- package/lib/browser/menu/browser-menu-plugin.d.ts +5 -5
- package/lib/browser/menu/browser-menu-plugin.d.ts.map +1 -1
- package/lib/browser/menu/browser-menu-plugin.js +23 -13
- package/lib/browser/menu/browser-menu-plugin.js.map +1 -1
- package/lib/browser/preferences/injectable-preference-proxy.d.ts +1 -1
- package/lib/browser/preferences/injectable-preference-proxy.d.ts.map +1 -1
- package/lib/browser/preferences/preference-contribution.d.ts +1 -1
- package/lib/browser/preferences/preference-contribution.d.ts.map +1 -1
- package/lib/browser/preferences/preference-provider.d.ts +1 -1
- package/lib/browser/preferences/preference-provider.d.ts.map +1 -1
- package/lib/browser/preferences/preference-provider.js +1 -1
- package/lib/browser/preferences/preference-provider.js.map +1 -1
- package/lib/browser/preferences/preference-service.d.ts +1 -1
- package/lib/browser/preferences/preference-service.d.ts.map +1 -1
- package/lib/browser/preferences/preference-service.js +3 -3
- package/lib/browser/preferences/preference-service.js.map +1 -1
- package/lib/browser/preferences/preference-validation-service.d.ts +1 -1
- package/lib/browser/preferences/preference-validation-service.d.ts.map +1 -1
- package/lib/browser/saveable.d.ts +11 -3
- package/lib/browser/saveable.d.ts.map +1 -1
- package/lib/browser/saveable.js +2 -1
- package/lib/browser/saveable.js.map +1 -1
- package/lib/browser/shell/application-shell-mouse-tracker.d.ts +1 -1
- package/lib/browser/shell/application-shell-mouse-tracker.d.ts.map +1 -1
- package/lib/browser/shell/application-shell-mouse-tracker.js +3 -3
- package/lib/browser/shell/application-shell-mouse-tracker.js.map +1 -1
- package/lib/browser/shell/application-shell.d.ts +10 -7
- package/lib/browser/shell/application-shell.d.ts.map +1 -1
- package/lib/browser/shell/application-shell.js +24 -21
- package/lib/browser/shell/application-shell.js.map +1 -1
- package/lib/browser/shell/shell-layout-restorer.d.ts +1 -1
- package/lib/browser/shell/shell-layout-restorer.d.ts.map +1 -1
- package/lib/browser/shell/side-panel-handler.d.ts +2 -2
- package/lib/browser/shell/side-panel-handler.d.ts.map +1 -1
- package/lib/browser/shell/side-panel-handler.js +11 -11
- package/lib/browser/shell/side-panel-handler.js.map +1 -1
- package/lib/browser/shell/side-panel-toolbar.d.ts +2 -2
- package/lib/browser/shell/side-panel-toolbar.d.ts.map +1 -1
- package/lib/browser/shell/side-panel-toolbar.js +1 -1
- package/lib/browser/shell/side-panel-toolbar.js.map +1 -1
- package/lib/browser/shell/split-panels.d.ts +1 -1
- package/lib/browser/shell/split-panels.d.ts.map +1 -1
- package/lib/browser/shell/split-panels.js +1 -1
- package/lib/browser/shell/split-panels.js.map +1 -1
- package/lib/browser/shell/tab-bar-decorator.d.ts +1 -1
- package/lib/browser/shell/tab-bar-decorator.d.ts.map +1 -1
- package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar.d.ts +1 -1
- package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar.d.ts.map +1 -1
- package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar.js +1 -1
- package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar.js.map +1 -1
- package/lib/browser/shell/tab-bars.d.ts +18 -12
- package/lib/browser/shell/tab-bars.d.ts.map +1 -1
- package/lib/browser/shell/tab-bars.js +79 -51
- package/lib/browser/shell/tab-bars.js.map +1 -1
- package/lib/browser/shell/tab-bars.spec.js +1 -1
- package/lib/browser/shell/tab-bars.spec.js.map +1 -1
- package/lib/browser/shell/theia-dock-panel.d.ts +2 -2
- package/lib/browser/shell/theia-dock-panel.d.ts.map +1 -1
- package/lib/browser/shell/theia-dock-panel.js +3 -3
- package/lib/browser/shell/theia-dock-panel.js.map +1 -1
- package/lib/browser/shell/view-column-service.d.ts +1 -1
- package/lib/browser/shell/view-column-service.d.ts.map +1 -1
- package/lib/browser/shell/view-column-service.js +1 -1
- package/lib/browser/shell/view-column-service.js.map +1 -1
- package/lib/browser/shell/view-contribution.d.ts +1 -1
- package/lib/browser/shell/view-contribution.d.ts.map +1 -1
- package/lib/browser/source-tree/source-tree.d.ts.map +1 -1
- package/lib/browser/source-tree/source-tree.js +3 -2
- package/lib/browser/source-tree/source-tree.js.map +1 -1
- package/lib/browser/source-tree/tree-source.d.ts +1 -0
- package/lib/browser/source-tree/tree-source.d.ts.map +1 -1
- package/lib/browser/source-tree/tree-source.js.map +1 -1
- package/lib/browser/tree/tree-widget.d.ts +1 -1
- package/lib/browser/tree/tree-widget.d.ts.map +1 -1
- package/lib/browser/tree/tree-widget.js +1 -1
- package/lib/browser/tree/tree-widget.js.map +1 -1
- package/lib/browser/view-container.d.ts +6 -7
- package/lib/browser/view-container.d.ts.map +1 -1
- package/lib/browser/view-container.js +25 -25
- package/lib/browser/view-container.js.map +1 -1
- package/lib/browser/widget-manager.d.ts +1 -1
- package/lib/browser/widget-manager.d.ts.map +1 -1
- package/lib/browser/widget-manager.js +1 -1
- package/lib/browser/widget-manager.js.map +1 -1
- package/lib/browser/widget-manager.spec.js +1 -1
- package/lib/browser/widget-manager.spec.js.map +1 -1
- package/lib/browser/widgets/react-widget.d.ts +1 -1
- package/lib/browser/widgets/react-widget.d.ts.map +1 -1
- package/lib/browser/widgets/react-widget.js +1 -1
- package/lib/browser/widgets/react-widget.js.map +1 -1
- package/lib/browser/widgets/widget.d.ts +6 -6
- package/lib/browser/widgets/widget.d.ts.map +1 -1
- package/lib/browser/widgets/widget.js +6 -6
- package/lib/browser/widgets/widget.js.map +1 -1
- package/lib/common/json-schema.d.ts +1 -1
- package/lib/common/json-schema.d.ts.map +1 -1
- package/lib/common/preferences/preference-schema.d.ts +4 -1
- package/lib/common/preferences/preference-schema.d.ts.map +1 -1
- package/lib/common/preferences/preference-schema.js.map +1 -1
- package/lib/common/theme.d.ts +2 -0
- package/lib/common/theme.d.ts.map +1 -1
- package/lib/common/theme.js +5 -1
- package/lib/common/theme.js.map +1 -1
- package/lib/electron-browser/menu/electron-menu-contribution.d.ts +1 -1
- package/lib/electron-browser/menu/electron-menu-contribution.d.ts.map +1 -1
- package/lib/electron-browser/menu/electron-menu-contribution.js +6 -4
- package/lib/electron-browser/menu/electron-menu-contribution.js.map +1 -1
- package/lib/electron-browser/preload.d.ts.map +1 -1
- package/lib/electron-browser/preload.js +3 -0
- package/lib/electron-browser/preload.js.map +1 -1
- package/lib/electron-common/electron-api.d.ts +3 -0
- package/lib/electron-common/electron-api.d.ts.map +1 -1
- package/lib/electron-common/electron-api.js +2 -1
- package/lib/electron-common/electron-api.js.map +1 -1
- package/lib/electron-main/electron-api-main.d.ts.map +1 -1
- package/lib/electron-main/electron-api-main.js +1 -0
- package/lib/electron-main/electron-api-main.js.map +1 -1
- package/lib/electron-main/electron-main-application.d.ts +2 -0
- package/lib/electron-main/electron-main-application.d.ts.map +1 -1
- package/lib/electron-main/electron-main-application.js +3 -0
- package/lib/electron-main/electron-main-application.js.map +1 -1
- package/lib/node/messaging/websocket-frontend-connection-service.js +1 -1
- package/package.json +24 -24
- package/shared/@lumino/algorithm/index.d.ts +1 -0
- package/shared/@lumino/algorithm/index.js +1 -0
- package/shared/@lumino/commands/index.d.ts +1 -0
- package/shared/@lumino/commands/index.js +1 -0
- package/shared/@lumino/coreutils/index.d.ts +1 -0
- package/shared/@lumino/coreutils/index.js +1 -0
- package/shared/@lumino/domutils/index.d.ts +1 -0
- package/shared/@lumino/domutils/index.js +1 -0
- package/shared/@lumino/dragdrop/index.d.ts +1 -0
- package/shared/@lumino/dragdrop/index.js +1 -0
- package/shared/@lumino/messaging/index.d.ts +1 -0
- package/shared/@lumino/messaging/index.js +1 -0
- package/shared/@lumino/properties/index.d.ts +1 -0
- package/shared/@lumino/properties/index.js +1 -0
- package/shared/@lumino/signaling/index.d.ts +1 -0
- package/shared/@lumino/signaling/index.js +1 -0
- package/shared/@lumino/virtualdom/index.d.ts +1 -0
- package/shared/@lumino/virtualdom/index.js +1 -0
- package/shared/@lumino/widgets/index.d.ts +1 -0
- package/shared/@lumino/widgets/index.js +1 -0
- package/src/browser/about-dialog.tsx +2 -1
- package/src/browser/browser.ts +6 -1
- package/src/browser/common-frontend-contribution.ts +24 -22
- package/src/browser/common-styling-participants.ts +25 -25
- package/src/browser/menu/browser-context-menu-renderer.ts +1 -2
- package/src/browser/menu/browser-menu-plugin.ts +24 -14
- package/src/browser/preferences/injectable-preference-proxy.ts +1 -1
- package/src/browser/preferences/preference-contribution.ts +1 -1
- package/src/browser/preferences/preference-provider.ts +1 -1
- package/src/browser/preferences/preference-service.ts +1 -1
- package/src/browser/preferences/preference-validation-service.spec.ts +1 -1
- package/src/browser/preferences/preference-validation-service.ts +1 -1
- package/src/browser/saveable.ts +13 -3
- package/src/browser/shell/application-shell-mouse-tracker.ts +3 -3
- package/src/browser/shell/application-shell.ts +36 -32
- package/src/browser/shell/shell-layout-restorer.ts +1 -1
- package/src/browser/shell/side-panel-handler.ts +11 -11
- package/src/browser/shell/side-panel-toolbar.ts +2 -2
- package/src/browser/shell/split-panels.ts +1 -1
- package/src/browser/shell/tab-bar-decorator.ts +1 -1
- package/src/browser/shell/tab-bar-toolbar/tab-bar-toolbar.tsx +1 -1
- package/src/browser/shell/tab-bars.spec.ts +1 -1
- package/src/browser/shell/tab-bars.ts +92 -57
- package/src/browser/shell/theia-dock-panel.ts +3 -3
- package/src/browser/shell/view-column-service.ts +2 -2
- package/src/browser/shell/view-contribution.ts +1 -1
- package/src/browser/source-tree/source-tree.ts +3 -2
- package/src/browser/source-tree/tree-source.ts +1 -0
- package/src/browser/style/dialog.css +12 -12
- package/src/browser/style/dockpanel.css +19 -19
- package/src/browser/style/hover-service.css +1 -0
- package/src/browser/style/index.css +3 -3
- package/src/browser/style/menus.css +34 -31
- package/src/browser/style/sidepanel.css +52 -48
- package/src/browser/style/split-widget.css +5 -5
- package/src/browser/style/tabs.css +91 -97
- package/src/browser/style/view-container.css +14 -14
- package/src/browser/tree/tree-widget.tsx +2 -2
- package/src/browser/view-container.ts +34 -34
- package/src/browser/widget-manager.spec.ts +1 -1
- package/src/browser/widget-manager.ts +1 -1
- package/src/browser/widgets/react-widget.tsx +1 -1
- package/src/browser/widgets/widget.ts +7 -7
- package/src/common/json-schema.ts +1 -1
- package/src/common/preferences/preference-schema.ts +4 -1
- package/src/common/theme.ts +6 -0
- package/src/electron-browser/menu/electron-menu-contribution.ts +6 -5
- package/src/electron-browser/preload.ts +6 -3
- package/src/electron-common/electron-api.ts +3 -0
- package/src/electron-main/electron-api-main.ts +4 -1
- package/src/electron-main/electron-main-application.ts +5 -0
- package/src/node/messaging/websocket-frontend-connection-service.ts +1 -2
- package/shared/@phosphor/algorithm/index.d.ts +0 -1
- package/shared/@phosphor/algorithm/index.js +0 -1
- package/shared/@phosphor/commands/index.d.ts +0 -1
- package/shared/@phosphor/commands/index.js +0 -1
- package/shared/@phosphor/coreutils/index.d.ts +0 -1
- package/shared/@phosphor/coreutils/index.js +0 -1
- package/shared/@phosphor/domutils/index.d.ts +0 -1
- package/shared/@phosphor/domutils/index.js +0 -1
- package/shared/@phosphor/dragdrop/index.d.ts +0 -1
- package/shared/@phosphor/dragdrop/index.js +0 -1
- package/shared/@phosphor/messaging/index.d.ts +0 -1
- package/shared/@phosphor/messaging/index.js +0 -1
- package/shared/@phosphor/properties/index.d.ts +0 -1
- package/shared/@phosphor/properties/index.js +0 -1
- package/shared/@phosphor/signaling/index.d.ts +0 -1
- package/shared/@phosphor/signaling/index.js +0 -1
- package/shared/@phosphor/virtualdom/index.d.ts +0 -1
- package/shared/@phosphor/virtualdom/index.js +0 -1
- package/shared/@phosphor/widgets/index.d.ts +0 -1
- package/shared/@phosphor/widgets/index.js +0 -1
package/src/browser/saveable.ts
CHANGED
|
@@ -14,14 +14,14 @@
|
|
|
14
14
|
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
|
|
15
15
|
// *****************************************************************************
|
|
16
16
|
|
|
17
|
-
import { Widget } from '@
|
|
18
|
-
import { Message } from '@
|
|
17
|
+
import { Widget } from '@lumino/widgets';
|
|
18
|
+
import { Message } from '@lumino/messaging';
|
|
19
19
|
import { Emitter, Event } from '../common/event';
|
|
20
20
|
import { MaybePromise } from '../common/types';
|
|
21
21
|
import { Key } from './keyboard/keys';
|
|
22
22
|
import { AbstractDialog } from './dialogs';
|
|
23
23
|
import { nls } from '../common/nls';
|
|
24
|
-
import { Disposable, DisposableCollection, isObject } from '../common';
|
|
24
|
+
import { Disposable, DisposableCollection, isObject, URI } from '../common';
|
|
25
25
|
import { BinaryBuffer } from '../common/buffer';
|
|
26
26
|
|
|
27
27
|
export type AutoSaveMode = 'off' | 'afterDelay' | 'onFocusChange' | 'onWindowChange';
|
|
@@ -44,6 +44,10 @@ export interface Saveable {
|
|
|
44
44
|
* Saves dirty changes.
|
|
45
45
|
*/
|
|
46
46
|
save(options?: SaveOptions): MaybePromise<void>;
|
|
47
|
+
/**
|
|
48
|
+
* Performs the save operation with a new file name.
|
|
49
|
+
*/
|
|
50
|
+
saveAs?(options: SaveAsOptions): MaybePromise<void>;
|
|
47
51
|
/**
|
|
48
52
|
* Reverts dirty changes.
|
|
49
53
|
*/
|
|
@@ -87,6 +91,7 @@ export class DelegatingSaveable implements Saveable {
|
|
|
87
91
|
createSnapshot?(): Saveable.Snapshot;
|
|
88
92
|
applySnapshot?(snapshot: object): void;
|
|
89
93
|
serialize?(): Promise<BinaryBuffer>;
|
|
94
|
+
saveAs?(options: SaveAsOptions): MaybePromise<void>;
|
|
90
95
|
|
|
91
96
|
protected _delegate?: Saveable;
|
|
92
97
|
protected toDispose = new DisposableCollection();
|
|
@@ -110,6 +115,7 @@ export class DelegatingSaveable implements Saveable {
|
|
|
110
115
|
this.createSnapshot = delegate.createSnapshot?.bind(delegate);
|
|
111
116
|
this.applySnapshot = delegate.applySnapshot?.bind(delegate);
|
|
112
117
|
this.serialize = delegate.serialize?.bind(delegate);
|
|
118
|
+
this.saveAs = delegate.saveAs?.bind(delegate);
|
|
113
119
|
}
|
|
114
120
|
|
|
115
121
|
}
|
|
@@ -341,6 +347,10 @@ export interface SaveOptions {
|
|
|
341
347
|
readonly saveReason?: SaveReason;
|
|
342
348
|
}
|
|
343
349
|
|
|
350
|
+
export interface SaveAsOptions extends SaveOptions {
|
|
351
|
+
readonly target: URI;
|
|
352
|
+
}
|
|
353
|
+
|
|
344
354
|
/**
|
|
345
355
|
* The class name added to the dirty widget's title.
|
|
346
356
|
*/
|
|
@@ -19,7 +19,7 @@ import { ApplicationShell } from './application-shell';
|
|
|
19
19
|
import { injectable, inject } from 'inversify';
|
|
20
20
|
import { DisposableCollection, Disposable } from '../../common/disposable';
|
|
21
21
|
import { Emitter, Event } from '../../common/event';
|
|
22
|
-
import { FocusTracker, PanelLayout, SplitPanel } from '@
|
|
22
|
+
import { FocusTracker, PanelLayout, SplitPanel } from '@lumino/widgets';
|
|
23
23
|
import { addEventListener, Widget } from '../widgets';
|
|
24
24
|
/**
|
|
25
25
|
* Contribution that tracks `mouseup` and `mousedown` events.
|
|
@@ -44,7 +44,7 @@ export class ApplicationShellMouseTracker implements FrontendApplicationContribu
|
|
|
44
44
|
protected readonly mousedownListener: (e: MouseEvent) => void = e => this.mousedownEmitter.fire(e);
|
|
45
45
|
|
|
46
46
|
onStart(): void {
|
|
47
|
-
// Here we need to attach a `mousedown` listener to the `TabBar`s, `DockPanel`s and the `SidePanel`s. Otherwise,
|
|
47
|
+
// Here we need to attach a `mousedown` listener to the `TabBar`s, `DockPanel`s and the `SidePanel`s. Otherwise, Lumino handles the event and stops the propagation.
|
|
48
48
|
// Track the `mousedown` on the `TabBar` for the currently active widget.
|
|
49
49
|
this.applicationShell.onDidChangeActiveWidget((args: FocusTracker.IChangedArgs<Widget>) => {
|
|
50
50
|
this.toDisposeOnActiveChange.dispose();
|
|
@@ -68,7 +68,7 @@ export class ApplicationShellMouseTracker implements FrontendApplicationContribu
|
|
|
68
68
|
this.toDispose.pushAll([mainPanel, bottomPanel, leftPanelHandler.dockPanel, rightPanelHandler.dockPanel]
|
|
69
69
|
.map(panel => addEventListener(panel.node, 'mousedown', this.mousedownListener, true)));
|
|
70
70
|
|
|
71
|
-
// The `mouseup` event has to be tracked on the `document`.
|
|
71
|
+
// The `mouseup` event has to be tracked on the `document`. Lumino attaches to there.
|
|
72
72
|
document.addEventListener('mouseup', this.mouseupListener, true);
|
|
73
73
|
|
|
74
74
|
// Make sure it is disposed in the end.
|
|
@@ -15,13 +15,13 @@
|
|
|
15
15
|
// *****************************************************************************
|
|
16
16
|
|
|
17
17
|
import { injectable, inject, optional, postConstruct } from 'inversify';
|
|
18
|
-
import { ArrayExt, find, toArray, each } from '@
|
|
18
|
+
import { ArrayExt, find, toArray, each } from '@lumino/algorithm';
|
|
19
19
|
import {
|
|
20
20
|
BoxLayout, BoxPanel, DockLayout, DockPanel, FocusTracker, Layout, Panel, SplitLayout,
|
|
21
21
|
SplitPanel, TabBar, Widget, Title
|
|
22
|
-
} from '@
|
|
23
|
-
import { Message } from '@
|
|
24
|
-
import {
|
|
22
|
+
} from '@lumino/widgets';
|
|
23
|
+
import { Message } from '@lumino/messaging';
|
|
24
|
+
import { Drag } from '@lumino/dragdrop';
|
|
25
25
|
import { RecursivePartial, Event as CommonEvent, DisposableCollection, Disposable, environment, isObject, UntitledResourceResolver, UNTITLED_SCHEME } from '../../common';
|
|
26
26
|
import { animationFrame } from '../browser';
|
|
27
27
|
import { Saveable, SaveableWidget, SaveOptions } from '../saveable';
|
|
@@ -169,7 +169,7 @@ interface WidgetDragState {
|
|
|
169
169
|
leftExpanded: boolean;
|
|
170
170
|
rightExpanded: boolean;
|
|
171
171
|
bottomExpanded: boolean;
|
|
172
|
-
lastDragOver?:
|
|
172
|
+
lastDragOver?: Drag.Event;
|
|
173
173
|
leaveTimeout?: number;
|
|
174
174
|
}
|
|
175
175
|
|
|
@@ -264,6 +264,9 @@ export class ApplicationShell extends Widget {
|
|
|
264
264
|
return this._mainPanelRenderer;
|
|
265
265
|
}
|
|
266
266
|
|
|
267
|
+
protected initializedDeferred = new Deferred<void>();
|
|
268
|
+
initialized = this.initializedDeferred.promise;
|
|
269
|
+
|
|
267
270
|
/**
|
|
268
271
|
* Construct a new application shell.
|
|
269
272
|
*/
|
|
@@ -322,6 +325,7 @@ export class ApplicationShell extends Widget {
|
|
|
322
325
|
});
|
|
323
326
|
}
|
|
324
327
|
});
|
|
328
|
+
this.initializedDeferred.resolve();
|
|
325
329
|
}
|
|
326
330
|
|
|
327
331
|
protected initializeShell(): void {
|
|
@@ -386,39 +390,39 @@ export class ApplicationShell extends Widget {
|
|
|
386
390
|
}
|
|
387
391
|
|
|
388
392
|
protected override onBeforeAttach(msg: Message): void {
|
|
389
|
-
document.addEventListener('
|
|
390
|
-
document.addEventListener('
|
|
391
|
-
document.addEventListener('
|
|
392
|
-
document.addEventListener('
|
|
393
|
+
document.addEventListener('lm-dragenter', this, true);
|
|
394
|
+
document.addEventListener('lm-dragover', this, true);
|
|
395
|
+
document.addEventListener('lm-dragleave', this, true);
|
|
396
|
+
document.addEventListener('lm-drop', this, true);
|
|
393
397
|
}
|
|
394
398
|
|
|
395
399
|
protected override onAfterDetach(msg: Message): void {
|
|
396
|
-
document.removeEventListener('
|
|
397
|
-
document.removeEventListener('
|
|
398
|
-
document.removeEventListener('
|
|
399
|
-
document.removeEventListener('
|
|
400
|
+
document.removeEventListener('lm-dragenter', this, true);
|
|
401
|
+
document.removeEventListener('lm-dragover', this, true);
|
|
402
|
+
document.removeEventListener('lm-dragleave', this, true);
|
|
403
|
+
document.removeEventListener('lm-drop', this, true);
|
|
400
404
|
}
|
|
401
405
|
|
|
402
406
|
handleEvent(event: Event): void {
|
|
403
407
|
switch (event.type) {
|
|
404
|
-
case '
|
|
405
|
-
this.onDragEnter(event as
|
|
408
|
+
case 'lm-dragenter':
|
|
409
|
+
this.onDragEnter(event as Drag.Event);
|
|
406
410
|
break;
|
|
407
|
-
case '
|
|
408
|
-
this.onDragOver(event as
|
|
411
|
+
case 'lm-dragover':
|
|
412
|
+
this.onDragOver(event as Drag.Event);
|
|
409
413
|
break;
|
|
410
|
-
case '
|
|
411
|
-
this.onDrop(event as
|
|
414
|
+
case 'lm-drop':
|
|
415
|
+
this.onDrop(event as Drag.Event);
|
|
412
416
|
break;
|
|
413
|
-
case '
|
|
414
|
-
this.onDragLeave(event as
|
|
417
|
+
case 'lm-dragleave':
|
|
418
|
+
this.onDragLeave(event as Drag.Event);
|
|
415
419
|
break;
|
|
416
420
|
}
|
|
417
421
|
}
|
|
418
422
|
|
|
419
|
-
protected onDragEnter({ mimeData }:
|
|
423
|
+
protected onDragEnter({ mimeData }: Drag.Event): void {
|
|
420
424
|
if (!this.dragState) {
|
|
421
|
-
if (mimeData && mimeData.hasData('application/vnd.
|
|
425
|
+
if (mimeData && mimeData.hasData('application/vnd.lumino.widget-factory')) {
|
|
422
426
|
// The drag contains a widget, so we'll track it and expand side panels as needed
|
|
423
427
|
this.dragState = {
|
|
424
428
|
startTime: performance.now(),
|
|
@@ -430,7 +434,7 @@ export class ApplicationShell extends Widget {
|
|
|
430
434
|
}
|
|
431
435
|
}
|
|
432
436
|
|
|
433
|
-
protected onDragOver(event:
|
|
437
|
+
protected onDragOver(event: Drag.Event): void {
|
|
434
438
|
const state = this.dragState;
|
|
435
439
|
if (state) {
|
|
436
440
|
state.lastDragOver = event;
|
|
@@ -499,7 +503,7 @@ export class ApplicationShell extends Widget {
|
|
|
499
503
|
}
|
|
500
504
|
}
|
|
501
505
|
|
|
502
|
-
protected onDrop(event:
|
|
506
|
+
protected onDrop(event: Drag.Event): void {
|
|
503
507
|
const state = this.dragState;
|
|
504
508
|
if (state) {
|
|
505
509
|
if (state.leaveTimeout) {
|
|
@@ -521,7 +525,7 @@ export class ApplicationShell extends Widget {
|
|
|
521
525
|
}
|
|
522
526
|
}
|
|
523
527
|
|
|
524
|
-
protected onDragLeave(event:
|
|
528
|
+
protected onDragLeave(event: Drag.Event): void {
|
|
525
529
|
const state = this.dragState;
|
|
526
530
|
if (state) {
|
|
527
531
|
state.lastDragOver = undefined;
|
|
@@ -606,7 +610,7 @@ export class ApplicationShell extends Widget {
|
|
|
606
610
|
|
|
607
611
|
dockPanel.node.addEventListener('dblclick', event => {
|
|
608
612
|
const el = event.target as Element;
|
|
609
|
-
if (el.id === MAIN_AREA_ID || el.classList.contains('
|
|
613
|
+
if (el.id === MAIN_AREA_ID || el.classList.contains('lm-TabBar-content')) {
|
|
610
614
|
this.onDidDoubleClickMainAreaEmitter.fire();
|
|
611
615
|
}
|
|
612
616
|
});
|
|
@@ -663,7 +667,7 @@ export class ApplicationShell extends Widget {
|
|
|
663
667
|
}
|
|
664
668
|
this.refreshBottomPanelToggleButton();
|
|
665
669
|
}, this);
|
|
666
|
-
dockPanel.node.addEventListener('
|
|
670
|
+
dockPanel.node.addEventListener('lm-dragenter', event => {
|
|
667
671
|
// Make sure that the main panel hides its overlay when the bottom panel is expanded
|
|
668
672
|
this.mainPanel.overlay.hide(0);
|
|
669
673
|
});
|
|
@@ -796,7 +800,7 @@ export class ApplicationShell extends Widget {
|
|
|
796
800
|
const index = parent.widgets.indexOf(this.bottomPanel) - 1;
|
|
797
801
|
if (index >= 0) {
|
|
798
802
|
const handle = parent.handles[index];
|
|
799
|
-
if (!handle.classList.contains('
|
|
803
|
+
if (!handle.classList.contains('lm-mod-hidden')) {
|
|
800
804
|
const parentHeight = parent.node.clientHeight;
|
|
801
805
|
return parentHeight - handle.offsetTop;
|
|
802
806
|
}
|
|
@@ -1037,7 +1041,7 @@ export class ApplicationShell extends Widget {
|
|
|
1037
1041
|
*/
|
|
1038
1042
|
findWidgetForElement(element: HTMLElement): Widget | undefined {
|
|
1039
1043
|
let widgetNode: HTMLElement | null = element;
|
|
1040
|
-
while (widgetNode && !widgetNode.classList.contains('
|
|
1044
|
+
while (widgetNode && !widgetNode.classList.contains('lm-Widget')) {
|
|
1041
1045
|
widgetNode = widgetNode.parentElement;
|
|
1042
1046
|
}
|
|
1043
1047
|
if (widgetNode) {
|
|
@@ -1067,7 +1071,7 @@ export class ApplicationShell extends Widget {
|
|
|
1067
1071
|
if (event?.target instanceof HTMLElement) {
|
|
1068
1072
|
const tabNode = event.target;
|
|
1069
1073
|
|
|
1070
|
-
const titleIndex = Array.from(tabBar.contentNode.getElementsByClassName('
|
|
1074
|
+
const titleIndex = Array.from(tabBar.contentNode.getElementsByClassName('lm-TabBar-tab'))
|
|
1071
1075
|
.findIndex(node => node.contains(tabNode));
|
|
1072
1076
|
|
|
1073
1077
|
if (titleIndex !== -1) {
|
|
@@ -1198,7 +1202,7 @@ export class ApplicationShell extends Widget {
|
|
|
1198
1202
|
panel.markAsCurrent(widget!.title);
|
|
1199
1203
|
}
|
|
1200
1204
|
// Add checks to ensure that the 'sash' for left panel is displayed correctly
|
|
1201
|
-
if (newValue.node.className === '
|
|
1205
|
+
if (newValue.node.className === 'lm-Widget theia-view-container lm-DockPanel-widget') {
|
|
1202
1206
|
// Set the z-index so elements with `position: fixed` contained in the active widget are displayed correctly
|
|
1203
1207
|
this.setZIndex(newValue.node, '1');
|
|
1204
1208
|
}
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
// *****************************************************************************
|
|
16
16
|
|
|
17
17
|
import { injectable, inject, named } from 'inversify';
|
|
18
|
-
import { Widget } from '@
|
|
18
|
+
import { Widget } from '@lumino/widgets';
|
|
19
19
|
import { FrontendApplication } from '../frontend-application';
|
|
20
20
|
import { WidgetManager, WidgetConstructionOptions } from '../widget-manager';
|
|
21
21
|
import { StorageService } from '../storage-service';
|
|
@@ -15,11 +15,11 @@
|
|
|
15
15
|
// *****************************************************************************
|
|
16
16
|
|
|
17
17
|
import { injectable, inject } from 'inversify';
|
|
18
|
-
import { find, map, toArray, some } from '@
|
|
19
|
-
import { TabBar, Widget, DockPanel, Title, Panel, BoxPanel, BoxLayout, SplitPanel, PanelLayout } from '@
|
|
20
|
-
import { MimeData } from '@
|
|
21
|
-
import { Drag } from '@
|
|
22
|
-
import { AttachedProperty } from '@
|
|
18
|
+
import { find, map, toArray, some } from '@lumino/algorithm';
|
|
19
|
+
import { TabBar, Widget, DockPanel, Title, Panel, BoxPanel, BoxLayout, SplitPanel, PanelLayout } from '@lumino/widgets';
|
|
20
|
+
import { MimeData } from '@lumino/coreutils';
|
|
21
|
+
import { Drag } from '@lumino/dragdrop';
|
|
22
|
+
import { AttachedProperty } from '@lumino/properties';
|
|
23
23
|
import { TabBarRendererFactory, TabBarRenderer, SHELL_TABBAR_CONTEXT_MENU, SideTabBar } from './tab-bars';
|
|
24
24
|
import { SidebarMenuWidget, SidebarMenu, SidebarBottomMenuWidgetFactory, SidebarTopMenuWidgetFactory } from './sidebar-menu-widget';
|
|
25
25
|
import { SplitPositionHandler, SplitPositionOptions } from './split-panels';
|
|
@@ -557,12 +557,12 @@ export class SidePanelHandler {
|
|
|
557
557
|
const index = parent.widgets.indexOf(this.container);
|
|
558
558
|
if (this.side === 'left') {
|
|
559
559
|
const handle = parent.handles[index];
|
|
560
|
-
if (!handle.classList.contains('
|
|
560
|
+
if (!handle.classList.contains('lm-mod-hidden')) {
|
|
561
561
|
return handle.offsetLeft;
|
|
562
562
|
}
|
|
563
563
|
} else if (this.side === 'right') {
|
|
564
564
|
const handle = parent.handles[index - 1];
|
|
565
|
-
if (!handle.classList.contains('
|
|
565
|
+
if (!handle.classList.contains('lm-mod-hidden')) {
|
|
566
566
|
const parentWidth = parent.node.clientWidth;
|
|
567
567
|
return parentWidth - handle.offsetLeft;
|
|
568
568
|
}
|
|
@@ -633,13 +633,13 @@ export class SidePanelHandler {
|
|
|
633
633
|
const clonedTab = tab.cloneNode(true) as HTMLElement;
|
|
634
634
|
clonedTab.style.width = '';
|
|
635
635
|
clonedTab.style.height = '';
|
|
636
|
-
const label = clonedTab.getElementsByClassName('
|
|
636
|
+
const label = clonedTab.getElementsByClassName('lm-TabBar-tabLabel')[0] as HTMLElement;
|
|
637
637
|
label.style.width = '';
|
|
638
638
|
label.style.height = '';
|
|
639
639
|
|
|
640
640
|
// Create and start a drag to move the selected tab to another panel
|
|
641
641
|
const mimeData = new MimeData();
|
|
642
|
-
mimeData.setData('application/vnd.
|
|
642
|
+
mimeData.setData('application/vnd.lumino.widget-factory', () => title.owner);
|
|
643
643
|
const drag = new Drag({
|
|
644
644
|
mimeData,
|
|
645
645
|
dragImage: clonedTab,
|
|
@@ -647,10 +647,10 @@ export class SidePanelHandler {
|
|
|
647
647
|
supportedActions: 'move',
|
|
648
648
|
});
|
|
649
649
|
|
|
650
|
-
tab.classList.add('
|
|
650
|
+
tab.classList.add('lm-mod-hidden');
|
|
651
651
|
drag.start(clientX, clientY).then(() => {
|
|
652
652
|
// The promise is resolved when the drag has ended
|
|
653
|
-
tab.classList.remove('
|
|
653
|
+
tab.classList.remove('lm-mod-hidden');
|
|
654
654
|
});
|
|
655
655
|
}
|
|
656
656
|
|
|
@@ -14,9 +14,9 @@
|
|
|
14
14
|
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
|
|
15
15
|
// *****************************************************************************
|
|
16
16
|
|
|
17
|
-
import { Widget, Title } from '@
|
|
17
|
+
import { Widget, Title } from '@lumino/widgets';
|
|
18
18
|
import { TabBarToolbar, TabBarToolbarRegistry, TabBarToolbarFactory } from './tab-bar-toolbar';
|
|
19
|
-
import { Message } from '@
|
|
19
|
+
import { Message } from '@lumino/messaging';
|
|
20
20
|
import { BaseWidget } from '../widgets';
|
|
21
21
|
import { Emitter } from '../../common/event';
|
|
22
22
|
import { ContextMenuAccess, Anchor } from '../context-menu-renderer';
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
// *****************************************************************************
|
|
16
16
|
|
|
17
17
|
import { injectable } from 'inversify';
|
|
18
|
-
import { SplitPanel, SplitLayout, Widget } from '@
|
|
18
|
+
import { SplitPanel, SplitLayout, Widget } from '@lumino/widgets';
|
|
19
19
|
|
|
20
20
|
export interface SplitPositionOptions {
|
|
21
21
|
/** The side of the side panel that shall be resized. */
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
// *****************************************************************************
|
|
16
16
|
|
|
17
17
|
import debounce = require('lodash.debounce');
|
|
18
|
-
import { Title, Widget } from '@
|
|
18
|
+
import { Title, Widget } from '@lumino/widgets';
|
|
19
19
|
import { inject, injectable, named } from 'inversify';
|
|
20
20
|
import { ContributionProvider, Emitter, Event } from '../../common';
|
|
21
21
|
import { ColorRegistry } from '../color-registry';
|
|
@@ -18,7 +18,7 @@ import { enableJSDOM } from '../test/jsdom';
|
|
|
18
18
|
let disableJSDOM = enableJSDOM();
|
|
19
19
|
import { expect } from 'chai';
|
|
20
20
|
|
|
21
|
-
import { Title, Widget } from '@
|
|
21
|
+
import { Title, Widget } from '@lumino/widgets';
|
|
22
22
|
import { TabBarRenderer } from './tab-bars';
|
|
23
23
|
|
|
24
24
|
disableJSDOM();
|