Skip to content

Commit f7f5a16

Browse files
committed
Propagate idle timeout event to components
1 parent bcdd44f commit f7f5a16

File tree

3 files changed

+6
-17
lines changed

3 files changed

+6
-17
lines changed

helix-term/src/application.rs

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -402,18 +402,13 @@ impl Application {
402402
}
403403

404404
pub fn handle_idle_timeout(&mut self) {
405-
use crate::compositor::EventResult;
406-
let editor_view = self
407-
.compositor
408-
.find::<ui::EditorView>()
409-
.expect("expected at least one EditorView");
410-
411405
let mut cx = crate::compositor::Context {
412406
editor: &mut self.editor,
413407
jobs: &mut self.jobs,
414408
scroll: None,
415409
};
416-
if let EventResult::Consumed(_) = editor_view.handle_idle_timeout(&mut cx) {
410+
let should_render = self.compositor.handle_event(Event::IdleTimeout, &mut cx);
411+
if should_render {
417412
self.render();
418413
}
419414
}

helix-term/src/ui/editor.rs

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -889,23 +889,15 @@ impl EditorView {
889889
editor.clear_idle_timer(); // don't retrigger
890890
}
891891

892-
pub fn handle_idle_timeout(&mut self, cx: &mut crate::compositor::Context) -> EventResult {
892+
pub fn handle_idle_timeout(&mut self, cx: &mut commands::Context) -> EventResult {
893893
if self.completion.is_some()
894894
|| !cx.editor.config().auto_completion
895895
|| doc!(cx.editor).mode != Mode::Insert
896896
{
897897
return EventResult::Ignored(None);
898898
}
899899

900-
let mut cx = commands::Context {
901-
register: None,
902-
editor: cx.editor,
903-
jobs: cx.jobs,
904-
count: None,
905-
callback: None,
906-
on_next_key_callback: None,
907-
};
908-
crate::commands::insert::idle_completion(&mut cx);
900+
crate::commands::insert::idle_completion(cx);
909901

910902
EventResult::Consumed(None)
911903
}
@@ -1231,6 +1223,7 @@ impl Component for EditorView {
12311223
}
12321224

12331225
Event::Mouse(event) => self.handle_mouse_event(event, &mut cx),
1226+
Event::IdleTimeout => self.handle_idle_timeout(&mut cx),
12341227
}
12351228
}
12361229

helix-view/src/input.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ pub enum Event {
1111
Key(KeyEvent),
1212
Mouse(MouseEvent),
1313
Resize(u16, u16),
14+
IdleTimeout,
1415
}
1516

1617
#[derive(Debug, PartialOrd, PartialEq, Eq, Clone, Copy, Hash)]

0 commit comments

Comments
 (0)