From 3fc08aa6607c05e89a594ea850c9191170da1b5c Mon Sep 17 00:00:00 2001 From: Mitchell Hashimoto Date: Fri, 5 Jul 2024 19:08:33 -0700 Subject: [PATCH] terminal/kitty: intersect cell deletion is 1-based --- src/terminal/kitty/graphics_storage.zig | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/src/terminal/kitty/graphics_storage.zig b/src/terminal/kitty/graphics_storage.zig index 7bbb14958..cf02ee73e 100644 --- a/src/terminal/kitty/graphics_storage.zig +++ b/src/terminal/kitty/graphics_storage.zig @@ -267,12 +267,17 @@ pub const ImageStorage = struct { }, .intersect_cell => |v| intersect_cell: { + if (v.x <= 0 or v.y <= 0) { + log.warn("delete intersect cell coords must be at least 1", .{}); + break :intersect_cell; + } + self.deleteIntersecting( alloc, t, .{ .active = .{ - .x = std.math.cast(size.CellCountInt, v.x) orelse break :intersect_cell, - .y = std.math.cast(size.CellCountInt, v.y) orelse break :intersect_cell, + .x = std.math.cast(size.CellCountInt, v.x - 1) orelse break :intersect_cell, + .y = std.math.cast(size.CellCountInt, v.y - 1) orelse break :intersect_cell, } }, v.delete, {}, @@ -281,12 +286,17 @@ pub const ImageStorage = struct { }, .intersect_cell_z => |v| intersect_cell_z: { + if (v.x <= 0 or v.y <= 0) { + log.warn("delete intersect cell coords must be at least 1", .{}); + break :intersect_cell_z; + } + self.deleteIntersecting( alloc, t, .{ .active = .{ - .x = std.math.cast(size.CellCountInt, v.x) orelse break :intersect_cell_z, - .y = std.math.cast(size.CellCountInt, v.y) orelse break :intersect_cell_z, + .x = std.math.cast(size.CellCountInt, v.x - 1) orelse break :intersect_cell_z, + .y = std.math.cast(size.CellCountInt, v.y - 1) orelse break :intersect_cell_z, } }, v.delete, v.z,