Commit Graph
553 Commits
Author SHA1 Message Date
Brandon Thomas d43eefe522 Merge pull request #461 from neilcawse:fix/ribbon-paste 2026-10-12 23:35:19 -04:00
Brandon Thomas 31eb549204 Merge pull request #454 from Dejan-Port:fix-french-header-footer 2026-10-12 23:35:16 -04:00
Brandon Thomas ed971d8f87 Merge pull request #453 from Dejan-Port:i18n-serbian 2026-10-12 23:35:14 -04:00
Brandon Thomas f267530b7c Merge pull request #452 from tydude001:fix/432-filter-list-scroll 2026-10-12 23:35:13 -04:00
Brandon Thomas f4acdcebe5 Merge pull request #450 from SteamSmith:fix/write-file-temp-cleanup 2026-10-12 23:35:12 -04:00
Brandon Thomas dd165335e1 Merge pull request #448 from Dejan-Port:select-inserted-chart 2026-10-12 23:35:11 -04:00
Brandon ThomasandClaude Opus 5.5 811a8a139a Fix-up: rustfmt the area-chart label condition after merging the chart PRs
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 23:33:10 -04:00
Brandon Thomas 2df8dd6392 Merge pull request #618 from MarekSpodBiedry:issue-540 2026-10-12 23:29:58 -04:00
Brandon ThomasandClaude Opus 5.5 4941bf8da0 ROUNDUP keeps #NUM! past the number range; only toward-zero rounding returns 0
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 23:29:56 -04:00
Brandon Thomas 59872eca3c Merge pull request #627 from MarekSpodBiedry:issue-531 (test fix) 2026-10-12 23:23:35 -04:00
Brandon ThomasandClaude Opus 5.5 7ea5cd3975 Test: the helper is new_session so a rebound session variable does not shadow it
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 23:23:33 -04:00
Brandon Thomas e5071f382b Merge pull request #637 from MarekSpodBiedry:issue-518 2026-10-12 23:21:59 -04:00
Brandon Thomas 1fa38e583e Merge pull request #636 from MarekSpodBiedry:issue-519 2026-10-12 23:21:58 -04:00
Brandon Thomas 4d8af67d0e Merge pull request #635 from MarekSpodBiedry:issue-520 2026-10-12 23:21:57 -04:00
Brandon Thomas c3546f0c97 Merge pull request #634 from MarekSpodBiedry:issue-521 2026-10-12 23:21:56 -04:00
Brandon Thomas ff16e979cd Merge pull request #633 from MarekSpodBiedry:issue-522 2026-10-12 23:21:54 -04:00
Brandon Thomas a507761696 Merge pull request #631 from MarekSpodBiedry:issue-524 2026-10-12 23:21:53 -04:00
Brandon Thomas 3794892f28 Merge pull request #628 from MarekSpodBiedry:issue-527 2026-10-12 23:21:52 -04:00
Brandon Thomas 46ba36e896 Merge pull request #627 from MarekSpodBiedry:issue-531 2026-10-12 23:21:51 -04:00
Brandon Thomas 739c5b8545 Merge pull request #626 from MarekSpodBiedry:issue-532 2026-10-12 23:21:50 -04:00
Brandon Thomas 3f5b29a07e Merge pull request #625 from MarekSpodBiedry:issue-533 2026-10-12 23:21:49 -04:00
Brandon Thomas 487f736c8f Merge pull request #624 from MarekSpodBiedry:issue-534 2026-10-12 23:21:47 -04:00
Brandon Thomas b28a92baa4 Merge pull request #623 from MarekSpodBiedry:issue-535 2026-10-12 23:21:46 -04:00
Brandon Thomas f6252418d9 Merge pull request #622 from MarekSpodBiedry:issue-536 2026-10-12 23:21:45 -04:00
Brandon Thomas 8474233335 Merge pull request #621 from MarekSpodBiedry:issue-537 2026-10-12 23:21:44 -04:00
Brandon Thomas c8f249fc97 Merge pull request #620 from MarekSpodBiedry:issue-538 2026-10-12 23:21:42 -04:00
Brandon Thomas 9e3a83464f Merge pull request #619 from MarekSpodBiedry:issue-539 2026-10-12 23:21:41 -04:00
Brandon Thomas 09c719623b Merge pull request #618 from MarekSpodBiedry:issue-540 2026-10-12 23:21:40 -04:00
Brandon Thomas 6de925c1b6 Merge pull request #617 from MarekSpodBiedry:issue-541 2026-10-12 23:21:39 -04:00
Brandon Thomas 2f83a04521 Merge pull request #616 from MarekSpodBiedry:issue-542 2026-10-12 23:21:38 -04:00
Brandon Thomas e447fb8c90 Merge pull request #613 from MarekSpodBiedry:issue-545 2026-10-12 23:21:34 -04:00
Brandon Thomas db4fd82595 Merge pull request #612 from MarekSpodBiedry:issue-546 2026-10-12 23:21:33 -04:00
Brandon Thomas a85638ddd1 Merge pull request #611 from MarekSpodBiedry:issue-547 2026-10-12 23:21:32 -04:00
Brandon Thomas 4164ca557e Merge pull request #609 from MarekSpodBiedry:issue-552 2026-10-12 23:21:30 -04:00
Brandon Thomas 51b1b031d4 Merge pull request #608 from MarekSpodBiedry:issue-554 2026-10-12 23:21:29 -04:00
Brandon Thomas 28c5bf1b06 Merge pull request #607 from MarekSpodBiedry:issue-556 2026-10-12 23:21:28 -04:00
Brandon Thomas cd985b7d49 Merge pull request #606 from MarekSpodBiedry:issue-557 2026-10-12 23:21:27 -04:00
Brandon Thomas 8f99be0f2e Merge pull request #605 from MarekSpodBiedry:issue-558 2026-10-12 23:21:25 -04:00
neilcawse 95012e03b4 UI: a cut's text pastes again once the clipboard has held other text 2026-10-12 21:19:05 -04:00
neilcawse 4d654c5185 UI: Cmd/Ctrl+V doesn't re-paste a pasted cut's clipboard text either 2026-10-12 20:51:39 -04:00
neilcawse fd1ed6649b UI: Paste doesn't re-paste a pasted cut's clipboard text; Paste keytip (H,V,P) pastes the system clipboard 2026-10-12 20:51:39 -04:00
neilcawse cc65915d16 UI: keytip Copy/Cut publish to the system clipboard; ribbon Paste keeps a newer programmatic copy 2026-10-12 20:51:39 -04:00
neilcawseandClaude Opus 5.5 fa1dcd73e2 UI: Paste button and menus paste the system clipboard; freeze regression test (#273)
In 0.5.0 a click anywhere on the Home ribbon's Paste button (label,
icon or dropdown arrow) froze the app for good. home() called
paste.secondary_clicked() inside ctx.data_mut(); after any click egui
answers that with ctx.input(), which takes the context lock the closure
already holds, so the UI thread waited on itself. Sampling the hung
0.5.0 process on macOS shows the main thread parked in
RawRwLock::lock_exclusive_slow under Context::write <- data_mut <-
ribbon::home. #272 moved the query out of the closure; it landed after
the 0.5.0 release, which is the build both reporters used.

