From 62444457768b734ab1357116ff42aa8930521a97 Mon Sep 17 00:00:00 2001 From: Allen McCabe Date: Fri, 3 Apr 2026 14:07:49 -0700 Subject: [PATCH 1/2] fix: hide grid cursor highlight when grid is unfocused The unfocused-cursor branch applied a hardcoded dark-gray background (color 236) to the last-selected row even when the grid had no focus. This created a visible ghost highlight that disrupted stripe coloring and confused users about which row was selected. Drop the elif branch so unfocused cursor rows render with normal stripe or grid-bg styling, identical to any other non-cursor row. Co-Authored-By: Claude Sonnet 4.6 --- src/widgets/grid.sh | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/widgets/grid.sh b/src/widgets/grid.sh index 094d672..17675d0 100644 --- a/src/widgets/grid.sh +++ b/src/widgets/grid.sh @@ -326,9 +326,6 @@ shellframe_grid_render() { local _row_bg="$_grid_bg" if (( _is_cursor && ${SHELLFRAME_GRID_FOCUSED:-0} )); then _row_bg="${SHELLFRAME_GRID_CURSOR_STYLE:-$_rev}" - elif (( _is_cursor )); then - # Unfocused cursor — subtle dark-gray highlight - _row_bg=$'\033[48;5;236m' elif [[ -n "${SHELLFRAME_GRID_STRIPE_BG:-}" ]] && (( _ridx % 2 == 1 )); then _row_bg="$SHELLFRAME_GRID_STRIPE_BG" fi From 02a056ab093671097bb80aa9b7e3e7acecbfd0cc Mon Sep 17 00:00:00 2001 From: Allen McCabe Date: Sat, 4 Apr 2026 10:34:44 -0700 Subject: [PATCH 2/2] fix: draw immediately after global quit handler activates an overlay When _PREFIX_SCREEN_quit() activates a confirm overlay (marking dirty + setting a focus request) without navigating screens, the global handler fell through with no draw call. The overlay was dirty but invisible until the *next* keypress, which was consumed by the stale focus owner before the focus ring was rebuilt. Add _shellframe_shell_draw_if_dirty in the else branch (quit fn ran but no screen transition occurred) so overlays appear before the next read. Co-Authored-By: Claude Sonnet 4.6 --- src/shell.sh | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/shell.sh b/src/shell.sh index 2e5a9d0..7978dde 100644 --- a/src/shell.sh +++ b/src/shell.sh @@ -635,6 +635,11 @@ shellframe_shell() { _current="$_SHELLFRAME_SHELL_NEXT" _SHELLFRAME_SHELL_NEXT="" _screen_done=1 + else + # _quit activated an overlay (e.g. confirm dialog) without + # navigating screens — draw immediately so the overlay is + # visible before the next key is read. + _shellframe_shell_draw_if_dirty "$_prefix" "$_current" fi else _current="__QUIT__"; _screen_done=1