sixel: scale images on both screens when zooming in/out (#141)

This fixes an issue where images on the main screen don't scale when you
increase or decrease the font size on the alt screen.
This commit is contained in:
veltza 2024-06-14 19:16:32 +03:00 committed by GitHub
parent a414f4a707
commit 546dd288c0
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

19
x.c
View File

@ -318,6 +318,7 @@ void
zoomabs(const Arg *arg) zoomabs(const Arg *arg)
{ {
#if SIXEL_PATCH #if SIXEL_PATCH
int i;
ImageList *im; ImageList *im;
#endif // SIXEL_PATCH #endif // SIXEL_PATCH
@ -328,14 +329,16 @@ zoomabs(const Arg *arg)
#endif // FONT2_PATCH #endif // FONT2_PATCH
#if SIXEL_PATCH #if SIXEL_PATCH
/* deleting old pixmaps forces the new scaled pixmaps to be created */ /* delete old pixmaps so that xfinishdraw() can create new scaled ones */
for (im = term.images; im; im = im->next) { for (im = term.images, i = 0; i < 2; i++, im = term.images_alt) {
if (im->pixmap) for (; im; im = im->next) {
XFreePixmap(xw.dpy, (Drawable)im->pixmap); if (im->pixmap)
if (im->clipmask) XFreePixmap(xw.dpy, (Drawable)im->pixmap);
XFreePixmap(xw.dpy, (Drawable)im->clipmask); if (im->clipmask)
im->pixmap = NULL; XFreePixmap(xw.dpy, (Drawable)im->clipmask);
im->clipmask = NULL; im->pixmap = NULL;
im->clipmask = NULL;
}
} }
#endif // SIXEL_PATCH #endif // SIXEL_PATCH