eeschema copy/paste fix: wx UTF-8 text dataobj (c1f1477) + regression specs
Cmd+C/Cmd+V in the wasm eeschema pasted a stray "(" SCH_TEXT — the stroke
font renders it as a small blue arc — instead of the copied symbol, and any
copy reached navigator.clipboard as a single character. Root cause and fix
live in wxwidgets (90bbad29822: UTF-8 wxDF_UNICODETEXT + the port's missing
GetAllFormats key function; c1f14775ba3: empty-read cache fallback + no
browser pre-clear on copy). This bump carries them plus the guards:
- tests/kicad/eeschema-copy-paste.spec.ts: chromium asserts the full
multi-form (lib_symbols …)(symbol …) blob reaches navigator.clipboard;
both engines assert copy → paste → save yields a second symbol and no
stray (text …) item (firefox exercises the m_textCache fallback path).
The kicad-chromium project now grants clipboard-read/write. NB the kicad
projects' device UAs claim Windows, so specs must send plain Control+…
— ControlOrMeta resolves to Meta on a mac host, which the "Windows" app
ignores, and the bare key fires eeschema hotkeys instead.
- tests/e2e/textdataobj.spec.ts + Makefile.wasm target `textdataobj`:
drives the wx-repo harness app (wxwidgets/tests/wasm/textdataobj_test.cpp)
and asserts the SUITE-DONE failure counters plus the full-string browser
round-trip, sentinel-seeded so a failed write cannot read as stale success.
- tests/e2e/clipboard.spec.ts: the Copy test now asserts the full input
text reaches the clipboard (previously truncated to "S").
Verified locally: all specs red on the old wx, green after; wx-chromium
320/320, kicad-chromium 121/121 (collab specs env-gated).
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
parent
fcad12d251
commit
6034a0550d
6 changed files with 324 additions and 2 deletions
|
|
@ -170,6 +170,7 @@ all: minimal_test.html \
|
|||
$(S)/scrollbar/scrollbar_test.html \
|
||||
$(S)/notebook/notebook_test.html \
|
||||
$(S)/clipboard/clipboard_test.html \
|
||||
$(S)/textdataobj/textdataobj_test.html \
|
||||
$(S)/filedialog/filedialog_test.html \
|
||||
$(S)/layout/layout_test.html \
|
||||
$(S)/aui/aui_test.html \
|
||||
|
|
@ -321,6 +322,18 @@ $(S)/clipboard/clipboard_test.o: $(S)/clipboard/clipboard_test.cpp
|
|||
$(S)/clipboard/clipboard_test.html: $(S)/clipboard/clipboard_test.o $(WX_CORE_LIB) $(JS_FILES)
|
||||
$(CXX) $< $(LDFLAGS_NOGL) --pre-js $(JS) --shell-file $(HTML) -o $@
|
||||
|
||||
# wxTextDataObject encoding test (no GL). The source lives in the wxWidgets
|
||||
# repo — the regression under test is a wx bug (wxNEEDS_UTF8_FOR_TEXT_DATAOBJ
|
||||
# on the wasm port), so the test case travels with it.
|
||||
WX_TESTS_WASM_DIR = ../../wxwidgets/tests/wasm
|
||||
|
||||
$(S)/textdataobj/textdataobj_test.o: $(WX_TESTS_WASM_DIR)/textdataobj_test.cpp
|
||||
@mkdir -p $(@D)
|
||||
$(CXX) -c $(CXXFLAGS) $< -o $@
|
||||
|
||||
$(S)/textdataobj/textdataobj_test.html: $(S)/textdataobj/textdataobj_test.o $(WX_CORE_LIB) $(JS_FILES)
|
||||
$(CXX) $< $(LDFLAGS_NOGL) --pre-js $(JS) --shell-file $(HTML) -o $@
|
||||
|
||||
# FileDialog test (no GL)
|
||||
$(S)/filedialog/filedialog_test.o: $(S)/filedialog/filedialog_test.cpp
|
||||
$(CXX) -c $(CXXFLAGS) $< -o $@
|
||||
|
|
@ -776,6 +789,7 @@ contextmenu: $(S)/contextmenu/contextmenu_test.html
|
|||
scrollbar: $(S)/scrollbar/scrollbar_test.html
|
||||
notebook: $(S)/notebook/notebook_test.html
|
||||
clipboard: $(S)/clipboard/clipboard_test.html
|
||||
textdataobj: $(S)/textdataobj/textdataobj_test.html
|
||||
filedialog: $(S)/filedialog/filedialog_test.html
|
||||
layout: $(S)/layout/layout_test.html
|
||||
aui: $(S)/aui/aui_test.html
|
||||
|
|
@ -850,7 +864,7 @@ clean:
|
|||
rm -f $(S)/*/*_test*.html $(S)/*/*_test*.js $(S)/*/*_test*.wasm
|
||||
rm -f $(S)/*/*_repro*.html $(S)/*/*_repro*.js $(S)/*/*_repro*.wasm
|
||||
|
||||
.PHONY: all clean menu contextmenu scrollbar clipboard filedialog layout aui toolbar grid dialog timer tree dataview htmlwin stc print dnd propgrid pickers collapsible listctrl infobar dataviewvirtual auinotebook wizard gridedit calendar gridrenderers printpreview bitmapbuttons specialized validators ownerdrawn popup xml wasmedge fontenum textdecor bitmask regions maximize earlysize selectheight uipolish threadpool logerror retinascale coroutine coroutine-nested asyncify-races notebook radiogroups collapse-relayout
|
||||
.PHONY: all clean menu contextmenu scrollbar clipboard textdataobj filedialog layout aui toolbar grid dialog timer tree dataview htmlwin stc print dnd propgrid pickers collapsible listctrl infobar dataviewvirtual auinotebook wizard gridedit calendar gridrenderers printpreview bitmapbuttons specialized validators ownerdrawn popup xml wasmedge fontenum textdecor bitmask regions maximize earlysize selectheight uipolish threadpool logerror retinascale coroutine coroutine-nested asyncify-races notebook radiogroups collapse-relayout
|
||||
|
||||
# === Coroutine pthread variant — historically reproduced the KiCad coroutine x pthreads crash ===
|
||||
# Same modal-free harness as `coroutine`, but compiled/linked with pthreads to match
|
||||
|
|
|
|||
Loading…
Reference in a new issue