mirror of
https://github.com/ghostty-org/ghostty.git
synced 2025-10-06 09:56:34 +00:00
terminal/kitty: delete all images ignores virtual placements
This commit is contained in:
@@ -218,19 +218,27 @@ pub const ImageStorage = struct {
|
|||||||
cmd: command.Delete,
|
cmd: command.Delete,
|
||||||
) void {
|
) void {
|
||||||
switch (cmd) {
|
switch (cmd) {
|
||||||
// TODO: virtual placeholders must not be deleted according to spec
|
.all => |delete_images| {
|
||||||
.all => |delete_images| if (delete_images) {
|
var it = self.placements.iterator();
|
||||||
// We just reset our entire state.
|
while (it.next()) |entry| {
|
||||||
self.deinit(alloc, &t.screen);
|
// Skip virtual placements
|
||||||
self.* = .{
|
switch (entry.value_ptr.location) {
|
||||||
.dirty = true,
|
.pin => {},
|
||||||
.total_limit = self.total_limit,
|
.virtual => continue,
|
||||||
};
|
}
|
||||||
} else {
|
|
||||||
// Delete all our placements
|
// Deinit the placement and remove it
|
||||||
self.clearPlacements(&t.screen);
|
const image_id = entry.key_ptr.image_id;
|
||||||
self.placements.deinit(alloc);
|
entry.value_ptr.deinit(&t.screen);
|
||||||
self.placements = .{};
|
self.placements.removeByPtr(entry.key_ptr);
|
||||||
|
if (delete_images) self.deleteIfUnused(alloc, image_id);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (delete_images) {
|
||||||
|
var image_it = self.images.iterator();
|
||||||
|
while (image_it.next()) |kv| self.deleteIfUnused(alloc, kv.key_ptr.*);
|
||||||
|
}
|
||||||
|
|
||||||
self.dirty = true;
|
self.dirty = true;
|
||||||
},
|
},
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user