Document that function fl_scroll() doesn't work OK with non integral scaling factors

and explain how to get correct results.
This commit is contained in:
ManoloFLTK
2024-12-02 12:04:24 +01:00
parent 557a5e4fd0
commit 9a7f4bdfce
+6
View File
@@ -32,6 +32,12 @@
The contents of the rectangular area is first shifted by \p dx The contents of the rectangular area is first shifted by \p dx
and \p dy pixels. The \p draw_area callback is then called for and \p dy pixels. The \p draw_area callback is then called for
every newly exposed rectangular area. every newly exposed rectangular area.
\warning With FLTK 1.4 and above, it's recommended to put graphical elements in an Fl_Scroll
widget rather than use function fl_scroll() to update those elements. That's because fl_scroll()
may not produce a pixel-accurate result when the GUI scaling factor value is not a multiple of 100%.
Alternatively, use fl_scroll() when the scaling factor value is a multiple of 100% and perform a
full redraw of the graphical elements otherwise. Statement <tt>float s = Fl::screen_scale(win->screen_num());</tt>
gives the current scaling factor value given Fl_Window *win.
*/ */
void fl_scroll(int X, int Y, int W, int H, int dx, int dy, void fl_scroll(int X, int Y, int W, int H, int dx, int dy,
void (*draw_area)(void*, int,int,int,int), void* data) void (*draw_area)(void*, int,int,int,int), void* data)