No test ever clicked the Paste button itself, which is how this
shipped. The new test clicks it, then opens its menu with a secondary
click and picks Paste Values, on a worker thread with a timeout so a
regression fails instead of hanging the run. With #272 reverted it
fails (egui's debug lock check panics after 10 s); with it, it passes.
The Paste button gets an accessible "Paste" name so the test (and
screen readers) can find it, the same way Pictures and Border presets
are named.

With the freeze gone, the button still did not do what it says: it
pasted GridCraft's own copy only (GridState::system_clipboard was never
assigned), so text copied in another app gave "Nothing to paste." The
ribbon button, its options menu's Paste, the cell and header context
menus and the macOS Edit menu now read the system clipboard through a
new paste_text host service and paste it like Cmd/Ctrl+V does, falling
back to GridCraft's own copy when there is no text (or no service, as
on the web). Asking egui for the clipboard instead (RequestPaste) was
tried and stalled the macOS event loop until the next input event.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 20:51:39 -04:00
skylar taylor-barrick 9fc4108899 Printing: expose native commands through control discovery 2026-10-12 16:50:03 +02:00
MarekSpodBiedry 85c7fc4d6e Zoom dialog: a Magnification choice sets the percentage to store (#521) 2026-10-12 08:39:42 +02:00
MarekSpodBiedry 9be19c98d8 Keep a literal chart category with a comma or semicolon as one point on save (#519) 2026-10-12 08:39:37 +02:00
MarekSpodBiedry 310cade6e5 Formula: print flat operator chains iteratively so deep trees cannot overflow the stack (#527) 2026-10-12 08:38:48 +02:00
MarekSpodBiedry 2ce94fa581 Data Validation dialog opens on the active cell's current rule (#522) 2026-10-12 08:38:44 +02:00
MarekSpodBiedry 91873e03eb Draw data labels on area and stacked area charts (#545) 2026-10-12 08:38:28 +02:00
MarekSpodBiedry dc6f7246a3 Page Setup opens on the sheet's saved margins (#524) 2026-10-12 08:38:09 +02:00