diff --git a/gtm b/gtm index 64fd450..18f0d84 100755 --- a/gtm +++ b/gtm @@ -135,7 +135,8 @@ def main(stdscr, filename, show_whole_diff=False, show_additions=False, show_del scroll_percentage = scroll_offset / max_scroll # Only fetch file content when commit changes - if key in [curses.KEY_DOWN, curses.KEY_UP, ord('j'), ord('k')] and focus == "left": + if (key in [curses.KEY_DOWN, curses.KEY_UP, ord('j'), ord('k'), + curses.KEY_NPAGE, ord(' '), curses.KEY_PPAGE, 8, 127, curses.KEY_SR]) and focus == "left": commit_hash = commits[selected_commit].split()[0] file_lines = get_file_at_commit(commit_hash, filename) @@ -338,20 +339,15 @@ def main(stdscr, filename, show_whole_diff=False, show_additions=False, show_del if key in [curses.KEY_DOWN, ord('j')]: if selected_commit < len(commits) - 1: selected_commit += 1 - scroll_offset = 0 elif key in [curses.KEY_UP, ord('k')]: if selected_commit > 0: selected_commit -= 1 elif key in [curses.KEY_NPAGE, ord(' ')]: # Page down in left pane - new_selected = min(selected_commit + height - 1, len(commits) - 1) - if new_selected != selected_commit: - selected_commit = new_selected + selected_commit = min(selected_commit + height - 1, len(commits) - 1) elif key in [curses.KEY_PPAGE, 8, 127, curses.KEY_SR]: # Page up in left pane - new_selected = max(0, selected_commit - (height - 1)) - if new_selected != selected_commit: - selected_commit = new_selected + selected_commit = max(0, selected_commit - (height - 1)) # Right pane scrolling elif focus == "right":