diff --git a/arduino-ide-extension/src/browser/arduino-ide-frontend-module.ts b/arduino-ide-extension/src/browser/arduino-ide-frontend-module.ts index d52969253..8638c2618 100644 --- a/arduino-ide-extension/src/browser/arduino-ide-frontend-module.ts +++ b/arduino-ide-extension/src/browser/arduino-ide-frontend-module.ts @@ -296,6 +296,8 @@ import { SurveyNotificationService, SurveyNotificationServicePath, } from '../common/protocol/survey-service'; +import { WindowContribution } from './theia/core/window-contribution'; +import { WindowContribution as TheiaWindowContribution } from '@theia/core/lib/browser/window-contribution'; MonacoThemingService.register({ id: 'arduino-theme', @@ -605,6 +607,10 @@ export default new ContainerModule((bind, unbind, isBound, rebind) => { bind(OutputToolbarContribution).toSelf().inSingletonScope(); rebind(TheiaOutputToolbarContribution).toService(OutputToolbarContribution); + // To remove `New Window` from the `File` menu + bind(WindowContribution).toSelf().inSingletonScope(); + rebind(TheiaWindowContribution).toService(WindowContribution); + bind(ArduinoDaemon) .toDynamicValue((context) => WebSocketConnectionProvider.createProxy( diff --git a/arduino-ide-extension/src/browser/theia/core/common-frontend-contribution.ts b/arduino-ide-extension/src/browser/theia/core/common-frontend-contribution.ts index 8a0d30b5d..c92d4972f 100644 --- a/arduino-ide-extension/src/browser/theia/core/common-frontend-contribution.ts +++ b/arduino-ide-extension/src/browser/theia/core/common-frontend-contribution.ts @@ -21,6 +21,7 @@ export class CommonFrontendContribution extends TheiaCommonFrontendContribution CommonCommands.TOGGLE_MAXIMIZED, CommonCommands.PIN_TAB, CommonCommands.UNPIN_TAB, + CommonCommands.NEW_FILE, ]) { commandRegistry.unregisterCommand(command); } diff --git a/arduino-ide-extension/src/browser/theia/core/window-contribution.ts b/arduino-ide-extension/src/browser/theia/core/window-contribution.ts new file mode 100644 index 000000000..4c2b6c8d6 --- /dev/null +++ b/arduino-ide-extension/src/browser/theia/core/window-contribution.ts @@ -0,0 +1,15 @@ +import { injectable } from '@theia/core/shared/inversify'; +import { WindowContribution as TheiaWindowContribution } from '@theia/core/lib/browser/window-contribution'; + +@injectable() +export class WindowContribution extends TheiaWindowContribution { + override registerCommands(): void { + // NOOP + } + override registerKeybindings(): void { + // NOO + } + override registerMenus(): void { + // NOOP; + } +}