summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Drake <tlsa@netsurf-browser.org>2013-02-11 00:41:22 +0000
committerMichael Drake <tlsa@netsurf-browser.org>2013-02-11 00:41:22 +0000
commit99fc8d3f0dd0f9889ced412d3b855878f525907a (patch)
treedcf7796d4d2f36f96cb63a412b6ffdd37c54a9a4
parente4e2917787ad58874419c97c70a68fcbdbeb9ca0 (diff)
downloadnetsurf-99fc8d3f0dd0f9889ced412d3b855878f525907a.tar.gz
netsurf-99fc8d3f0dd0f9889ced412d3b855878f525907a.tar.bz2
Move html textarea's selection colour chooser to plot_style.h, as it could be used elsewhere.
-rw-r--r--desktop/plot_style.h8
-rw-r--r--render/box_textarea.c9
2 files changed, 10 insertions, 7 deletions
diff --git a/desktop/plot_style.h b/desktop/plot_style.h
index 8f57915a9..b4e7ab8f9 100644
--- a/desktop/plot_style.h
+++ b/desktop/plot_style.h
@@ -64,6 +64,14 @@
(((((c0 >> 8) & 0xff) + ((c1 >> 8) & 0xff)) >> 1) << 8) | \
(((( c0 & 0xff) + ( c1 & 0xff)) >> 1) << 0)
+/* Choose either black or white, depending on which is furthest from the
+ * percieved lightness of the supplied colour, c0. */
+#define colour_to_bw_furthest(c0) \
+ ((((((c0 & 0x0000ff) * 77) >> 8) + \
+ (((c0 & 0x00ff00) * 151) >> 16) + \
+ (((c0 & 0xff0000) * 28) >> 24)) > \
+ (0xff / 2)) ? 0x000000 : 0xffffff)
+
/* get a bitmap pixel (image/bitmap.h) into a plot colour */
#define pixel_to_colour(b) \
b[0] | (b[1] << 8) | (b[2] << 16) | (b[3] << 24)
diff --git a/render/box_textarea.c b/render/box_textarea.c
index 7f38ade5e..3109904d0 100644
--- a/render/box_textarea.c
+++ b/render/box_textarea.c
@@ -266,14 +266,9 @@ bool box_textarea_create_textarea(html_content *html,
ta_setup.text = fstyle;
ta_setup.text.background = NS_TRANSPARENT;
/* Make selected text either black or white, as gives greatest contrast
- * with background colour. (Calc lightness of background colour and
- * choose the one the lightness is furthest from.) */
- ta_setup.selected_text =
- (((((fstyle.foreground & 0x0000ff) ) * 19) / 64 +
- (((fstyle.foreground & 0x00ff00) >> 8) * 38) / 64 +
- (((fstyle.foreground & 0xff0000) >> 16) * 7) / 64) >
- (0xff / 2)) ? 0x000000 : 0xffffff;
+ * with background colour. */
ta_setup.selected_bg = fstyle.foreground;
+ ta_setup.selected_text = colour_to_bw_furthest(ta_setup.selected_bg);
/* Hand reference to dom text over to gadget */
gadget->data.text.initial = dom_text;