ref: d6210656b8ee6e182a9f879a4089d7e6f3fdf570
parent: 4e1cc6570180381866735d7e23223f4ac4a68b08
author: Simon Tatham <anakin@pobox.com>
date: Sat Oct 3 08:28:15 EDT 2015
GTK 3 port: stop getting default bg colour from the window style. GTK3 window styles don't reliably provide one, so we have to fall back to just making one up.
--- a/gtk.c
+++ b/gtk.c
@@ -186,10 +186,26 @@
void frontend_default_colour(frontend *fe, float *output)
{
+#if !GTK_CHECK_VERSION(3,0,0)
+ /*
+ * Use the widget style's default background colour as the
+ * background for the puzzle drawing area.
+ */
GdkColor col = gtk_widget_get_style(fe->window)->bg[GTK_STATE_NORMAL];
output[0] = col.red / 65535.0;
output[1] = col.green / 65535.0;
output[2] = col.blue / 65535.0;
+#else
+ /*
+ * GTK 3 has decided that there's no such thing as a 'default
+ * background colour' any more, because widget styles might set
+ * the background to something more complicated like a background
+ * image. We don't want to get into overlaying our entire puzzle
+ * on an arbitrary background image, so we'll just make up a
+ * reasonable shade of grey.
+ */
+ output[0] = output[1] = output[2] = 0.9F;
+#endif
}
void gtk_status_bar(void *handle, char *text)