fix(2.03.33): stable window size between pages, fix benchmark-ww controls clipped
- Stack.set_homogeneous(True) keeps dialog height constant when switching pages - Benchmark WW paned position raised 260→390 so all TTS config, engine checkboxes, wakeword/samples/run fields are visible without scrolling - Both benchmark pages disable their page-level ScrolledWindow so the Paned fills the viewport rather than growing to natural height Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
af34360caa
commit
5cd31c8385
@ -9,6 +9,21 @@ The version is defined in [`blitztext/__init__.py`](blitztext/__init__.py).
|
|||||||
|
|
||||||
## [Unreleased]
|
## [Unreleased]
|
||||||
|
|
||||||
|
## [2.03.33] - 2026-06-10
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
- **Settings window no longer resizes when switching pages.** Added
|
||||||
|
`Gtk.Stack.set_homogeneous(True)` so the dialog always allocates the
|
||||||
|
maximum page height, preventing the window from growing or shrinking
|
||||||
|
as pages are visited.
|
||||||
|
- **Benchmark — Wakeword: "Engines to test" section no longer hidden.**
|
||||||
|
The paned divider position was raised from 260 to 390 px so all TTS
|
||||||
|
config fields, the engine checkboxes, wakeword model selector, sample
|
||||||
|
count, and run button are fully visible without scrolling. Both
|
||||||
|
benchmark pages also disable the page-level `ScrolledWindow` so the
|
||||||
|
paned correctly fills the viewport height rather than expanding
|
||||||
|
past it.
|
||||||
|
|
||||||
## [2.03.32] - 2026-06-10
|
## [2.03.32] - 2026-06-10
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
|
|||||||
@ -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.
|
(not in a container) so it can type into any application via xdotool.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
__version__ = "2.03.32"
|
__version__ = "2.03.33"
|
||||||
|
|||||||
@ -840,6 +840,7 @@ class SettingsDialog:
|
|||||||
# Right stack
|
# Right stack
|
||||||
self._stack = Gtk.Stack()
|
self._stack = Gtk.Stack()
|
||||||
self._stack.set_transition_type(Gtk.StackTransitionType.NONE)
|
self._stack.set_transition_type(Gtk.StackTransitionType.NONE)
|
||||||
|
self._stack.set_homogeneous(True) # keep window size stable across pages
|
||||||
_body.pack_start(self._stack, True, True, 0)
|
_body.pack_start(self._stack, True, True, 0)
|
||||||
|
|
||||||
# Resize-grip strip — sits below the body, above the button row, so
|
# Resize-grip strip — sits below the body, above the button row, so
|
||||||
@ -2496,6 +2497,11 @@ class SettingsDialog:
|
|||||||
self.bench_summary.set_margin_top(4); self.bench_summary.set_margin_bottom(2)
|
self.bench_summary.set_margin_top(4); self.bench_summary.set_margin_bottom(2)
|
||||||
results_box.pack_start(self.bench_summary, False, False, 0)
|
results_box.pack_start(self.bench_summary, False, False, 0)
|
||||||
|
|
||||||
|
# Disable the page-level SW so the paned fills the viewport height
|
||||||
|
_psw = page.get_parent()
|
||||||
|
if isinstance(_psw, Gtk.ScrolledWindow):
|
||||||
|
_psw.set_policy(Gtk.PolicyType.NEVER, Gtk.PolicyType.NEVER)
|
||||||
|
|
||||||
paned = Gtk.Paned(orientation=Gtk.Orientation.VERTICAL)
|
paned = Gtk.Paned(orientation=Gtk.Orientation.VERTICAL)
|
||||||
paned.pack1(sel_sw, resize=True, shrink=False)
|
paned.pack1(sel_sw, resize=True, shrink=False)
|
||||||
paned.pack2(results_box, resize=True, shrink=False)
|
paned.pack2(results_box, resize=True, shrink=False)
|
||||||
@ -2642,6 +2648,11 @@ class SettingsDialog:
|
|||||||
results_box.pack_start(ww_sw, True, True, 0)
|
results_box.pack_start(ww_sw, True, True, 0)
|
||||||
results_box.pack_start(self.wwb_summary, False, False, 0)
|
results_box.pack_start(self.wwb_summary, False, False, 0)
|
||||||
|
|
||||||
|
# Disable the page-level SW so the paned fills the viewport height
|
||||||
|
_psw = page.get_parent()
|
||||||
|
if isinstance(_psw, Gtk.ScrolledWindow):
|
||||||
|
_psw.set_policy(Gtk.PolicyType.NEVER, Gtk.PolicyType.NEVER)
|
||||||
|
|
||||||
# Wrap controls in a ScrolledWindow so the pane can shrink past its
|
# Wrap controls in a ScrolledWindow so the pane can shrink past its
|
||||||
# natural height when the user drags the divider upward.
|
# natural height when the user drags the divider upward.
|
||||||
ctrl_sw = Gtk.ScrolledWindow()
|
ctrl_sw = Gtk.ScrolledWindow()
|
||||||
@ -2650,10 +2661,12 @@ class SettingsDialog:
|
|||||||
ctrl_sw.add(ctrl)
|
ctrl_sw.add(ctrl)
|
||||||
|
|
||||||
# ---- Paned: drag the divider to give more space to the table ----
|
# ---- Paned: drag the divider to give more space to the table ----
|
||||||
|
# Controls need ~390px (URL + key + model + voices + Connect +
|
||||||
|
# engines section + checkboxes + wakeword + samples + run button).
|
||||||
ww_paned = Gtk.Paned(orientation=Gtk.Orientation.VERTICAL)
|
ww_paned = Gtk.Paned(orientation=Gtk.Orientation.VERTICAL)
|
||||||
ww_paned.pack1(ctrl_sw, resize=True, shrink=True)
|
ww_paned.pack1(ctrl_sw, resize=True, shrink=True)
|
||||||
ww_paned.pack2(results_box, resize=True, shrink=False)
|
ww_paned.pack2(results_box, resize=True, shrink=False)
|
||||||
ww_paned.set_position(260)
|
ww_paned.set_position(390)
|
||||||
page.pack_start(ww_paned, True, True, 4)
|
page.pack_start(ww_paned, True, True, 4)
|
||||||
|
|
||||||
def _run_bench(self, _b) -> None:
|
def _run_bench(self, _b) -> None:
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user