diff options
author | Ian Fan <ianfan0@gmail.com> | 2019-02-28 12:02:14 +0000 |
---|---|---|
committer | emersion <contact@emersion.fr> | 2019-02-28 18:31:52 +0100 |
commit | 416c6ecb99f90a7c84cce0b106401652692a4681 (patch) | |
tree | ad40376c5c9369948d493729a68cea2c68cd3b1f | |
parent | 6728db28a21d46faf44a6584259c35eed01bce1d (diff) |
tray: fix pixmap colors
by converting from network byte order to host byte order
-rw-r--r-- | swaybar/tray/item.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/swaybar/tray/item.c b/swaybar/tray/item.c index 4fa6c97b..027b3001 100644 --- a/swaybar/tray/item.c +++ b/swaybar/tray/item.c @@ -1,4 +1,5 @@ #define _POSIX_C_SOURCE 200809L +#include <arpa/inet.h> #include <cairo.h> #include <stdbool.h> #include <stdlib.h> @@ -76,7 +77,12 @@ static int read_pixmap(sd_bus_message *msg, struct swaybar_sni *sni, struct swaybar_pixmap *pixmap = malloc(sizeof(struct swaybar_pixmap) + npixels); pixmap->size = height; - memcpy(pixmap->pixels, pixels, npixels); + + // convert from network byte order to host byte order + for (int i = 0; i < height * width; ++i) { + ((uint32_t *)pixmap->pixels)[i] = ntohl(((uint32_t *)pixels)[i]); + } + list_add(pixmaps, pixmap); } else { sway_log(SWAY_DEBUG, "%s %s: discard invalid icon w:%d h:%d", sni->watcher_id, prop, width, height); |