diff --git a/linux/CHANGELOG.md b/linux/CHANGELOG.md index 0cda091..0af7d88 100644 --- a/linux/CHANGELOG.md +++ b/linux/CHANGELOG.md @@ -9,6 +9,19 @@ The version is defined in [`blitztext/__init__.py`](blitztext/__init__.py). ## [Unreleased] +## [2.03.35] - 2026-06-10 + +### Fixed +- **Settings pages no longer widen the dialog.** `_switch_row` description + labels had `set_line_wrap(True)` but no `set_max_width_chars`, so GTK + computed their natural width as the full un-wrapped text (87 chars × ~8 px + = ~700 px). With `NEVER` horizontal policy on the page `ScrolledWindow`, + that propagated directly to the dialog width, making Keyboard, Wakeword, + STT Engines, and Benchmark pages ~1000–1360 px wide. Fixed by adding + `set_max_width_chars(50)` (≈ 375 px) to description labels, and changed the + page `ScrolledWindow` horizontal policy from `NEVER` to `AUTOMATIC` as a + safety net for any other wide widget. + ## [2.03.34] - 2026-06-10 ### Fixed diff --git a/linux/blitztext/__init__.py b/linux/blitztext/__init__.py index 625e9aa..0cef831 100644 --- a/linux/blitztext/__init__.py +++ b/linux/blitztext/__init__.py @@ -6,4 +6,4 @@ counterpart to the macOS Blitztext menu bar app: it runs natively on the host (not in a container) so it can type into any application via xdotool. """ -__version__ = "2.03.34" +__version__ = "2.03.35" diff --git a/linux/blitztext/gtksettings.py b/linux/blitztext/gtksettings.py index f2b2acc..ea98dc4 100644 --- a/linux/blitztext/gtksettings.py +++ b/linux/blitztext/gtksettings.py @@ -267,6 +267,7 @@ def _switch_row(parent, label: str, switch: Gtk.Switch, description: str = "", desc = Gtk.Label(label=description, xalign=0.0) desc.set_line_wrap(True) + desc.set_max_width_chars(50) # bound natural width so NEVER-policy SW doesn't grow the dialog desc.get_style_context().add_class("dim-label") row.pack_start(desc, True, True, 0) @@ -882,7 +883,7 @@ class SettingsDialog: def _stack_page(title: str) -> Gtk.Box: outer = Gtk.Box(orientation=Gtk.Orientation.VERTICAL) sw = Gtk.ScrolledWindow() - sw.set_policy(Gtk.PolicyType.NEVER, Gtk.PolicyType.ALWAYS) + sw.set_policy(Gtk.PolicyType.AUTOMATIC, Gtk.PolicyType.ALWAYS) sw.set_overlay_scrolling(False) outer.pack_start(sw, True, True, 0) inner = Gtk.Box(orientation=Gtk.Orientation.VERTICAL, spacing=2)