summaryrefslogtreecommitdiff
path: root/src/drivers
diff options
context:
space:
mode:
Diffstat (limited to 'src/drivers')
-rw-r--r--src/drivers/GDI/Fl_GDI_Graphics_Driver.h2
-rw-r--r--src/drivers/Quartz/Fl_Quartz_Graphics_Driver.h2
-rw-r--r--src/drivers/Xlib/Fl_Xlib_Graphics_Driver.cxx2
3 files changed, 3 insertions, 3 deletions
diff --git a/src/drivers/GDI/Fl_GDI_Graphics_Driver.h b/src/drivers/GDI/Fl_GDI_Graphics_Driver.h
index 722c7410a..6fd93dbfc 100644
--- a/src/drivers/GDI/Fl_GDI_Graphics_Driver.h
+++ b/src/drivers/GDI/Fl_GDI_Graphics_Driver.h
@@ -43,7 +43,7 @@ public:
const char *class_name() {return class_id;};
virtual int has_feature(driver_feature mask) { return mask & NATIVE; }
char can_do_alpha_blending();
- virtual void set_gc(void *ctxt) {gc = (HDC)ctxt;}
+ virtual void set_gc(void *ctxt) {if (ctxt != gc) global_gc(); gc = (HDC)ctxt;}
virtual void *get_gc() {return gc;}
// --- bitmap stuff
diff --git a/src/drivers/Quartz/Fl_Quartz_Graphics_Driver.h b/src/drivers/Quartz/Fl_Quartz_Graphics_Driver.h
index c9a6c916e..3e069040f 100644
--- a/src/drivers/Quartz/Fl_Quartz_Graphics_Driver.h
+++ b/src/drivers/Quartz/Fl_Quartz_Graphics_Driver.h
@@ -44,7 +44,7 @@ public:
static const char *class_id;
const char *class_name() {return class_id;};
virtual int has_feature(driver_feature mask) { return mask & NATIVE; }
- virtual void set_gc(void *ctxt) {gc = (CGContextRef)ctxt;}
+ virtual void set_gc(void *ctxt) {if (ctxt != gc) global_gc(); gc = (CGContextRef)ctxt; }
virtual void *get_gc() {return gc;}
char can_do_alpha_blending();
diff --git a/src/drivers/Xlib/Fl_Xlib_Graphics_Driver.cxx b/src/drivers/Xlib/Fl_Xlib_Graphics_Driver.cxx
index b9ac31eff..0a7950388 100644
--- a/src/drivers/Xlib/Fl_Xlib_Graphics_Driver.cxx
+++ b/src/drivers/Xlib/Fl_Xlib_Graphics_Driver.cxx
@@ -37,7 +37,6 @@ GC fl_gc = 0;
void Fl_Graphics_Driver::global_gc()
{
- fl_gc = (GC)get_gc();
}
@@ -57,6 +56,7 @@ Fl_Xlib_Graphics_Driver::Fl_Xlib_Graphics_Driver(void) {
fl_open_display();
// the unique GC used by all X windows
gc = XCreateGC(fl_display, RootWindow(fl_display, fl_screen), 0, 0);
+ fl_gc = gc;
}
}