@@ -303,10 +303,10 @@ function SwitcherApp() {
303303 const ref = useRef ( null ) ;
304304 const sessionSearchRef = useRef < HTMLInputElement > ( null ) ;
305305 const forceFocusOnInput = ( ) => {
306- if ( mode === 'projects' ) {
307- ref . current ?. focus ( ) ;
308- } else {
306+ if ( modeRef . current === 'sessions' ) {
309307 sessionSearchRef . current ?. focus ( ) ;
308+ } else {
309+ ref . current ?. focus ( ) ;
310310 }
311311 } ;
312312
@@ -451,6 +451,9 @@ function SwitcherApp() {
451451 document . addEventListener ( 'keydown' , handleKeyDown ) ;
452452 document . addEventListener ( 'keyup' , handleKeyUp ) ;
453453 document . addEventListener ( 'click' , ( e ) => {
454+ // Don't steal focus from Settings panel interactions (dropdowns, buttons, etc.)
455+ const target = e . target as HTMLElement ;
456+ if ( target . closest ( '[data-settings-panel]' ) ) return ;
454457 forceFocusOnInput ( ) ;
455458 } ) ;
456459
@@ -464,6 +467,14 @@ function SwitcherApp() {
464467 ( window as any ) . electronAPI . getSessionDisplayMode ( ) . then ( ( mode : string ) => {
465468 setSessionDisplayMode ( mode || 'first' ) ;
466469 } ) ;
470+ // Re-focus search input so arrow keys work (not captured by scroll container)
471+ setTimeout ( ( ) => {
472+ if ( modeRef . current === 'sessions' ) {
473+ sessionSearchRef . current ?. focus ( ) ;
474+ } else {
475+ ref . current ?. focus ( ) ;
476+ }
477+ } , 50 ) ;
467478 } ) ;
468479
469480 ( window as any ) . electronAPI . onWorkingFolderIterated (
0 commit comments