Only allow zooming in kitty

This commit is contained in:
itsjunetime
2025-06-18 10:48:00 -06:00
parent 02b447a98e
commit da8cdd1fbd
2 changed files with 14 additions and 7 deletions
+6 -1
View File
@@ -209,7 +209,12 @@ async fn main() -> Result<(), WrappedErr> {
|| "Unknown file".into(), || "Unknown file".into(),
|n| n.to_string_lossy().to_string() |n| n.to_string_lossy().to_string()
); );
let tui = Tui::new(file_name, flags.max_wide, flags.r_to_l.unwrap_or_default()); let tui = Tui::new(
file_name,
flags.max_wide,
flags.r_to_l.unwrap_or_default(),
is_kitty
);
let backend = CrosstermBackend::new(std::io::stdout()); let backend = CrosstermBackend::new(std::io::stdout());
let mut term = Terminal::new(backend).map_err(|e| { let mut term = Terminal::new(backend).map_err(|e| {
+8 -6
View File
@@ -42,6 +42,7 @@ pub struct Tui {
rendered: Vec<RenderedInfo>, rendered: Vec<RenderedInfo>,
page_constraints: PageConstraints, page_constraints: PageConstraints,
showing_help_msg: bool, showing_help_msg: bool,
is_kitty: bool,
zoom: Option<Zoom> zoom: Option<Zoom>
} }
@@ -107,7 +108,7 @@ pub struct RenderLayout {
} }
impl Tui { impl Tui {
pub fn new(name: String, max_wide: Option<NonZeroUsize>, r_to_l: bool) -> Tui { pub fn new(name: String, max_wide: Option<NonZeroUsize>, r_to_l: bool, is_kitty: bool) -> Tui {
Self { Self {
name, name,
page: 0, page: 0,
@@ -117,6 +118,7 @@ impl Tui {
rendered: vec![], rendered: vec![],
page_constraints: PageConstraints { max_wide, r_to_l }, page_constraints: PageConstraints { max_wide, r_to_l },
showing_help_msg: false, showing_help_msg: false,
is_kitty,
zoom: None zoom: None
} }
} }
@@ -621,7 +623,7 @@ impl Tui {
self.last_render.rect = Rect::default(); self.last_render.rect = Rect::default();
Some(InputAction::Redraw) Some(InputAction::Redraw)
} }
'z' => { 'z' if self.is_kitty => {
let (zoom, f_or_f) = match self.zoom { let (zoom, f_or_f) = match self.zoom {
None => (Some(Zoom::default()), FitOrFill::Fill), None => (Some(Zoom::default()), FitOrFill::Fill),
Some(_) => (None, FitOrFill::Fit) Some(_) => (None, FitOrFill::Fit)
@@ -630,28 +632,28 @@ impl Tui {
self.last_render.rect = Rect::default(); self.last_render.rect = Rect::default();
Some(InputAction::SwitchRenderZoom(f_or_f)) Some(InputAction::SwitchRenderZoom(f_or_f))
} }
'L' => { 'L' if self.is_kitty => {
if let Some(z) = &mut self.zoom { if let Some(z) = &mut self.zoom {
z.cell_pan_from_left = z.cell_pan_from_left.saturating_add(1); z.cell_pan_from_left = z.cell_pan_from_left.saturating_add(1);
} }
self.last_render.rect = Rect::default(); self.last_render.rect = Rect::default();
Some(InputAction::Redraw) Some(InputAction::Redraw)
} }
'H' => { 'H' if self.is_kitty => {
if let Some(z) = &mut self.zoom { if let Some(z) = &mut self.zoom {
z.cell_pan_from_left = z.cell_pan_from_left.saturating_sub(1); z.cell_pan_from_left = z.cell_pan_from_left.saturating_sub(1);
} }
self.last_render.rect = Rect::default(); self.last_render.rect = Rect::default();
Some(InputAction::Redraw) Some(InputAction::Redraw)
} }
'J' => { 'J' if self.is_kitty => {
if let Some(z) = &mut self.zoom { if let Some(z) = &mut self.zoom {
z.cell_pan_from_top = z.cell_pan_from_top.saturating_add(1); z.cell_pan_from_top = z.cell_pan_from_top.saturating_add(1);
} }
self.last_render.rect = Rect::default(); self.last_render.rect = Rect::default();
Some(InputAction::Redraw) Some(InputAction::Redraw)
} }
'K' => { 'K' if self.is_kitty => {
if let Some(z) = &mut self.zoom { if let Some(z) = &mut self.zoom {
z.cell_pan_from_top = z.cell_pan_from_top.saturating_sub(1); z.cell_pan_from_top = z.cell_pan_from_top.saturating_sub(1);
} }