Repository navigation
fix(linux): keep dropped tabs in place, read CSV previews off the GTK thread and drop Relm4 - #4056
Merged
Merged
Conversation
… thread and drop Relm4
datlechin
enabled auto-merge (squash)
November 5, 2026 10:24
…rds-fixes # Conflicts: # linux/crates/app/src/ui/import_dialog.rs # linux/crates/app/src/ui/workspace/import_ledger.rs # linux/docs/decisions/README.md
…rds-fixes # Conflicts: # linux/docs/decisions/README.md
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
create-windowreturns the tab's own view, since libadwaita has no way to decline the new window it asks for. A tab dropped on another window's bar goes back to the place it left, not the end. A tab whose session closed while it was out closes instead of staying orphaned. The session's teardown no longer asks its view to close a page it does not hold. The ownership rule is instate-management.md, Tabs.AdwDialogsubclass with a composite template. The preview is read on the blocking pool, with aRequestSequencerticket per read: a replaced or closed read is skipped or dropped, and the dialog shows "Reading the file…" until the current read lands. The summary pluralizes fields and rows separately.AdwDialogsubclass onGtkListView, with oneSavedQueryObjectper query, a filter model and a section per connection. A search runs on the blocking pool over a lowercase snapshot and filters by id; rows and items are never rebuilt.relm4_bridge, the relm4DeliverInputimpls and clippy bans, the export dialog's re-exports, and the docs. ADR 0003 is superseded by 0012.ngettext/ngettext_ftake the full count (u32,u64orusize) throughg_dngettext. A count past unsigned long keeps its last six digits, as the gettext manual says.plural_countand 35u32::try_from(n).unwrap_or(u32::MAX)call sites are gone.text_view_teardown::releasedrops the input method and the buffer when the editor, source dialog, change review, structure SQL, row detail value or assistant composer closes. Measured: with GTK 4.24.1 and ibus-gtk4 1.5.34, every text view stayed alive until its IM module wasgtk-im-context-none. GtkSourceView 5.18 keeps a view with line numbers either way.workspace::respondanswers with the close response when the window is destroyed with the alert open. libadwaita emits neitherresponsenorclosedthen, so the future never resolved.docs/toolkit-workarounds.md: one entry per toolkit workaround (tab decline, IBus fix(plugins): restore the build after MemberImportVisibility met two new files #2968, GtkSourceView !438,AdwAlertDialog.choose, gtk-rsColumnViewCellfocusable, ColumnViewCell::set_focusable and is_focusable never compile: gated on not(v4_12) gtk-rs/gtk4-rs#2393). Each has the defect, the versions, the test and when it goes. The code links to it.storage.mdno longer promises a Secret Service fallback without the Secret portal, which oo7 0.6 does not do. The crash hook comment,error-handling.mdandtroubleshooting.mdno longer say stderr always reaches the journal or that every crash leaves a report. ADR 0037 corrects ADR 0005's sqlx fix(databend): read statements as the server does in Safe Mode #4044/feat(account): TablePro accounts replace license keys on macOS (M16) #4045 watch condition.Test plan
tablepro:i18nquantity tests, CSV dialog tests, Saved Queries tests, text view release tests, an alert whose window is destroyed.tablepro-linux-platform: a missing Secret portal (PortalNotFound) maps toPortalUnavailable.Screenshots
CSV Import looks as before; its preview now reads off the GTK thread.