Skip to content

Commit a634499

Browse files
feat(git-watcher): mouse wheel moves repo selection instead of raw scroll
Wheel up/down now navigates sel_item (same as arrow keys); the 1-row-context auto-scroll follows, keeping header/separator visible. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
1 parent 96cdb63 commit a634499

1 file changed

Lines changed: 7 additions & 4 deletions

File tree

src/operator_console/git_watcher.py

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -507,10 +507,13 @@ def refresh_all() -> None:
507507
elif key == curses.KEY_MOUSE:
508508
try:
509509
_, _mx, _my, _mz, bstate = curses.getmouse()
510-
if bstate & curses.BUTTON4_PRESSED: # wheel up
511-
scroll_offset = max(0, scroll_offset - 3)
512-
elif bstate & curses.BUTTON5_PRESSED: # wheel down
513-
scroll_offset = min(max(0, total_vrows - body_h), scroll_offset + 3)
510+
nav = nav_idxs()
511+
if nav and bstate & curses.BUTTON4_PRESSED: # wheel up → prev repo
512+
cur_pos = nav.index(sel_item) if sel_item in nav else 0
513+
sel_item = nav[max(0, cur_pos - 1)]
514+
elif nav and bstate & curses.BUTTON5_PRESSED: # wheel down → next repo
515+
cur_pos = nav.index(sel_item) if sel_item in nav else -1
516+
sel_item = nav[min(len(nav) - 1, cur_pos + 1)]
514517
except curses.error:
515518
pass
516519

0 commit comments

Comments
 (0)