diff options
Diffstat (limited to 'test')
| -rw-r--r-- | test/device.cxx | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/test/device.cxx b/test/device.cxx index 9c489507a..1ad26890f 100644 --- a/test/device.cxx +++ b/test/device.cxx @@ -568,10 +568,18 @@ void copy(Fl_Widget *, void *data) { if (strcmp(operation, "Fl_Copy_Surface") == 0) { - Fl_Copy_Surface *copy_surf = new Fl_Copy_Surface(target->w()+10, target->h()+20); - copy_surf->set_current(); - fl_color(FL_YELLOW);fl_rectf(0,0,copy_surf->w(), copy_surf->h()); - copy_surf->draw(target, 5, 10); + Fl_Copy_Surface *copy_surf; + if (target->as_window() && !target->parent()) { + copy_surf = new Fl_Copy_Surface(target->as_window()->decorated_w(), target->as_window()->decorated_h()); + copy_surf->set_current(); + copy_surf->draw_decorated_window(target->as_window(), 0, 0); + } + else { + copy_surf = new Fl_Copy_Surface(target->w()+10, target->h()+20); + copy_surf->set_current(); + fl_color(FL_YELLOW);fl_rectf(0,0,copy_surf->w(), copy_surf->h()); + copy_surf->draw(target, 5, 10); + } delete copy_surf; Fl_Display_Device::display_device()->set_current(); } |
