aboutsummaryrefslogtreecommitdiff
path: root/helix-term/src/ui
diff options
context:
space:
mode:
authorMichael Davis2022-12-07 22:24:32 +0000
committerBlaž Hrastnik2022-12-15 08:52:44 +0000
commit35cf972ce459eda6ceffb7a7c256a4bc9f4e6e39 (patch)
tree1a02fec748a2e59b95c863cacad3ac6d003c0c15 /helix-term/src/ui
parenta7daa02346789e43af51db2b944b0dc516354a29 (diff)
DynamicPicker: Reset idle timeout on refresh
If the new results shown by the picker select a file that hasn't been previewed before, the idle timeout would not trigger highlighting on that file. With this change, we reset the idle timeout and allow that file to be highlighted on the next idle timeout event.
Diffstat (limited to 'helix-term/src/ui')
-rw-r--r--helix-term/src/ui/picker.rs3
1 files changed, 2 insertions, 1 deletions
diff --git a/helix-term/src/ui/picker.rs b/helix-term/src/ui/picker.rs
index 35597843..2d471aae 100644
--- a/helix-term/src/ui/picker.rs
+++ b/helix-term/src/ui/picker.rs
@@ -798,7 +798,7 @@ impl<T: Item + Send + 'static> Component for DynamicPicker<T> {
cx.jobs.callback(async move {
let new_options = new_options.await?;
let callback =
- crate::job::Callback::EditorCompositor(Box::new(move |_editor, compositor| {
+ crate::job::Callback::EditorCompositor(Box::new(move |editor, compositor| {
// Wrapping of pickers in overlay is done outside the picker code,
// so this is fragile and will break if wrapped in some other widget.
let picker = match compositor.find_id::<Overlay<DynamicPicker<T>>>(Self::ID) {
@@ -808,6 +808,7 @@ impl<T: Item + Send + 'static> Component for DynamicPicker<T> {
picker.options = new_options;
picker.cursor = 0;
picker.force_score();
+ editor.reset_idle_timer();
}));
anyhow::Ok(callback)
});