summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CHANGES1
-rw-r--r--fluid/fluid.cxx8
2 files changed, 9 insertions, 0 deletions
diff --git a/CHANGES b/CHANGES
index e00ac7b8f..4cddc8a63 100644
--- a/CHANGES
+++ b/CHANGES
@@ -1,5 +1,6 @@
CHANGES IN FLTK 1.3.0
+ - Fluid printing used wrong colors under Windows (STR #2195)
- Updated documentation for Fl_Input_
- Fixed fl_draw_image to obey the alpha channel, hoping that
this has no adverse effect on existing software (OS X only)
diff --git a/fluid/fluid.cxx b/fluid/fluid.cxx
index 575541dbe..fb48bcd33 100644
--- a/fluid/fluid.cxx
+++ b/fluid/fluid.cxx
@@ -1018,6 +1018,14 @@ void print_menu_cb(Fl_Widget *, void *) {
win = (Fl_Window *)(windows[winpage]->o);
pixels = windows[winpage]->read_image(w, h);
+ // Swap colors: FLTK uses R-G-B --> Windows GDI uses B-G-R
+
+ { uchar *p = pixels;
+ for (int i=0; i<w*h; i++, p+=3) {
+ uchar temp = p[0]; p[0] = p[2]; p[2] = temp;
+ }
+ }
+
// Figure out the window size, first at 100 PPI and then scaled
// down if that is too big...
ww = w * xdpi / 100;