diff options
| author | Manolo Gouy <Manolo> | 2017-08-24 12:40:29 +0000 |
|---|---|---|
| committer | Manolo Gouy <Manolo> | 2017-08-24 12:40:29 +0000 |
| commit | c7405a22a8bb618e51cbaa9f4076822af1b2c908 (patch) | |
| tree | 91a04b439cee694e64b12f53eadeca04fc9b5863 /src/drivers | |
| parent | c2d5cf40672c0d488a7bb67ab81fa567de1169fe (diff) | |
X11 platform: cleaner implementation of changing the active drawing surface and maintaining clip regions.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12396 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
Diffstat (limited to 'src/drivers')
| -rw-r--r-- | src/drivers/Xlib/Fl_Xlib_Graphics_Driver.H | 1 | ||||
| -rw-r--r-- | src/drivers/Xlib/Fl_Xlib_Graphics_Driver.cxx | 4 | ||||
| -rw-r--r-- | src/drivers/Xlib/Fl_Xlib_Image_Surface_Driver.cxx | 3 |
3 files changed, 5 insertions, 3 deletions
diff --git a/src/drivers/Xlib/Fl_Xlib_Graphics_Driver.H b/src/drivers/Xlib/Fl_Xlib_Graphics_Driver.H index edff7f6f9..ccfa7dc48 100644 --- a/src/drivers/Xlib/Fl_Xlib_Graphics_Driver.H +++ b/src/drivers/Xlib/Fl_Xlib_Graphics_Driver.H @@ -58,6 +58,7 @@ private: unsigned depth_; // depth of translation stack int stack_x_[20], stack_y_[20]; // translation stack allowing cumulative translations int line_delta_; + virtual void set_current_(); protected: virtual void draw_unscaled(Fl_Pixmap *pxm, float s, int XP, int YP, int WP, int HP, int cx, int cy); virtual void draw_unscaled(Fl_Bitmap *pxm, float s, int XP, int YP, int WP, int HP, int cx, int cy); diff --git a/src/drivers/Xlib/Fl_Xlib_Graphics_Driver.cxx b/src/drivers/Xlib/Fl_Xlib_Graphics_Driver.cxx index 44d6b127e..9b4138055 100644 --- a/src/drivers/Xlib/Fl_Xlib_Graphics_Driver.cxx +++ b/src/drivers/Xlib/Fl_Xlib_Graphics_Driver.cxx @@ -273,6 +273,10 @@ void Fl_Xlib_Graphics_Driver::untranslate_all() { // undoes previous translate_a pop_matrix(); } +void Fl_Xlib_Graphics_Driver::set_current_() { + restore_clip(); +} + // // End of "$Id$". // diff --git a/src/drivers/Xlib/Fl_Xlib_Image_Surface_Driver.cxx b/src/drivers/Xlib/Fl_Xlib_Image_Surface_Driver.cxx index d4e49b513..0d3383cc5 100644 --- a/src/drivers/Xlib/Fl_Xlib_Image_Surface_Driver.cxx +++ b/src/drivers/Xlib/Fl_Xlib_Image_Surface_Driver.cxx @@ -68,7 +68,6 @@ void Fl_Xlib_Image_Surface_Driver::set_current() { Fl_Surface_Device::set_current(); pre_window = fl_window; fl_window = offscreen; - fl_push_no_clip(); } void Fl_Xlib_Image_Surface_Driver::translate(int x, int y) { @@ -87,8 +86,6 @@ Fl_RGB_Image* Fl_Xlib_Image_Surface_Driver::image() 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; } |
