diff --git a/FL/mac.H b/FL/mac.H index 7b06458b5..4826056d1 100644 --- a/FL/mac.H +++ b/FL/mac.H @@ -163,7 +163,6 @@ public: // Quartz additions: CGContextRef gc; // graphics context (NULL when using QD) static void q_fill_context(); // fill a Quartz context with current FLTK state - static void q_clear_clipping(); // remove all clipping from a Quartz context static void q_release_context(Fl_X *x=0); // free all resources associated with fl_gc // Cocoa additions static NSOpenGLPixelFormat *mode_to_NSOpenGLPixelFormat(int mode, const int*); // computes NSOpenGLPixelFormat from Gl window's mode diff --git a/FL/porting.H b/FL/porting.H index 34ad95826..77a999317 100644 --- a/FL/porting.H +++ b/FL/porting.H @@ -98,10 +98,7 @@ public: // // Quartz additions: // CGContextRef gc; // graphics context (NULL when using QD) // static void q_fill_context(); // fill a Quartz context with current FLTK state -// static void q_clear_clipping(); // remove all clipping from a Quartz context // static void q_release_context(Fl_X *x=0); // free all resources associated with fl_gc -// static void q_begin_image(CGRect&, int x, int y, int w, int h); -// static void q_end_image(); // // Cocoa additions // static NSOpenGLPixelFormat *mode_to_NSOpenGLPixelFormat(int mode, const int*); // computes NSOpenGLPixelFormat from Gl window's mode // static NSOpenGLContext* create_GLcontext_for_window(NSOpenGLPixelFormat *pixelformat, NSOpenGLContext *shared_ctx, Fl_Window *window); diff --git a/src/Fl_cocoa.mm b/src/Fl_cocoa.mm index a4d3d499d..6c52ccb98 100644 --- a/src/Fl_cocoa.mm +++ b/src/Fl_cocoa.mm @@ -3325,14 +3325,6 @@ void Fl_X::q_fill_context() { fl_quartz_restore_line_style_(); } -// The only way to reset clipping to its original state is to pop the current graphics -// state and restore the global state. -void Fl_X::q_clear_clipping() { - if (!fl_gc) return; - CGContextRestoreGState(fl_gc); - CGContextSaveGState(fl_gc); -} - // Give the Quartz context back to the system void Fl_X::q_release_context(Fl_X *x) { if (x && x->gc!=fl_gc) return; diff --git a/src/drivers/Quartz/Fl_Quartz_Graphics_Driver_rect.cxx b/src/drivers/Quartz/Fl_Quartz_Graphics_Driver_rect.cxx index 686c66e5d..f06ef6f3d 100644 --- a/src/drivers/Quartz/Fl_Quartz_Graphics_Driver_rect.cxx +++ b/src/drivers/Quartz/Fl_Quartz_Graphics_Driver_rect.cxx @@ -269,7 +269,10 @@ void Fl_Quartz_Graphics_Driver::restore_clip() { fl_clip_state_number++; Fl_Region r = rstack[rstackptr]; if ( fl_window || fl_gc ) { // clipping for a true window or an offscreen buffer - Fl_X::q_clear_clipping(); + if (fl_gc) { + CGContextRestoreGState(fl_gc); + CGContextSaveGState(fl_gc); + } Fl_X::q_fill_context();//flip coords if bitmap context //apply program clip if (r) {