@@ -8,7 +8,7 @@ use helix_view::{
8 Document, Editor, Theme, View,
8 Document, Editor, Theme, View,
11−use crate::compositor::{Component, Compositor};
11+use crate::compositor::{Component, Compositor, EventResult};
13use log::{debug, info};
13use log::{debug, info};
@@ -383,7 +383,7 @@ impl EditorView {
385impl Component for EditorView {
385impl Component for EditorView {
386− fn handle_event(&mut self, event: Event, executor: &smol::Executor) -> bool {
386+ fn handle_event(&mut self, event: Event, executor: &smol::Executor) -> EventResult {
387 match event {
387 match event {
388 Event::Resize(width, height) => {
388 Event::Resize(width, height) => {
389 // TODO: simplistic ensure cursor in view for now
389 // TODO: simplistic ensure cursor in view for now
@@ -392,6 +392,7 @@ impl Component for EditorView {
392 view.size = (width, height);
392 view.size = (width, height);
393 view.ensure_cursor_in_view()
393 view.ensure_cursor_in_view()
395+ EventResult::Consumed(None)
396 Event::Key(event) => {
397 Event::Key(event) => {
397 // if there's a prompt, it takes priority
398 // if there's a prompt, it takes priority
@@ -400,6 +401,7 @@ impl Component for EditorView {
400 .as_mut()
401 .as_mut()
401 .unwrap()
402 .unwrap()
402 .handle_input(event, &mut self.editor);
403 .handle_input(event, &mut self.editor);
404+ EventResult::Consumed(None)
403 } else if let Some(view) = self.editor.view_mut() {
405 } else if let Some(view) = self.editor.view_mut() {
404 let keys = vec![event];
406 let keys = vec![event];
405 // TODO: sequences (`gg`)
407 // TODO: sequences (`gg`)
@@ -511,12 +513,13 @@ impl Component for EditorView {
516+ EventResult::Consumed(None)
518+ EventResult::Ignored
516− Event::Mouse(_) => (),
521+ Event::Mouse(_) => EventResult::Ignored,
521 fn render(&mut self, renderer: &mut Renderer) {
524 fn render(&mut self, renderer: &mut Renderer) {
522 const OFFSET: u16 = 7; // 1 diagnostic + 5 linenr + 1 gutter
525 const OFFSET: u16 = 7; // 1 diagnostic + 5 linenr + 1 gutter
@@ -569,7 +572,6 @@ impl<'a> Application<'a> {
571 fn render(&mut self) {
574 fn render(&mut self) {
573 self.renderer.surface.reset(); // reset is faster than allocating new empty surface
575 self.renderer.surface.reset(); // reset is faster than allocating new empty surface
574 self.compositor.render(&mut self.renderer); // viewport,
576 self.compositor.render(&mut self.renderer); // viewport,
575 self.renderer.draw_and_swap();
577 self.renderer.draw_and_swap();