Skip to content

Commit 31b8b0d

Browse files
committed
Propagate idle timeout event to components
1 parent 18cfe86 commit 31b8b0d

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
@@ -435,18 +435,13 @@ impl Application {
435435
}
436436

437437
pub fn handle_idle_timeout(&mut self) {
438-
use crate::compositor::EventResult;
439-
let editor_view = self
440-
.compositor
441-
.find::<ui::EditorView>()
442-
.expect("expected at least one EditorView");
443-
444438
let mut cx = crate::compositor::Context {
445439
editor: &mut self.editor,
446440
jobs: &mut self.jobs,
447441
scroll: None,
448442
};
449-
if let EventResult::Consumed(_) = editor_view.handle_idle_timeout(&mut cx) {
443+
let should_render = self.compositor.handle_event(&Event::IdleTimeout, &mut cx);
444+
if should_render {
450445
self.render();
451446
}
452447
}

helix-term/src/ui/editor.rs

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

1019-
pub fn handle_idle_timeout(&mut self, cx: &mut crate::compositor::Context) -> EventResult {
1019+
pub fn handle_idle_timeout(&mut self, cx: &mut commands::Context) -> EventResult {
10201020
if self.completion.is_some()
10211021
|| cx.editor.mode != Mode::Insert
10221022
|| !cx.editor.config().auto_completion
10231023
{
10241024
return EventResult::Ignored(None);
10251025
}
10261026

1027-
let mut cx = commands::Context {
1028-
register: None,
1029-
editor: cx.editor,
1030-
jobs: cx.jobs,
1031-
count: None,
1032-
callback: None,
1033-
on_next_key_callback: None,
1034-
};
1035-
crate::commands::insert::idle_completion(&mut cx);
1027+
crate::commands::insert::idle_completion(cx);
10361028

10371029
EventResult::Consumed(None)
10381030
}
@@ -1353,6 +1345,7 @@ impl Component for EditorView {
13531345
}
13541346

13551347
Event::Mouse(event) => self.handle_mouse_event(event, &mut cx),
1348+
Event::IdleTimeout => self.handle_idle_timeout(&mut cx),
13561349
Event::FocusGained | Event::FocusLost => EventResult::Ignored(None),
13571350
}
13581351
}

helix-view/src/input.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ pub enum Event {
1414
Mouse(MouseEvent),
1515
Paste(String),
1616
Resize(u16, u16),
17+
IdleTimeout,
1718
}
1819

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

0 commit comments

Comments
 (0)