Skip to content

Commit 8e75646

Browse files
committed
Use Esc to close focused diff
Consume left arrow in `DiffComponent` even when `scrolled_right` is already 0.
1 parent 77dbcb3 commit 8e75646

File tree

4 files changed

+21
-27
lines changed

4 files changed

+21
-27
lines changed

src/components/compare_commits.rs

+6-8
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,12 @@ impl Component for CompareCommitsComponent {
121121

122122
if let Event::Key(e) = ev {
123123
if key_match(e, self.key_config.keys.exit_popup) {
124-
self.hide_stacked(false);
124+
if self.diff.focused() {
125+
self.details.focus(true);
126+
self.diff.focus(false);
127+
} else {
128+
self.hide_stacked(false);
129+
}
125130
} else if key_match(
126131
e,
127132
self.key_config.keys.focus_right,
@@ -132,13 +137,6 @@ impl Component for CompareCommitsComponent {
132137
} else if key_match(
133138
e,
134139
self.key_config.keys.focus_left,
135-
) && self.diff.focused()
136-
{
137-
self.details.focus(true);
138-
self.diff.focus(false);
139-
} else if key_match(
140-
e,
141-
self.key_config.keys.focus_left,
142140
) {
143141
self.hide_stacked(false);
144142
}

src/components/diff.rs

+3-2
Original file line numberDiff line numberDiff line change
@@ -811,9 +811,10 @@ impl Component for DiffComponent {
811811
}
812812
Ok(EventState::Consumed)
813813
} else if key_match(e, self.key_config.keys.move_left)
814-
&& self.scrolled_right > 0
815814
{
816-
self.scrolled_right -= 1;
815+
if self.scrolled_right > 0 {
816+
self.scrolled_right -= 1;
817+
}
817818
Ok(EventState::Consumed)
818819
} else if key_match(
819820
e,

src/components/file_revlog.rs

+5-8
Original file line numberDiff line numberDiff line change
@@ -486,20 +486,17 @@ impl Component for FileRevlogComponent {
486486

487487
if let Event::Key(key) = event {
488488
if key_match(key, self.key_config.keys.exit_popup) {
489-
self.hide_stacked(false);
489+
if self.diff.focused() {
490+
self.diff.focus(false);
491+
} else {
492+
self.hide_stacked(false);
493+
}
490494
} else if key_match(
491495
key,
492496
self.key_config.keys.focus_right,
493497
) && self.can_focus_diff()
494498
{
495499
self.diff.focus(true);
496-
} else if key_match(
497-
key,
498-
self.key_config.keys.focus_left,
499-
) {
500-
if self.diff.focused() {
501-
self.diff.focus(false);
502-
}
503500
} else if key_match(key, self.key_config.keys.enter) {
504501
if let Some(commit_id) = self.selected_commit() {
505502
self.hide_stacked(true);

src/components/inspect_commit.rs

+7-9
Original file line numberDiff line numberDiff line change
@@ -126,7 +126,7 @@ impl Component for InspectCommitComponent {
126126
));
127127

128128
out.push(CommandInfo::new(
129-
strings::commands::diff_focus_left(&self.key_config),
129+
strings::commands::close_popup(&self.key_config),
130130
true,
131131
self.diff.focused() || force_all,
132132
));
@@ -157,7 +157,12 @@ impl Component for InspectCommitComponent {
157157

158158
if let Event::Key(e) = ev {
159159
if key_match(e, self.key_config.keys.exit_popup) {
160-
self.hide_stacked(false);
160+
if self.diff.focused() {
161+
self.details.focus(true);
162+
self.diff.focus(false);
163+
} else {
164+
self.hide_stacked(false);
165+
}
161166
} else if key_match(
162167
e,
163168
self.key_config.keys.focus_right,
@@ -168,13 +173,6 @@ impl Component for InspectCommitComponent {
168173
} else if key_match(
169174
e,
170175
self.key_config.keys.focus_left,
171-
) && self.diff.focused()
172-
{
173-
self.details.focus(true);
174-
self.diff.focus(false);
175-
} else if key_match(
176-
e,
177-
self.key_config.keys.focus_left,
178176
) {
179177
self.hide_stacked(false);
180178
}

0 commit comments

Comments
 (0)