From b3af5591ca7f247b1233ce733c0c27fe9e635f1a Mon Sep 17 00:00:00 2001 From: Manolo Gouy Date: Sun, 3 Apr 2016 08:36:19 +0000 Subject: Stop using fl_read_image() to read window decoration. Use instead an API internal to each platform code base. fl_read_image() is used only for its documented feature of reading inside the current window or an offscreen buffer. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11518 ea41ed52-d2ee-0310-a9c1-e6b18d33e121 --- src/drivers/X11/Fl_X11_Window_Driver.cxx | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) (limited to 'src/drivers') diff --git a/src/drivers/X11/Fl_X11_Window_Driver.cxx b/src/drivers/X11/Fl_X11_Window_Driver.cxx index 38b011249..06343fb1b 100644 --- a/src/drivers/X11/Fl_X11_Window_Driver.cxx +++ b/src/drivers/X11/Fl_X11_Window_Driver.cxx @@ -22,6 +22,7 @@ #include "../Xlib/Fl_Xlib_Graphics_Driver.H" #include +#include #include #include #include @@ -378,8 +379,8 @@ void Fl_X11_Window_Driver::free_icons() { Returned images can be deleted after use. Their depth and size may be platform-dependent. The top and bottom images extend from left of the left border to right of the right border. - On the X11 platform, this function exploits a feature of fl_read_image() which, when called - with negative 4th argument, captures the window decoration. + This function exploits a feature of Fl_X11_Screen_Driver::read_win_rectangle() which, + when called with negative 4th argument, captures the window decoration. */ void Fl_X11_Window_Driver::capture_titlebar_and_borders(Fl_Shared_Image*& top, Fl_Shared_Image*& left, Fl_Shared_Image*& bottom, Fl_Shared_Image*& right) { @@ -404,21 +405,21 @@ void Fl_X11_Window_Driver::capture_titlebar_and_borders(Fl_Shared_Image*& top, F fl_window = parent; uchar *rgb; if (htop) { - rgb = fl_read_image(NULL, 0, 0, - (w() + 2 * wsides), htop); + rgb = Fl::screen_driver()->read_win_rectangle(NULL, 0, 0, - (w() + 2 * wsides), htop, 0); r_top = new Fl_RGB_Image(rgb, w() + 2 * wsides, htop, 3); r_top->alloc_array = 1; top = Fl_Shared_Image::get(r_top); } if (wsides) { - rgb = fl_read_image(NULL, 0, htop, -wsides, h()); + rgb = Fl::screen_driver()->read_win_rectangle(NULL, 0, htop, -wsides, h(), 0); r_left = new Fl_RGB_Image(rgb, wsides, h(), 3); r_left->alloc_array = 1; left = Fl_Shared_Image::get(r_left); - rgb = fl_read_image(NULL, w() + wsides, htop, -wsides, h()); + rgb = Fl::screen_driver()->read_win_rectangle(NULL, w() + wsides, htop, -wsides, h(), 0); r_right = new Fl_RGB_Image(rgb, wsides, h(), 3); r_right->alloc_array = 1; right = Fl_Shared_Image::get(r_right); - rgb = fl_read_image(NULL, 0, htop + h(), -(w() + 2*wsides), hbottom); + rgb = Fl::screen_driver()->read_win_rectangle(NULL, 0, htop + h(), -(w() + 2*wsides), hbottom, 0); r_bottom = new Fl_RGB_Image(rgb, w() + 2*wsides, hbottom, 3); r_bottom->alloc_array = 1; bottom = Fl_Shared_Image::get(r_bottom); -- cgit v1.2.3