@elextr
The problem is the use of binary floating point fractions to represent whole numbers with differing resolutions (a GdkColor has 16 bits per component, `#RRGGBB` has only 8)
Exactly. But GTK+ does this conversion as well — they too have a [`scale_round`](https://git.gnome.org/browse/gtk+/tree/gtk/gtkcolorsel.c?h=gtk-2-24&id=c...) function, and they use the formula that is commented out in Geany.
the `utils_scale_round` was probably changed because the first equation does not handle out of range values.
The first equation is supposed to operate on doubles in the range of 0..1 (GDK’s internal representation, same as in `GdkRGBA` in GTK+3). We can force `color->red` to 0..1 with `color->red / 65535.0`.