diff options
author | miseran <miseran@users.noreply.github.com> | 2021-10-12 01:46:35 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-10-11 23:46:35 +0000 |
commit | cd710f583f5ab8650fa2e41c08dc9a6332a5680f (patch) | |
tree | a9374a9dcfcc21500bdaf6dc4765ec5339243275 /image.c | |
parent | 1449bfc5e960a61438c60a67c28da6d7c5bf2c7f (diff) |
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.c | 4 |
1 files changed, 2 insertions, 2 deletions
@@ -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); |