From 58fce0045c56b03bce4a6ab5e25733ff5b84d340 Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner Date: Wed, 5 Feb 2025 17:58:04 -0600 Subject: [PATCH] Fix sidebar resizing for new Urwid API Closes gh-666 --- pudb/debugger.py | 40 ++++++++++++---------------------------- 1 file changed, 12 insertions(+), 28 deletions(-) diff --git a/pudb/debugger.py b/pudb/debugger.py index 50e45884..e3e0b3e0 100644 --- a/pudb/debugger.py +++ b/pudb/debugger.py @@ -2029,53 +2029,37 @@ def cmdline_results_scroll(w, size, key): # {{{ sidebar sizing - def max_sidebar(w, size, key): + def _set_sidebar_weight(weight: float) -> None: from pudb.settings import save_config - weight = 5 CONFIG["sidebar_width"] = weight save_config(CONFIG) self.columns.contents[1] = ( self.columns.contents[1][0], - (urwid.WEIGHT, weight)) - self.columns._invalidate() - - def min_sidebar(w, size, key): - from pudb.settings import save_config + self.columns.options("weight", weight)) - weight = 1/5 - CONFIG["sidebar_width"] = weight - save_config(CONFIG) + def max_sidebar(w, size, key): + _set_sidebar_weight(5) - self.columns.contents[1] = ( - self.columns.contents[1][0], - (urwid.WEIGHT, weight)) - self.columns._invalidate() + def min_sidebar(w, size, key): + _set_sidebar_weight(1/5) def grow_sidebar(w, size, key): - from pudb.settings import save_config - - weight = self.columns.column_types[1][1] + _widget, (_weight_literal, weight, _flag) = self.columns.contents[1] + assert weight is not None if weight < 5: weight *= 1.25 - CONFIG["sidebar_width"] = weight - save_config(CONFIG) - self.columns.column_types[1] = urwid.WEIGHT, weight - self.columns._invalidate() + _set_sidebar_weight(weight) def shrink_sidebar(w, size, key): - from pudb.settings import save_config - - weight = self.columns.column_types[1][1] + _widget, (_weight_literal, weight, _flag) = self.columns.contents[1] + assert weight is not None if weight > 1/5: weight /= 1.25 - CONFIG["sidebar_width"] = weight - save_config(CONFIG) - self.columns.column_types[1] = urwid.WEIGHT, weight - self.columns._invalidate() + _set_sidebar_weight(weight) self.rhs_col_sigwrap.listen("=", max_sidebar) self.rhs_col_sigwrap.listen("+", grow_sidebar)