Merge pull request #1764 from zed-industries/gpui-events

Eliminate dispatch_event on Element trait
This commit is contained in:
Nathan Sobo 2022-10-18 15:24:13 -06:00 committed by GitHub
commit f8e5a08324
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
56 changed files with 861 additions and 1245 deletions

View file

@ -15,9 +15,8 @@ use gpui::{
},
serde_json::json,
text_layout::{Line, RunStyle},
Element, ElementBox, Event, EventContext, FontCache, KeyDownEvent, ModelContext, MouseButton,
MouseRegion, PaintContext, Quad, SizeConstraint, TextLayoutCache, WeakModelHandle,
WeakViewHandle,
Element, ElementBox, EventContext, FontCache, ModelContext, MouseButton, MouseRegion,
PaintContext, Quad, SizeConstraint, TextLayoutCache, WeakModelHandle, WeakViewHandle,
};
use itertools::Itertools;
use language::CursorShape;
@ -800,46 +799,6 @@ impl Element for TerminalElement {
});
}
fn dispatch_event(
&mut self,
event: &gpui::Event,
_bounds: gpui::geometry::rect::RectF,
_visible_bounds: gpui::geometry::rect::RectF,
_layout: &mut Self::LayoutState,
_paint: &mut Self::PaintState,
cx: &mut gpui::EventContext,
) -> bool {
if let Event::KeyDown(KeyDownEvent { keystroke, .. }) = event {
if !cx.is_parent_view_focused() {
return false;
}
if let Some(view) = self.view.upgrade(cx.app) {
view.update(cx.app, |view, cx| {
view.clear_bel(cx);
view.pause_cursor_blinking(cx);
})
}
self.terminal
.upgrade(cx.app)
.map(|model_handle| {
model_handle.update(cx.app, |term, cx| {
term.try_keystroke(
keystroke,
cx.global::<Settings>()
.terminal_overrides
.option_as_meta
.unwrap_or(false),
)
})
})
.unwrap_or(false)
} else {
false
}
}
fn metadata(&self) -> Option<&dyn std::any::Any> {
None
}