diff --git a/gtm b/gtm index 5826732..2ee0ed4 100755 --- a/gtm +++ b/gtm @@ -1120,9 +1120,19 @@ def handle_keyboard_input(key, state: AppState) -> AppState: elif key == ord('d'): return replace(state, show_whole_diff=not state.show_whole_diff) elif key == ord('a'): - return replace(state, show_additions=not state.show_additions) + # If diff mode is on, pressing 'a' should toggle off additions + # If diff mode is off, pressing 'a' should toggle on additions + if state.show_whole_diff: + return replace(state, show_additions=False, show_whole_diff=False) + else: + return replace(state, show_additions=not state.show_additions) elif key == ord('x'): - return replace(state, show_deletions=not state.show_deletions) + # If diff mode is on, pressing 'x' should toggle off deletions + # If diff mode is off, pressing 'x' should toggle on deletions + if state.show_whole_diff: + return replace(state, show_deletions=False, show_whole_diff=False) + else: + return replace(state, show_deletions=not state.show_deletions) elif key == ord('w'): return replace(state, wrap_lines=not state.wrap_lines) elif key == ord('L'):