From f48d090c4ec73a2da1385575a5f4babdd22e221d Mon Sep 17 00:00:00 2001 From: "n loewen (aider)" Date: Sat, 7 Jun 2025 20:46:15 +0100 Subject: [PATCH] feat: Add optional mouse support with --mouse command-line flag --- gtm | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/gtm b/gtm index 18dc31d..8c09a8e 100755 --- a/gtm +++ b/gtm @@ -117,10 +117,11 @@ def get_diff_info(current_commit, prev_commit, filename): return added_lines, deleted_lines -def main(stdscr, filename, show_whole_diff=False, show_additions=False, show_deletions=False): +def main(stdscr, filename, show_whole_diff=False, show_additions=False, show_deletions=False, enable_mouse=False): curses.curs_set(0) - curses.mousemask(curses.ALL_MOUSE_EVENTS) - curses.mouseinterval(0) + if enable_mouse: + curses.mousemask(curses.ALL_MOUSE_EVENTS) + curses.mouseinterval(0) stdscr.keypad(True) # Initialize colors if terminal supports them @@ -360,7 +361,7 @@ def main(stdscr, filename, show_whole_diff=False, show_additions=False, show_del continue # Mouse interaction - if key == curses.KEY_MOUSE: + if enable_mouse and key == curses.KEY_MOUSE: try: _, mx, my, _, bstate = curses.getmouse() @@ -438,6 +439,7 @@ if __name__ == "__main__": parser.add_argument("-d", "--diff", action="store_true", help="Highlight newly added and deleted lines") parser.add_argument("--diff-additions", action="store_true", help="Highlight newly added lines in green") parser.add_argument("--diff-deletions", action="store_true", help="Show deleted lines in red") + parser.add_argument("-m", "--mouse", action="store_true", help="Enable mouse support for navigation") parser.add_argument("-v", "--version", action="store_true", help="Show version number") parser.add_argument("filename", nargs="?", help="File to view history for") @@ -457,5 +459,5 @@ if __name__ == "__main__": print(f"Error: File '{filename}' does not exist") sys.exit(1) - curses.wrapper(main, filename, args.diff, args.diff_additions, args.diff_deletions) + curses.wrapper(main, filename, args.diff, args.diff_additions, args.diff_deletions, args.mouse)