@theia/core 1.59.0-next.72 → 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 +16 -16
- package/i18n/nls.cs.json +344 -23
- package/i18n/nls.de.json +344 -23
- package/i18n/nls.es.json +344 -23
- package/i18n/nls.fr.json +344 -23
- package/i18n/nls.hu.json +344 -23
- package/i18n/nls.it.json +344 -23
- package/i18n/nls.ja.json +344 -23
- package/i18n/nls.json +344 -23
- package/i18n/nls.ko.json +344 -23
- package/i18n/nls.pl.json +344 -23
- package/i18n/nls.pt-br.json +344 -23
- package/i18n/nls.ru.json +344 -23
- package/i18n/nls.tr.json +344 -23
- package/i18n/nls.zh-cn.json +344 -23
- package/i18n/nls.zh-tw.json +344 -23
- package/lib/browser/about-dialog.d.ts.map +1 -1
- package/lib/browser/about-dialog.js +3 -2
- 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 +207 -14
- package/lib/browser/common-frontend-contribution.d.ts +2 -0
- package/lib/browser/common-frontend-contribution.d.ts.map +1 -1
- package/lib/browser/common-frontend-contribution.js +56 -22
- package/lib/browser/common-frontend-contribution.js.map +1 -1
- package/lib/browser/common-styling-participants.js +25 -25
- package/lib/browser/context-menu-renderer.d.ts +3 -3
- package/lib/browser/context-menu-renderer.d.ts.map +1 -1
- package/lib/browser/core-preferences.js +5 -5
- package/lib/browser/core-preferences.js.map +1 -1
- 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/preload/i18n-preload-contribution.d.ts +4 -0
- package/lib/browser/preload/i18n-preload-contribution.d.ts.map +1 -1
- package/lib/browser/preload/i18n-preload-contribution.js +23 -1
- package/lib/browser/preload/i18n-preload-contribution.js.map +1 -1
- package/lib/browser/preload/preload-module.d.ts.map +1 -1
- package/lib/browser/preload/preload-module.js +5 -3
- package/lib/browser/preload/preload-module.js.map +1 -1
- package/lib/browser/preload/text-replacement-contribution.d.ts +37 -0
- package/lib/browser/preload/text-replacement-contribution.d.ts.map +1 -0
- package/lib/browser/preload/text-replacement-contribution.js +20 -0
- package/lib/browser/preload/text-replacement-contribution.js.map +1 -0
- 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 +13 -12
- 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/sidebar-bottom-menu-widget.d.ts.map +1 -1
- package/lib/browser/shell/sidebar-bottom-menu-widget.js +2 -1
- package/lib/browser/shell/sidebar-bottom-menu-widget.js.map +1 -1
- package/lib/browser/shell/sidebar-menu-widget.d.ts.map +1 -1
- package/lib/browser/shell/sidebar-menu-widget.js +1 -0
- package/lib/browser/shell/sidebar-menu-widget.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 +3 -3
- 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 +80 -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 +2 -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 +31 -27
- 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 +10 -8
- package/lib/browser/widgets/widget.js.map +1 -1
- package/lib/common/i18n/localization.d.ts +2 -3
- package/lib/common/i18n/localization.d.ts.map +1 -1
- package/lib/common/i18n/localization.js +10 -3
- package/lib/common/i18n/localization.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-context-menu-renderer.d.ts.map +1 -1
- package/lib/electron-browser/menu/electron-context-menu-renderer.js +3 -1
- package/lib/electron-browser/menu/electron-context-menu-renderer.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 +26 -26
- 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 +3 -2
- package/src/browser/browser.ts +6 -1
- package/src/browser/common-frontend-contribution.ts +54 -22
- package/src/browser/common-styling-participants.ts +25 -25
- package/src/browser/context-menu-renderer.ts +3 -3
- package/src/browser/core-preferences.ts +5 -5
- 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/preload/i18n-preload-contribution.ts +22 -2
- package/src/browser/preload/preload-module.ts +5 -3
- package/src/browser/preload/text-replacement-contribution.ts +53 -0
- 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 +13 -12
- package/src/browser/shell/side-panel-toolbar.ts +2 -2
- package/src/browser/shell/sidebar-bottom-menu-widget.tsx +2 -1
- package/src/browser/shell/sidebar-menu-widget.tsx +1 -0
- 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 +3 -3
- package/src/browser/shell/tab-bars.spec.ts +1 -1
- package/src/browser/shell/tab-bars.ts +93 -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 +3 -2
- package/src/browser/view-container.ts +40 -36
- 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 +11 -9
- package/src/common/i18n/localization.ts +10 -4
- package/src/common/i18n/nls.metadata.json +34921 -32708
- 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-context-menu-renderer.ts +3 -1
- 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
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
|
|
15
15
|
// *****************************************************************************
|
|
16
16
|
|
|
17
|
-
import { JSONValue } from '@
|
|
17
|
+
import { JSONValue } from '@lumino/coreutils';
|
|
18
18
|
|
|
19
19
|
export type JsonType = 'string' | 'array' | 'number' | 'integer' | 'object' | 'boolean' | 'null';
|
|
20
20
|
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
|
|
17
17
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
18
18
|
|
|
19
|
-
import { JSONValue } from '@
|
|
19
|
+
import { JSONValue } from '@lumino/coreutils';
|
|
20
20
|
import { IJSONSchema } from '../json-schema';
|
|
21
21
|
import { PreferenceScope } from './preference-scope';
|
|
22
22
|
import { isObject, isString } from '../types';
|
|
@@ -73,7 +73,10 @@ export interface PreferenceItem extends IJSONSchema {
|
|
|
73
73
|
*/
|
|
74
74
|
defaultValue?: JSONValue;
|
|
75
75
|
overridable?: boolean;
|
|
76
|
+
/** If false, the preference will not be included in the schema or the UI. */
|
|
76
77
|
included?: boolean;
|
|
78
|
+
/** If true, this item will registered as part of the preference schema, but hidden in the preference editor UI. */
|
|
79
|
+
hidden?: boolean;
|
|
77
80
|
[key: string]: any;
|
|
78
81
|
}
|
|
79
82
|
export interface PreferenceSchemaProperty extends PreferenceItem {
|
package/src/common/theme.ts
CHANGED
|
@@ -18,6 +18,8 @@ import { URI } from 'vscode-uri';
|
|
|
18
18
|
|
|
19
19
|
export type ThemeType = 'light' | 'dark' | 'hc' | 'hcLight';
|
|
20
20
|
|
|
21
|
+
export type ThemeMode = 'light' | 'dark';
|
|
22
|
+
|
|
21
23
|
export interface Theme {
|
|
22
24
|
readonly id: string;
|
|
23
25
|
readonly type: ThemeType;
|
|
@@ -32,6 +34,10 @@ export function isHighContrast(scheme: ThemeType): boolean {
|
|
|
32
34
|
return scheme === 'hc' || scheme === 'hcLight';
|
|
33
35
|
}
|
|
34
36
|
|
|
37
|
+
export function getThemeMode(type: ThemeType): ThemeMode {
|
|
38
|
+
return (type === 'hc' || type === 'dark') ? 'dark' : 'light';
|
|
39
|
+
}
|
|
40
|
+
|
|
35
41
|
export interface ThemeChangeEvent {
|
|
36
42
|
readonly newTheme: Theme;
|
|
37
43
|
readonly oldTheme?: Theme;
|
|
@@ -56,6 +56,7 @@ export class ElectronTextInputContextMenuContribution implements FrontendApplica
|
|
|
56
56
|
this.contextMenuRenderer.render({
|
|
57
57
|
anchor: event,
|
|
58
58
|
menuPath: ElectronTextInputContextMenu.MENU_PATH,
|
|
59
|
+
context: event.target,
|
|
59
60
|
onHide: () => target.focus()
|
|
60
61
|
});
|
|
61
62
|
}
|
|
@@ -119,7 +120,8 @@ export class ElectronContextMenuRenderer extends BrowserContextMenuRenderer {
|
|
|
119
120
|
const node = (menuAccess as BrowserContextMenuAccess).menu.node;
|
|
120
121
|
const topPanelHeight = document.getElementById('theia-top-panel')?.clientHeight ?? 0;
|
|
121
122
|
// ensure the context menu is not displayed outside of the main area
|
|
122
|
-
|
|
123
|
+
const menuRect = node.getBoundingClientRect();
|
|
124
|
+
if (menuRect.top < topPanelHeight) {
|
|
123
125
|
node.style.top = `${topPanelHeight}px`;
|
|
124
126
|
node.style.maxHeight = `calc(${node.style.maxHeight} - ${topPanelHeight}px)`;
|
|
125
127
|
}
|
|
@@ -30,7 +30,7 @@ import { WindowTitleService } from '../../browser/window/window-title-service';
|
|
|
30
30
|
|
|
31
31
|
import '../../../src/electron-browser/menu/electron-menu-style.css';
|
|
32
32
|
import { ThemeService } from '../../browser/theming';
|
|
33
|
-
import { ThemeChangeEvent } from '../../common/theme';
|
|
33
|
+
import { getThemeMode, ThemeChangeEvent } from '../../common/theme';
|
|
34
34
|
|
|
35
35
|
export namespace ElectronCommands {
|
|
36
36
|
export const TOGGLE_DEVELOPER_TOOLS = Command.toDefaultLocalizedCommand({
|
|
@@ -185,16 +185,16 @@ export class ElectronMenuContribution extends BrowserMenuBarContribution impleme
|
|
|
185
185
|
/**
|
|
186
186
|
* Hides the `theia-top-panel` depending on the selected `titleBarStyle`.
|
|
187
187
|
* The `theia-top-panel` is used as the container of the main, application menu-bar for the
|
|
188
|
-
* browser. Native Electron has
|
|
188
|
+
* browser. Native Electron has its own.
|
|
189
189
|
* By default, this method is called on application `onStart`.
|
|
190
190
|
*/
|
|
191
191
|
protected hideTopPanel(app: FrontendApplication): void {
|
|
192
192
|
const itr = app.shell.children();
|
|
193
193
|
let child = itr.next();
|
|
194
|
-
while (child) {
|
|
194
|
+
while (!child.done) {
|
|
195
195
|
// Top panel for the menu contribution is not required for native Electron title bar.
|
|
196
|
-
if (child.id === 'theia-top-panel') {
|
|
197
|
-
child.setHidden(this.titleBarStyle !== 'custom');
|
|
196
|
+
if (child.value.id === 'theia-top-panel') {
|
|
197
|
+
child.value.setHidden(this.titleBarStyle !== 'custom');
|
|
198
198
|
break;
|
|
199
199
|
} else {
|
|
200
200
|
child = itr.next();
|
|
@@ -424,6 +424,7 @@ export class ElectronMenuContribution extends BrowserMenuBarContribution impleme
|
|
|
424
424
|
protected handleThemeChange(e: ThemeChangeEvent): void {
|
|
425
425
|
const backgroundColor = window.getComputedStyle(document.body).backgroundColor;
|
|
426
426
|
window.electronTheiaCore.setBackgroundColor(backgroundColor);
|
|
427
|
+
window.electronTheiaCore.setTheme(getThemeMode(e.newTheme.type));
|
|
427
428
|
}
|
|
428
429
|
|
|
429
430
|
}
|
|
@@ -27,7 +27,7 @@ import {
|
|
|
27
27
|
CHANNEL_REQUEST_RELOAD, CHANNEL_APP_STATE_CHANGED, CHANNEL_SHOW_ITEM_IN_FOLDER, CHANNEL_READ_CLIPBOARD, CHANNEL_WRITE_CLIPBOARD,
|
|
28
28
|
CHANNEL_KEYBOARD_LAYOUT_CHANGED, CHANNEL_IPC_CONNECTION, InternalMenuDto, CHANNEL_REQUEST_SECONDARY_CLOSE, CHANNEL_SET_BACKGROUND_COLOR,
|
|
29
29
|
CHANNEL_WC_METADATA, CHANNEL_ABOUT_TO_CLOSE, CHANNEL_OPEN_WITH_SYSTEM_APP,
|
|
30
|
-
CHANNEL_OPEN_URL
|
|
30
|
+
CHANNEL_OPEN_URL, CHANNEL_SET_THEME
|
|
31
31
|
} from '../electron-common/electron-api';
|
|
32
32
|
|
|
33
33
|
// eslint-disable-next-line import/no-extraneous-dependencies
|
|
@@ -120,6 +120,9 @@ const api: TheiaCoreAPI = {
|
|
|
120
120
|
setBackgroundColor: function (backgroundColor): void {
|
|
121
121
|
ipcRenderer.send(CHANNEL_SET_BACKGROUND_COLOR, backgroundColor);
|
|
122
122
|
},
|
|
123
|
+
setTheme: function (theme): void {
|
|
124
|
+
ipcRenderer.send(CHANNEL_SET_THEME, theme);
|
|
125
|
+
},
|
|
123
126
|
minimize: function (): void {
|
|
124
127
|
ipcRenderer.send(CHANNEL_MINIMIZE);
|
|
125
128
|
},
|
|
@@ -160,7 +163,7 @@ const api: TheiaCoreAPI = {
|
|
|
160
163
|
return Disposable.create(() => ipcRenderer.off(CHANNEL_ON_WINDOW_EVENT, h));
|
|
161
164
|
},
|
|
162
165
|
setCloseRequestHandler: function (handler: (stopReason: StopReason) => Promise<boolean>): void {
|
|
163
|
-
ipcRenderer.on(CHANNEL_REQUEST_CLOSE, async (event, stopReason, confirmChannel, cancelChannel) => {
|
|
166
|
+
ipcRenderer.on(CHANNEL_REQUEST_CLOSE, async (event: Electron.IpcRendererEvent, stopReason: StopReason, confirmChannel: string, cancelChannel: string) => {
|
|
164
167
|
try {
|
|
165
168
|
if (await handler(stopReason)) {
|
|
166
169
|
event.sender.send(confirmChannel);
|
|
@@ -249,7 +252,7 @@ function createDisposableListener(channel: string, handler: (event: any, ...args
|
|
|
249
252
|
|
|
250
253
|
export function preload(): void {
|
|
251
254
|
console.log('exposing theia core electron api');
|
|
252
|
-
ipcRenderer.on(CHANNEL_INVOKE_MENU, (_, menuId: number, handlerId: number) => {
|
|
255
|
+
ipcRenderer.on(CHANNEL_INVOKE_MENU, (_: Electron.IpcRendererEvent, menuId: number, handlerId: number) => {
|
|
253
256
|
const map = commandHandlers.get(menuId);
|
|
254
257
|
if (map) {
|
|
255
258
|
const handler = map.get(handlerId);
|
|
@@ -17,6 +17,7 @@
|
|
|
17
17
|
import { NativeKeyboardLayout } from '../common/keyboard/keyboard-layout-provider';
|
|
18
18
|
import { Disposable } from '../common';
|
|
19
19
|
import { FrontendApplicationState, StopReason } from '../common/frontend-application-state';
|
|
20
|
+
import { ThemeMode } from '../common/theme';
|
|
20
21
|
|
|
21
22
|
export type MenuRole = ('undo' | 'redo' | 'cut' | 'copy' | 'paste' | 'selectAll' | 'about' | 'services' | 'hide' | 'hideOthers' | 'unhide' | 'quit');
|
|
22
23
|
|
|
@@ -65,6 +66,7 @@ export interface TheiaCoreAPI {
|
|
|
65
66
|
getTitleBarStyleAtStartup(): Promise<string>;
|
|
66
67
|
setTitleBarStyle(style: string): void;
|
|
67
68
|
setBackgroundColor(backgroundColor: string): void;
|
|
69
|
+
setTheme(theme: ThemeMode): void;
|
|
68
70
|
minimize(): void;
|
|
69
71
|
isMaximized(): boolean; // TODO: this should really be async, since it blocks the renderer process
|
|
70
72
|
maximize(): void;
|
|
@@ -125,6 +127,7 @@ export const CHANNEL_ATTACH_SECURITY_TOKEN = 'AttachSecurityToken';
|
|
|
125
127
|
export const CHANNEL_GET_TITLE_STYLE_AT_STARTUP = 'GetTitleStyleAtStartup';
|
|
126
128
|
export const CHANNEL_SET_TITLE_STYLE = 'SetTitleStyle';
|
|
127
129
|
export const CHANNEL_SET_BACKGROUND_COLOR = 'SetBackgroundColor';
|
|
130
|
+
export const CHANNEL_SET_THEME = 'SetTheme';
|
|
128
131
|
export const CHANNEL_CLOSE = 'Close';
|
|
129
132
|
export const CHANNEL_MINIMIZE = 'Minimize';
|
|
130
133
|
export const CHANNEL_MAXIMIZE = 'Maximize';
|
|
@@ -55,7 +55,8 @@ import {
|
|
|
55
55
|
CHANNEL_WC_METADATA,
|
|
56
56
|
CHANNEL_ABOUT_TO_CLOSE,
|
|
57
57
|
CHANNEL_OPEN_WITH_SYSTEM_APP,
|
|
58
|
-
CHANNEL_OPEN_URL
|
|
58
|
+
CHANNEL_OPEN_URL,
|
|
59
|
+
CHANNEL_SET_THEME
|
|
59
60
|
} from '../electron-common/electron-api';
|
|
60
61
|
import { ElectronMainApplication, ElectronMainApplicationContribution } from './electron-main-application';
|
|
61
62
|
import { Disposable, DisposableCollection, isOSX, MaybePromise } from '../common';
|
|
@@ -176,6 +177,8 @@ export class TheiaMainApi implements ElectronMainApplicationContribution {
|
|
|
176
177
|
|
|
177
178
|
ipcMain.on(CHANNEL_SET_BACKGROUND_COLOR, (event, backgroundColor) => application.setBackgroundColor(event.sender, backgroundColor));
|
|
178
179
|
|
|
180
|
+
ipcMain.on(CHANNEL_SET_THEME, (event, theme) => application.setTheme(theme));
|
|
181
|
+
|
|
179
182
|
ipcMain.on(CHANNEL_MINIMIZE, event => {
|
|
180
183
|
BrowserWindow.fromWebContents(event.sender)?.minimize();
|
|
181
184
|
});
|
|
@@ -42,6 +42,7 @@ import { createDisposableListener } from './event-utils';
|
|
|
42
42
|
import { TheiaRendererAPI } from './electron-api-main';
|
|
43
43
|
import { StopReason } from '../common/frontend-application-state';
|
|
44
44
|
import { dynamicRequire } from '../node/dynamic-require';
|
|
45
|
+
import { ThemeMode } from '../common/theme';
|
|
45
46
|
|
|
46
47
|
export { ElectronMainApplicationGlobals };
|
|
47
48
|
|
|
@@ -277,6 +278,10 @@ export class ElectronMainApplication {
|
|
|
277
278
|
this.saveState(webContents);
|
|
278
279
|
}
|
|
279
280
|
|
|
281
|
+
public setTheme(theme: ThemeMode): void {
|
|
282
|
+
nativeTheme.themeSource = theme;
|
|
283
|
+
}
|
|
284
|
+
|
|
280
285
|
protected saveState(webContents: Electron.WebContents): void {
|
|
281
286
|
const browserWindow = BrowserWindow.fromWebContents(webContents);
|
|
282
287
|
if (browserWindow) {
|
|
@@ -103,7 +103,7 @@ export class WebsocketFrontendConnectionService implements FrontendConnectionSer
|
|
|
103
103
|
|
|
104
104
|
handleSocketDisconnect(socket: Socket, channel: ReconnectableSocketChannel, frontEndId: string): void {
|
|
105
105
|
socket.on('disconnect', evt => {
|
|
106
|
-
console.info('
|
|
106
|
+
console.info('socket closed');
|
|
107
107
|
channel.disconnect();
|
|
108
108
|
|
|
109
109
|
const timeout = this.frontendConnectionTimeout();
|
|
@@ -183,4 +183,3 @@ class ReconnectableSocketChannel extends AbstractChannel {
|
|
|
183
183
|
return writeBuffer;
|
|
184
184
|
}
|
|
185
185
|
}
|
|
186
|
-
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from '@phosphor/algorithm';
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
module.exports = require('@phosphor/algorithm');
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from '@phosphor/commands';
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
module.exports = require('@phosphor/commands');
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from '@phosphor/coreutils';
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
module.exports = require('@phosphor/coreutils');
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from '@phosphor/domutils';
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
module.exports = require('@phosphor/domutils');
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from '@phosphor/dragdrop';
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
module.exports = require('@phosphor/dragdrop');
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from '@phosphor/messaging';
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
module.exports = require('@phosphor/messaging');
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from '@phosphor/properties';
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
module.exports = require('@phosphor/properties');
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from '@phosphor/signaling';
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
module.exports = require('@phosphor/signaling');
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from '@phosphor/virtualdom';
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
module.exports = require('@phosphor/virtualdom');
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from '@phosphor/widgets';
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
module.exports = require('@phosphor/widgets');
|