From b0696db39a39d9c2aadd35f74902ff22535e4d1b Mon Sep 17 00:00:00 2001 From: Manolo Gouy Date: Tue, 24 Nov 2015 14:26:52 +0000 Subject: Added new method Fl_Copy_Surface::draw_decorated_window() that copies a window to the clipboard together with its title bar and borders. This requires very little new code because the capture of window decorations is shared with the Fl_Paged_Device::print window() method. The device test program is changed to call the new method. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@10928 ea41ed52-d2ee-0310-a9c1-e6b18d33e121 --- test/device.cxx | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) (limited to 'test') 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(); } -- cgit v1.2.3