summaryrefslogtreecommitdiff
path: root/src/Fl_Copy_Surface.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'src/Fl_Copy_Surface.cxx')
-rw-r--r--src/Fl_Copy_Surface.cxx31
1 files changed, 23 insertions, 8 deletions
diff --git a/src/Fl_Copy_Surface.cxx b/src/Fl_Copy_Surface.cxx
index c95d787b2..21ad19d40 100644
--- a/src/Fl_Copy_Surface.cxx
+++ b/src/Fl_Copy_Surface.cxx
@@ -31,26 +31,41 @@ Fl_Copy_Surface_Driver *Fl_Copy_Surface_Driver::newCopySurfaceDriver(int w, int
/** the constructor */
Fl_Copy_Surface::Fl_Copy_Surface(int w, int h) : Fl_Widget_Surface(NULL) {
platform_surface = Fl_Copy_Surface_Driver::newCopySurfaceDriver(w, h);
- driver(platform_surface->driver());
+ if (platform_surface) driver(platform_surface->driver());
}
Fl_Copy_Surface::~Fl_Copy_Surface() { delete platform_surface; }
void Fl_Copy_Surface::origin(int x, int y) {platform_surface->origin(x, y);}
-void Fl_Copy_Surface::origin(int *x, int *y) {platform_surface->origin(x, y);}
+void Fl_Copy_Surface::origin(int *x, int *y) {
+ if (platform_surface) platform_surface->origin(x, y);
+}
-void Fl_Copy_Surface::set_current() {platform_surface->set_current();}
+void Fl_Copy_Surface::set_current() {
+ if (platform_surface) platform_surface->set_current();
+}
-void Fl_Copy_Surface::translate(int x, int y) {platform_surface->translate(x, y);}
+void Fl_Copy_Surface::translate(int x, int y) {
+ if (platform_surface) platform_surface->translate(x, y);
+}
-void Fl_Copy_Surface::untranslate() {platform_surface->untranslate();}
+void Fl_Copy_Surface::untranslate() {
+ if (platform_surface) platform_surface->untranslate();
+}
-int Fl_Copy_Surface::w() {return platform_surface->width;}
+int Fl_Copy_Surface::w() {return platform_surface ? platform_surface->width : 0;}
-int Fl_Copy_Surface::h() {return platform_surface->height;}
+int Fl_Copy_Surface::h() {return platform_surface ? platform_surface->height : 0;}
-int Fl_Copy_Surface::printable_rect(int *w, int *h) {return platform_surface->printable_rect(w, h);}
+int Fl_Copy_Surface::printable_rect(int *w, int *h) {
+ if (platform_surface)
+ return platform_surface->printable_rect(w, h);
+ else {
+ *w = *h = 0;
+ }
+ return 1;
+}
//
// End of "$Id$".