aboutsummaryrefslogtreecommitdiffstats
path: root/image.c
diff options
context:
space:
mode:
authormiseran <miseran@users.noreply.github.com>2021-10-12 01:46:35 +0200
committerGitHub <noreply@github.com>2021-10-12 01:46:35 +0200
commitcd710f583f5ab8650fa2e41c08dc9a6332a5680f (patch)
treea9374a9dcfcc21500bdaf6dc4765ec5339243275 /image.c
parent1449bfc5e960a61438c60a67c28da6d7c5bf2c7f (diff)
downloadnsxiv-cd710f583f5ab8650fa2e41c08dc9a6332a5680f.tar.zst
Fix behaviour when TrueColor / 24 bit depth is not available (#114)
* Fix regression introduced in c7ca547 which made nsxiv not start in non-TrueColor X server. * Introduce a new fix for embedding into tabbed-alpha. * Fixes a visual glitch from original sxiv when drawing transparent images in 8 bit depth. In 8 bit PseudoColor, `.pixel` is just an index into the 256 defined colors and thus trying to extract rgb bits from it would result in visual glitch. The values `.color.red` on the other hand and so on are always integers between 0 and 0xFFFF representing the color as expected. * Use XColor for win_bg/fg and mrk_fg Co-authored-by: NRK <nrk@disroot.org>
Diffstat (limited to 'image.c')
-rw-r--r--image.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/image.c b/image.c
index 0349d12..69f9049 100644
--- a/image.c
+++ b/image.c
@@ -577,7 +577,7 @@ void img_render(img_t *img)
int sx, sy, sw, sh;
int dx, dy, dw, dh;
Imlib_Image bg;
- unsigned long c;
+ XColor c;
win = img->win;
img_fit(img);
@@ -646,7 +646,7 @@ void img_render(img_t *img)
imlib_image_put_back_data(data);
} else {
c = win->win_bg;
- imlib_context_set_color(c >> 16 & 0xFF, c >> 8 & 0xFF, c & 0xFF, 0xFF);
+ imlib_context_set_color(c.red >> 8, c.green >> 8, c.blue >> 8, 0xFF);
imlib_image_fill_rectangle(0, 0, dw, dh);
}
imlib_blend_image_onto_image(img->im, 0, sx, sy, sw, sh, 0, 0, dw, dh);