diff options
| author | Ogulcan Celik <ogulcancelik@gmail.com> | 2026-07-24 01:30:05 +0300 |
|---|---|---|
| committer | Ogulcan Celik <ogulcancelik@gmail.com> | 2026-07-24 01:31:06 +0300 |
| commit | 36de78dd4fa4e2c203ee955f18caf82a6bca7e80 (patch) | |
| tree | 2cf7fca12c9c1eeaeb13ae6ad010526d03ccd6fa /src/app | |
| parent | 503613c8ecbea752a234daf30cb0ad5a8bf93e4e (diff) | |
fix: preserve kitty graphics during host repaints
refs #1628
Diffstat (limited to 'src/app')
| -rw-r--r-- | src/app/mod.rs | 8 | ||||
| -rw-r--r-- | src/app/runtime.rs | 2 |
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(); |
