Suppress the webview's default right-click menu

Reload/Inspect Element no longer appear on uncontrolled right-clicks
in any window; text fields keep the system text menu.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
Jokin
2026-07-13 23:30:23 +02:00
co-authored by Claude Fable 5
parent ab59c785b5
commit 14b92b33a4
3 changed files with 30 additions and 4 deletions
+10 -2
View File
@@ -10,7 +10,7 @@ import {
viewChild,
} from '@angular/core';
import { NgIcon } from '@ng-icons/core';
import { EDITOR_CONTEXT, IS_MAC_CHROME } from '../platform';
import { blockNativeContextMenu, EDITOR_CONTEXT, IS_MAC_CHROME } from '../platform';
import { RpcService } from '../rpc.service';
import { SettingsService } from '../settings.service';
import { ToastService } from '../toast.service';
@@ -31,7 +31,11 @@ const DRAFT_DEBOUNCE_MS = 400;
selector: 'app-root',
imports: [NgIcon, Toasts],
templateUrl: './editor-window.html',
host: { '(window:keydown)': 'onKeydown($event)', '(window:blur)': 'flushDraft()' },
host: {
'(window:keydown)': 'onKeydown($event)',
'(window:blur)': 'flushDraft()',
'(window:contextmenu)': 'blockContextMenu($event)',
},
})
export class EditorWindow {
readonly ctx = EDITOR_CONTEXT;
@@ -126,6 +130,10 @@ export class EditorWindow {
queueMicrotask(() => this.box()?.nativeElement.focus());
}
blockContextMenu(event: Event): void {
blockNativeContextMenu(event);
}
onInput(value: string): void {
this.text.set(value);
this.scheduleDraft();