aboutsummaryrefslogtreecommitdiff
path: root/alacritty/src/event.rs
diff options
context:
space:
mode:
Diffstat (limited to 'alacritty/src/event.rs')
-rw-r--r--alacritty/src/event.rs46
1 files changed, 32 insertions, 14 deletions
diff --git a/alacritty/src/event.rs b/alacritty/src/event.rs
index c651fda3..f90ebdd3 100644
--- a/alacritty/src/event.rs
+++ b/alacritty/src/event.rs
@@ -32,7 +32,6 @@ use alacritty_terminal::config::LOG_TARGET_CONFIG;
use alacritty_terminal::event::{Event as TerminalEvent, EventListener, Notify, OnResize};
use alacritty_terminal::grid::{Dimensions, Scroll};
use alacritty_terminal::index::{Column, Direction, Line, Point, Side};
-use alacritty_terminal::message_bar::{Message, MessageBuffer};
use alacritty_terminal::selection::{Selection, SelectionType};
use alacritty_terminal::sync::FairMutex;
use alacritty_terminal::term::cell::Cell;
@@ -47,6 +46,7 @@ use crate::config::Config;
use crate::daemon::start_daemon;
use crate::display::{Display, DisplayUpdate};
use crate::input::{self, ActionContext as _, FONT_SIZE_STEP};
+use crate::message_bar::{Message, MessageBuffer};
use crate::scheduler::{Scheduler, TimerId};
use crate::url::{Url, Urls};
use crate::window::Window;
@@ -312,14 +312,14 @@ impl<'a, N: Notify + 'a, T: EventListener> input::ActionContext<T> for ActionCon
fn change_font_size(&mut self, delta: f32) {
*self.font_size = max(*self.font_size + delta, Size::new(FONT_SIZE_STEP));
- let font = self.config.font.clone().with_size(*self.font_size);
+ let font = self.config.ui_config.font.clone().with_size(*self.font_size);
self.display_update_pending.set_font(font);
self.terminal.dirty = true;
}
fn reset_font_size(&mut self) {
- *self.font_size = self.config.font.size;
- self.display_update_pending.set_font(self.config.font.clone());
+ *self.font_size = self.config.ui_config.font.size;
+ self.display_update_pending.set_font(self.config.ui_config.font.clone());
self.terminal.dirty = true;
}
@@ -636,7 +636,7 @@ impl<N: Notify + OnResize> Processor<N> {
received_count: 0,
suppress_chars: false,
modifiers: Default::default(),
- font_size: config.font.size,
+ font_size: config.ui_config.font.size,
config,
message_buffer,
display,
@@ -679,7 +679,7 @@ impl<N: Notify + OnResize> Processor<N> {
let mut scheduler = Scheduler::new();
event_loop.run_return(|event, event_loop, control_flow| {
- if self.config.debug.print_events {
+ if self.config.ui_config.debug.print_events {
info!("glutin event: {:?}", event);
}
@@ -791,7 +791,7 @@ impl<N: Notify + OnResize> Processor<N> {
});
// Write ref tests to disk.
- if self.config.debug.ref_test {
+ if self.config.ui_config.debug.ref_test {
self.write_ref_test_results(&terminal.lock());
}
}
@@ -811,7 +811,7 @@ impl<N: Notify + OnResize> Processor<N> {
let display_update_pending = &mut processor.ctx.display_update_pending;
// Push current font to update its DPR.
- let font = processor.ctx.config.font.clone();
+ let font = processor.ctx.config.ui_config.font.clone();
display_update_pending.set_font(font.with_size(*processor.ctx.font_size));
// Resize to event's dimensions, since no resize event is emitted on Wayland.
@@ -829,7 +829,18 @@ impl<N: Notify + OnResize> Processor<N> {
Event::ConfigReload(path) => Self::reload_config(&path, processor),
Event::Scroll(scroll) => processor.ctx.scroll(scroll),
Event::TerminalEvent(event) => match event {
- TerminalEvent::Title(title) => processor.ctx.window.set_title(&title),
+ TerminalEvent::Title(title) => {
+ let ui_config = &processor.ctx.config.ui_config;
+ if ui_config.dynamic_title() {
+ processor.ctx.window.set_title(&title);
+ }
+ },
+ TerminalEvent::ResetTitle => {
+ let ui_config = &processor.ctx.config.ui_config;
+ if ui_config.dynamic_title() {
+ processor.ctx.window.set_title(&ui_config.window.title);
+ }
+ },
TerminalEvent::Wakeup => processor.ctx.terminal.dirty = true,
TerminalEvent::Bell => {
let bell_command = processor.ctx.config.bell().command.as_ref();
@@ -983,16 +994,23 @@ impl<N: Notify + OnResize> Processor<N> {
processor.ctx.display_update_pending.set_cursor_dirty();
}
- if processor.ctx.config.font != config.font {
+ if processor.ctx.config.ui_config.font != config.ui_config.font {
// Do not update font size if it has been changed at runtime.
- if *processor.ctx.font_size == processor.ctx.config.font.size {
- *processor.ctx.font_size = config.font.size;
+ if *processor.ctx.font_size == processor.ctx.config.ui_config.font.size {
+ *processor.ctx.font_size = config.ui_config.font.size;
}
- let font = config.font.clone().with_size(*processor.ctx.font_size);
+ let font = config.ui_config.font.clone().with_size(*processor.ctx.font_size);
processor.ctx.display_update_pending.set_font(font);
}
+ // Live title reload.
+ if !config.ui_config.dynamic_title()
+ || processor.ctx.config.ui_config.window.title != config.ui_config.window.title
+ {
+ processor.ctx.window.set_title(&config.ui_config.window.title);
+ }
+
#[cfg(not(any(target_os = "macos", windows)))]
{
if processor.ctx.event_loop.is_wayland() {
@@ -1002,7 +1020,7 @@ impl<N: Notify + OnResize> Processor<N> {
// Set subpixel anti-aliasing.
#[cfg(target_os = "macos")]
- set_font_smoothing(config.font.use_thin_strokes());
+ set_font_smoothing(config.ui_config.font.use_thin_strokes());
*processor.ctx.config = config;