From 08bd1ce8f969645caf7c9beaad28fc898c40aae0 Mon Sep 17 00:00:00 2001 From: Michele Ceriotti Date: Tue, 19 May 2026 22:04:38 +0200 Subject: [PATCH 1/4] Add a fix to avoid jupyter-lab eating up Shift+L when editing in the code widget --- js/widget.js | 24 +++++++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) diff --git a/js/widget.js b/js/widget.js index 0c666c1..b9e7e85 100644 --- a/js/widget.js +++ b/js/widget.js @@ -22,6 +22,21 @@ function generateRandomString(length) { return result.substring(0, length); } +// Stop keydown events from bubbling out of the editor's DOM. Without this, +// when the widget is hosted inside a JupyterLab notebook output area, +// global keybindings like Shift+L are caught by JupyterLab's command-mode +// keybindings on the surrounding cell — Lumino calls preventDefault(), which +// in turn suppresses the subsequent `input` event that CodeMirror 6 relies on +// to insert characters, so the keystroke silently disappears. +// stopPropagation() only blocks ancestors; CodeMirror's own handlers on the +// same element still run, so editor behavior is unchanged. +const stopKeydownPropagation = EditorView.domEventHandlers({ + keydown: (event) => { + event.stopPropagation(); + return false; + } +}); + export default{ initialize({ model }) { @@ -133,7 +148,8 @@ export default{ var myDocstringCodeMirror; const mySignatureCodeMirror = editorFromTextArea(document.getElementById(theTextareaId + '-signature'), [EditorState.readOnly.of(true),lineNumbers(),indentUnit.of(" ") -, +, + stopKeydownPropagation, history(), drawSelection(), dropCursor(), @@ -165,7 +181,7 @@ export default{ if (model.get('docstring') !== '') { myDocstringCodeMirror = editorFromTextArea(document.getElementById(theTextareaId + '-docstring'), [lineNumbers(), EditorState.readOnly.of(true), EditorView.editorAttributes.of({class:"widget-code-input-docstring"}), gutter({class:"forced-indent"}), guttercomp.of(lineNumbers()), - + stopKeydownPropagation, history(), drawSelection(), dropCursor(), @@ -204,7 +220,8 @@ export default{ - var myBodyCodeMirror = editorFromTextArea(document.getElementById(theTextareaId + '-body'), [guttercomp.of(lineNumbers()),gutter({class:"forced-indent"}), bodyUpdateListenerCompartment.of([]), + var myBodyCodeMirror = editorFromTextArea(document.getElementById(theTextareaId + '-body'), [guttercomp.of(lineNumbers()),gutter({class:"forced-indent"}), bodyUpdateListenerCompartment.of([]), + stopKeydownPropagation, history(), drawSelection(), dropCursor(), @@ -363,6 +380,7 @@ function signatureValueChanged() { EditorState.readOnly.of(true), EditorView.editorAttributes.of({ class: 'widget-code-input-docstring' }), gutter({ class: 'forced-indent' }),guttercomp.of(lineNumbers()), + stopKeydownPropagation, syntaxHighlighting(defaultHighlightStyle, { fallback: true }), python(), indentUnit.of(' '), From 60b032250ca99caf727969d892ec45c4431c3ead Mon Sep 17 00:00:00 2001 From: Michele Ceriotti Date: Thu, 21 May 2026 08:10:34 +0200 Subject: [PATCH 2/4] Update workflow to make screenshots available --- .github/workflows/screenshot-comparison.yml | 37 ++++++++++++++++++++- test/test_figures.py | 20 ++++++++--- 2 files changed, 51 insertions(+), 6 deletions(-) diff --git a/.github/workflows/screenshot-comparison.yml b/.github/workflows/screenshot-comparison.yml index 2517515..bf78a5e 100644 --- a/.github/workflows/screenshot-comparison.yml +++ b/.github/workflows/screenshot-comparison.yml @@ -12,6 +12,9 @@ jobs: check-screenshot: name: Check Screenshot runs-on: ubuntu-latest + permissions: + contents: read + pull-requests: write # needed to post the comment on screenshot mismatch steps: - name: Checkout uses: actions/checkout@v4 @@ -41,10 +44,42 @@ jobs: pip install --upgrade Pillow - uses: nanasess/setup-chromedriver@master - - run: | + - name: Run screenshot test + run: | export DISPLAY=:99 chromedriver --url-base=/wd/hub & sudo Xvfb -ac :99 -screen 0 1280x1024x24 > /dev/null 2>&1 & # optional python3 $GITHUB_WORKSPACE/test/test.py python3 $GITHUB_WORKSPACE/test/test_figures.py + - name: Upload screenshots + if: always() + uses: actions/upload-artifact@v4 + with: + name: screenshot-comparison + path: | + widget-01.png + widget-02.png + comparison.png + test/widget-sample.png + if-no-files-found: ignore + + - name: Comment on PR with refresh instructions + if: failure() && github.event_name == 'pull_request' + uses: actions/github-script@v7 + with: + script: | + const url = `https://github.com/${context.repo.owner}/${context.repo.repo}/actions/runs/${context.runId}`; + github.rest.issues.createComment({ + owner: context.repo.owner, + repo: context.repo.repo, + issue_number: context.issue.number, + body: [ + `📷 **Screenshot comparison failed.**`, + ``, + `Download the **screenshot-comparison** artifact from [this run](${url}) and open \`comparison.png\` — it shows **reference | new | diff** side by side.`, + ``, + `If the change is acceptable, replace \`test/widget-sample.png\` with the new \`widget-01.png\` from the artifact and push the update.`, + ].join('\n'), + }); + diff --git a/test/test_figures.py b/test/test_figures.py index b1e208d..2811ec7 100644 --- a/test/test_figures.py +++ b/test/test_figures.py @@ -1,12 +1,22 @@ from PIL import Image, ImageChops, ImageStat -image1 = Image.open('widget-01.png') -image2 = Image.open('test/widget-sample.png') +new = Image.open('widget-01.png') +reference = Image.open('test/widget-sample.png') -diff = ImageChops.difference(image1, image2) +diff = ImageChops.difference(new, reference) stat = ImageStat.Stat(diff) if sum(stat.mean) == 0: - print('images are the same') + print('images are the same') else: - raise Exception("The result is NOT the same as expected. Please check matplotlib version.") + w = max(new.width, reference.width, diff.width) + h = max(new.height, reference.height, diff.height) + composite = Image.new('RGB', (w * 3, h), 'white') + composite.paste(reference, (0, 0)) # left: reference + composite.paste(new, (w, 0)) # middle: new from this run + composite.paste(diff, (w * 2, 0)) # right: pixel-wise diff + composite.save('comparison.png') + print(f"Screenshots differ. Mean per-channel diff: {stat.mean}") + print("Inspect the 'screenshot-comparison' workflow artifact.") + print("If the change is acceptable, replace test/widget-sample.png with widget-01.png and commit.") + raise SystemExit(1) From 5e1b5b434977793f91973277f8a47b95045b1201 Mon Sep 17 00:00:00 2001 From: Michele Ceriotti Date: Thu, 21 May 2026 09:25:10 +0200 Subject: [PATCH 3/4] Update the reference widget plot --- test/widget-sample.png | Bin 28886 -> 29051 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/test/widget-sample.png b/test/widget-sample.png index c3a1f90920ca1c11873e114bba2033ab8466e9d0..d4d1ca9ecfed000de4066e0c58dd22cd41bcd555 100644 GIT binary patch literal 29051 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 From beab9bd08f32b86b7b547fad47940289ef266849 Mon Sep 17 00:00:00 2001 From: Michele Ceriotti Date: Thu, 21 May 2026 09:38:35 +0200 Subject: [PATCH 4/4] Remove unused screenshot --- .github/workflows/screenshot-comparison.yml | 1 - test/test.py | 13 ------------- 2 files changed, 14 deletions(-) diff --git a/.github/workflows/screenshot-comparison.yml b/.github/workflows/screenshot-comparison.yml index bf78a5e..043071e 100644 --- a/.github/workflows/screenshot-comparison.yml +++ b/.github/workflows/screenshot-comparison.yml @@ -59,7 +59,6 @@ jobs: name: screenshot-comparison path: | widget-01.png - widget-02.png comparison.png test/widget-sample.png if-no-files-found: ignore diff --git a/test/test.py b/test/test.py index e4e2496..253c967 100644 --- a/test/test.py +++ b/test/test.py @@ -1,16 +1,8 @@ # Generated by Selenium IDE -import pytest import time -import json import os from selenium import webdriver from selenium.webdriver.chrome.options import Options -from selenium.webdriver.common.by import By -from selenium.webdriver.common.action_chains import ActionChains -from selenium.webdriver.support import expected_conditions -from selenium.webdriver.support.wait import WebDriverWait -from selenium.webdriver.common.keys import Keys -from selenium.webdriver.common.desired_capabilities import DesiredCapabilities class test_widget(): def setup_method(self, method): @@ -30,11 +22,6 @@ def download_widget_image(self): time.sleep(3) self.driver.save_screenshot("widget-01.png") - self.driver.find_element(By.CLASS_NAME, 'widget-code-input-signature').click() - self.driver.find_element(By.TAG_NAME, 'body').send_keys(Keys.END) - time.sleep(3) - self.driver.save_screenshot("widget-02.png") - test = test_widget() test.setup_method('Chrome') test.download_widget_image()