summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/device.cxx16
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();
}