aboutsummaryrefslogtreecommitdiff
path: root/alacritty_terminal/src/event.rs
diff options
context:
space:
mode:
Diffstat (limited to 'alacritty_terminal/src/event.rs')
-rw-r--r--alacritty_terminal/src/event.rs16
1 files changed, 14 insertions, 2 deletions
diff --git a/alacritty_terminal/src/event.rs b/alacritty_terminal/src/event.rs
index 1ddf820b..9e5031a0 100644
--- a/alacritty_terminal/src/event.rs
+++ b/alacritty_terminal/src/event.rs
@@ -3,7 +3,7 @@ use std::fmt::{self, Debug, Formatter};
use std::sync::Arc;
use crate::term::color::Rgb;
-use crate::term::{ClipboardType, SizeInfo};
+use crate::term::ClipboardType;
/// Terminal event.
///
@@ -38,6 +38,9 @@ pub enum Event {
/// Write some text to the PTY.
PtyWrite(String),
+ /// Request to write the text area size.
+ TextAreaSizeRequest(Arc<dyn Fn(WindowSize) -> String + Sync + Send + 'static>),
+
/// Cursor blinking state has changed.
CursorBlinkingChange,
@@ -56,6 +59,7 @@ impl Debug for Event {
match self {
Event::ClipboardStore(ty, text) => write!(f, "ClipboardStore({:?}, {})", ty, text),
Event::ClipboardLoad(ty, _) => write!(f, "ClipboardLoad({:?})", ty),
+ Event::TextAreaSizeRequest(_) => write!(f, "TextAreaSizeRequest"),
Event::ColorRequest(index, _) => write!(f, "ColorRequest({})", index),
Event::PtyWrite(text) => write!(f, "PtyWrite({})", text),
Event::Title(title) => write!(f, "Title({})", title),
@@ -77,9 +81,17 @@ pub trait Notify {
fn notify<B: Into<Cow<'static, [u8]>>>(&self, _: B);
}
+#[derive(Copy, Clone, Debug)]
+pub struct WindowSize {
+ pub num_lines: u16,
+ pub num_cols: u16,
+ pub cell_width: u16,
+ pub cell_height: u16,
+}
+
/// Types that are interested in when the display is resized.
pub trait OnResize {
- fn on_resize(&mut self, size: &SizeInfo);
+ fn on_resize(&mut self, window_size: WindowSize);
}
/// Event Loop for notifying the renderer about terminal events.