aboutsummaryrefslogtreecommitdiff
path: root/src/app
diff options
context:
space:
mode:
authorOgulcan Celik <ogulcancelik@gmail.com>2026-07-24 01:30:05 +0300
committerOgulcan Celik <ogulcancelik@gmail.com>2026-07-24 01:31:06 +0300
commit36de78dd4fa4e2c203ee955f18caf82a6bca7e80 (patch)
tree2cf7fca12c9c1eeaeb13ae6ad010526d03ccd6fa /src/app
parent503613c8ecbea752a234daf30cb0ad5a8bf93e4e (diff)
fix: preserve kitty graphics during host repaints
refs #1628
Diffstat (limited to 'src/app')
-rw-r--r--src/app/mod.rs8
-rw-r--r--src/app/runtime.rs2
2 files changed, 5 insertions, 5 deletions
diff --git a/src/app/mod.rs b/src/app/mod.rs
index f6dbe261..0c0a2688 100644
--- a/src/app/mod.rs
+++ b/src/app/mod.rs
@@ -862,7 +862,7 @@ impl App {
self.terminal_runtimes.assume_handoff_ownership();
}
- fn request_full_redraw(&mut self) {
+ fn request_repaint(&mut self) {
self.full_redraw_pending = true;
}
@@ -1046,10 +1046,10 @@ impl App {
let _sync_output = SyncOutputGuard::begin()?;
let kitty_graphics_enabled = self.state.kitty_graphics_enabled;
if self.full_redraw_pending {
- if kitty_graphics_enabled {
- crate::kitty_graphics::clear_all_host_graphics()?;
+ for cell in &mut terminal.current_buffer_mut().content {
+ cell.set_skip(true);
}
- terminal.clear()?;
+ terminal.swap_buffers();
self.full_redraw_pending = false;
}
let mut cell_size = crate::kitty_graphics::HostCellSize::default();
diff --git a/src/app/runtime.rs b/src/app/runtime.rs
index 97054f4b..428cd35b 100644
--- a/src/app/runtime.rs
+++ b/src/app/runtime.rs
@@ -209,7 +209,7 @@ impl App {
crate::raw_input::RawInputEvent::OuterFocusGained => {
self.send_outer_focus_event(crate::ghostty::FocusEvent::Gained);
if self.state.redraw_on_focus_gained {
- self.request_full_redraw();
+ self.request_repaint();
}
self.state.outer_terminal_focus = Some(true);
self.state.mark_active_tab_seen();