summaryrefslogtreecommitdiff
path: root/src/drivers
diff options
context:
space:
mode:
authorManolo Gouy <Manolo>2017-04-25 12:42:22 +0000
committerManolo Gouy <Manolo>2017-04-25 12:42:22 +0000
commit2ddc89fb6167b9c28795a20318576a98783e6c46 (patch)
treed5671ffa296ae47d312a67206d8812983dc33705 /src/drivers
parentf15f4772434be30db5a718a33ada7899c39a6d9c (diff)
Add an argument to the private, virtual member function void Fl_Surface_Device::end_current_().
The X11 platform uses this argument to restore the correct clipping state after drawing to an Fl_Image_Surface object. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12226 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
Diffstat (limited to 'src/drivers')
-rw-r--r--src/drivers/GDI/Fl_GDI_Image_Surface_Driver.cxx6
-rw-r--r--src/drivers/Quartz/Fl_Quartz_Image_Surface_Driver.cxx6
-rw-r--r--src/drivers/Xlib/Fl_Xlib_Copy_Surface_Driver.cxx6
-rw-r--r--src/drivers/Xlib/Fl_Xlib_Image_Surface_Driver.cxx5
4 files changed, 12 insertions, 11 deletions
diff --git a/src/drivers/GDI/Fl_GDI_Image_Surface_Driver.cxx b/src/drivers/GDI/Fl_GDI_Image_Surface_Driver.cxx
index 933593e6d..c94d9e37e 100644
--- a/src/drivers/GDI/Fl_GDI_Image_Surface_Driver.cxx
+++ b/src/drivers/GDI/Fl_GDI_Image_Surface_Driver.cxx
@@ -3,7 +3,7 @@
//
// Draw-to-image code for the Fast Light Tool Kit (FLTK).
//
-// Copyright 1998-2016 by Bill Spitzak and others.
+// Copyright 1998-2017 by Bill Spitzak and others.
//
// This library is free software. Distribution and use rights are outlined in
// the file "COPYING" which should have been included with this file. If this
@@ -28,7 +28,7 @@
class Fl_GDI_Image_Surface_Driver : public Fl_Image_Surface_Driver {
friend class Fl_Image_Surface;
- virtual void end_current_();
+ virtual void end_current_(Fl_Surface_Device*);
public:
Fl_Surface_Device *previous;
Window pre_window;
@@ -97,7 +97,7 @@ Fl_RGB_Image* Fl_GDI_Image_Surface_Driver::image()
}
-void Fl_GDI_Image_Surface_Driver::end_current_()
+void Fl_GDI_Image_Surface_Driver::end_current_(Fl_Surface_Device*)
{
HDC gc = (HDC)driver()->gc();
RestoreDC(gc, _savedc);
diff --git a/src/drivers/Quartz/Fl_Quartz_Image_Surface_Driver.cxx b/src/drivers/Quartz/Fl_Quartz_Image_Surface_Driver.cxx
index 2404c531f..9dd722fb9 100644
--- a/src/drivers/Quartz/Fl_Quartz_Image_Surface_Driver.cxx
+++ b/src/drivers/Quartz/Fl_Quartz_Image_Surface_Driver.cxx
@@ -3,7 +3,7 @@
//
// Draw-to-image code for the Fast Light Tool Kit (FLTK).
//
-// Copyright 1998-2016 by Bill Spitzak and others.
+// Copyright 1998-2017 by Bill Spitzak and others.
//
// This library is free software. Distribution and use rights are outlined in
// the file "COPYING" which should have been included with this file. If this
@@ -27,7 +27,7 @@
class Fl_Quartz_Image_Surface_Driver : public Fl_Image_Surface_Driver {
friend class Fl_Image_Surface;
- virtual void end_current_();
+ virtual void end_current_(Fl_Surface_Device*);
public:
Window pre_window;
Fl_Quartz_Image_Surface_Driver(int w, int h, int high_res, Fl_Offscreen off);
@@ -105,7 +105,7 @@ Fl_RGB_Image* Fl_Quartz_Image_Surface_Driver::image()
return image;
}
-void Fl_Quartz_Image_Surface_Driver::end_current_()
+void Fl_Quartz_Image_Surface_Driver::end_current_(Fl_Surface_Device*)
{
fl_window = pre_window;
}
diff --git a/src/drivers/Xlib/Fl_Xlib_Copy_Surface_Driver.cxx b/src/drivers/Xlib/Fl_Xlib_Copy_Surface_Driver.cxx
index ec2d74214..138564600 100644
--- a/src/drivers/Xlib/Fl_Xlib_Copy_Surface_Driver.cxx
+++ b/src/drivers/Xlib/Fl_Xlib_Copy_Surface_Driver.cxx
@@ -3,7 +3,7 @@
//
// Copy-to-clipboard code for the Fast Light Tool Kit (FLTK).
//
-// Copyright 1998-2016 by Bill Spitzak and others.
+// Copyright 1998-2017 by Bill Spitzak and others.
//
// This library is free software. Distribution and use rights are outlined in
// the file "COPYING" which should have been included with this file. If this
@@ -28,7 +28,7 @@
class Fl_Xlib_Copy_Surface_Driver : public Fl_Copy_Surface_Driver {
friend class Fl_Copy_Surface_Driver;
- virtual void end_current_();
+ virtual void end_current_(Fl_Surface_Device*);
protected:
Fl_Offscreen xid;
Window oldwindow;
@@ -80,7 +80,7 @@ void Fl_Xlib_Copy_Surface_Driver::set_current() {
Fl_Surface_Device::set_current();
}
-void Fl_Xlib_Copy_Surface_Driver::end_current_() {
+void Fl_Xlib_Copy_Surface_Driver::end_current_(Fl_Surface_Device*) {
fl_window = oldwindow;
}
diff --git a/src/drivers/Xlib/Fl_Xlib_Image_Surface_Driver.cxx b/src/drivers/Xlib/Fl_Xlib_Image_Surface_Driver.cxx
index d98c129fb..49a84e7d8 100644
--- a/src/drivers/Xlib/Fl_Xlib_Image_Surface_Driver.cxx
+++ b/src/drivers/Xlib/Fl_Xlib_Image_Surface_Driver.cxx
@@ -27,7 +27,7 @@
class Fl_Xlib_Image_Surface_Driver : public Fl_Image_Surface_Driver {
friend class Fl_Image_Surface;
- virtual void end_current_();
+ virtual void end_current_(Fl_Surface_Device *next_current);
public:
Window pre_window;
Fl_Xlib_Image_Surface_Driver(int w, int h, int high_res, Fl_Offscreen off);
@@ -79,9 +79,10 @@ Fl_RGB_Image* Fl_Xlib_Image_Surface_Driver::image()
return image;
}
-void Fl_Xlib_Image_Surface_Driver::end_current_()
+void Fl_Xlib_Image_Surface_Driver::end_current_(Fl_Surface_Device *next_current)
{
fl_pop_clip();
+ next_current->driver()->restore_clip();
fl_window = pre_window;
}