diff options
Diffstat (limited to 'src/drivers/Quartz')
| -rw-r--r-- | src/drivers/Quartz/Fl_Quartz_Graphics_Driver.cxx | 14 | ||||
| -rw-r--r-- | src/drivers/Quartz/Fl_Quartz_Graphics_Driver_font.cxx | 6 |
2 files changed, 17 insertions, 3 deletions
diff --git a/src/drivers/Quartz/Fl_Quartz_Graphics_Driver.cxx b/src/drivers/Quartz/Fl_Quartz_Graphics_Driver.cxx index f1b159960..6fdc3461e 100644 --- a/src/drivers/Quartz/Fl_Quartz_Graphics_Driver.cxx +++ b/src/drivers/Quartz/Fl_Quartz_Graphics_Driver.cxx @@ -18,7 +18,7 @@ #include "../../config_lib.h" -#include "Fl_Quartz_Graphics_Driver.h" +#include "Fl_Quartz_Graphics_Driver.H" /* Reference to the current CGContext For back-compatibility only. The preferred procedure to get this reference is @@ -70,6 +70,18 @@ void Fl_Quartz_Graphics_Driver::copy_offscreen(int x,int y,int w,int h,Fl_Offscr CGDataProviderRelease(src_bytes); } +void Fl_Graphics_Driver::add_rectangle_to_region(Fl_Region r, int X, int Y, int W, int H) { + CGRect arg = fl_cgrectmake_cocoa(X, Y, W, H); + int j; // don't add a rectangle totally inside the Fl_Region + for(j = 0; j < r->count; j++) { + if(CGRectContainsRect(r->rects[j], arg)) break; + } + if( j >= r->count) { + r->rects = (CGRect*)realloc(r->rects, (++(r->count)) * sizeof(CGRect)); + r->rects[r->count - 1] = arg; + } +} + // // End of "$Id$". // diff --git a/src/drivers/Quartz/Fl_Quartz_Graphics_Driver_font.cxx b/src/drivers/Quartz/Fl_Quartz_Graphics_Driver_font.cxx index 48e2c8f19..7e0b22dec 100644 --- a/src/drivers/Quartz/Fl_Quartz_Graphics_Driver_font.cxx +++ b/src/drivers/Quartz/Fl_Quartz_Graphics_Driver_font.cxx @@ -580,7 +580,8 @@ if (fl_mac_os_version >= Fl_X::CoreText_threshold) { // activate the current GC iSize = sizeof(CGContextRef); iTag = kATSUCGContextTag; - iValuePtr = &gc_; + CGContextRef value = (CGContextRef)fl_graphics_driver->gc(); + iValuePtr = &value; ATSUSetLayoutControls(layout, 1, &iTag, &iSize, &iValuePtr); // now measure the bounding box err = ATSUSetTextPointerLocation(layout, txt, kATSUFromTextBeginning, n, n); @@ -657,7 +658,8 @@ else { // activate the current GC iSize = sizeof(CGContextRef); iTag = kATSUCGContextTag; - iValuePtr = &gc_; + CGContextRef value = (CGContextRef)gc(); + iValuePtr = &value; ATSUSetLayoutControls(layout, 1, &iTag, &iSize, &iValuePtr); // now measure the bounding box err = ATSUSetTextPointerLocation(layout, txt, kATSUFromTextBeginning, n, n); |
