From 84d1916bf1c7a7ff554f6a9c0ad858e41cf8803c Mon Sep 17 00:00:00 2001 From: Marten Richter Date: Sat, 5 Jul 2025 08:20:02 +0000 Subject: [PATCH 1/2] Prevent contextmenu on applets --- packages/applet-view/src/avoutputarea.ts | 3 +++ 1 file changed, 3 insertions(+) diff --git a/packages/applet-view/src/avoutputarea.ts b/packages/applet-view/src/avoutputarea.ts index 9ab19e6..e8cb3e9 100644 --- a/packages/applet-view/src/avoutputarea.ts +++ b/packages/applet-view/src/avoutputarea.ts @@ -205,6 +205,9 @@ export class AppletViewOutputArea extends AccordionPanel { } const app = this.widgets[appIndex] as Panel; const clone = this.cloneCell(cell, cellid); + clone.node.addEventListener('contextmenu', e => { + e.preventDefault(); + }); this.addToObserver(appIndex, clone); app.addWidget(clone); From ddc52e74e48ce17ff179c81a6019d87ed3581ac8 Mon Sep 17 00:00:00 2001 From: Marten Richter Date: Sat, 5 Jul 2025 08:21:00 +0000 Subject: [PATCH 2/2] Fix crash, if model is not present --- packages/interceptor/src/index.ts | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/packages/interceptor/src/index.ts b/packages/interceptor/src/index.ts index 71cf6e1..2360675 100644 --- a/packages/interceptor/src/index.ts +++ b/packages/interceptor/src/index.ts @@ -83,15 +83,15 @@ export class AppletWidgetRegistry implements IAppletWidgetRegistry { } } - getModelId(path: string) { + getModelId(path: string): string | undefined { return this._pathToModelId[path]; } - getModel(path: string) { + getModel(path: string): WidgetModel | undefined { return this._pathToModel[path]; } - getPath(modelId: string) { + getPath(modelId: string): string | undefined { return this._modelIdToPath[modelId]; } @@ -169,6 +169,10 @@ function activateWidgetInterceptor( ) => { // const modelId = wRegistry.getModelId(args.path); const model = wRegistry.getModel(args.path); + if (!model) { + // just skip + return; + } const state = await ( model.constructor as typeof WidgetModel )._deserialize_state(args.state, model.widget_manager);