Commit Graph

769 Commits

Author SHA1 Message Date
ManoloFLTK
98f16ae397 Fix path to header file 2019-10-30 17:48:05 +01:00
ManoloFLTK
2f64c6a861 Concentrate source code that supports Darwin + XQuartz + fink as test platform 2019-10-30 17:25:49 +01:00
ManoloFLTK
4f8e692f30 Add default value of 0 for 1st arg of member function Fl_Printer::begin_job(). 2019-10-22 13:16:14 +02:00
ManoloFLTK
c549b7acbd X11 platform: use Gnome printer dialog when the GTK library is available at run-time
The code to determine whether the GTK library is available is now in Fl_X11_System_Driver::probe_for_GTK()
called both by Fl_Printer::begin_job() and Fl_Native_File_Chooser.
New Fl::option OPTION_PRINTER_USES_GTK allows to deactivate use of
the Gnome print dialog.

Minor change in Fl_Native_File_Chooser: GTK version 3 is searched before version 2,
whereas the search order was the opposite before.
2019-09-15 15:57:29 +02:00
ManoloFLTK
000807cc1d Fix use of Xrender extension with old, 16-bit framebuffers.
Subject "Bug in 1.4 Displaying PNG under x64 Kernel x86 app." in fltk.general
contains a report by Darren Legge that presents the problem,
and a later post stating the code modification does fix the problem.
2019-09-11 16:06:19 +02:00
ManoloFLTK
33eb87940d Fix a case when fl_read_window() did not capture subwindows correctly.
The case was under macOS with a non-GL parent window mapped to a retina display
containing a GL subwindow and if the app did not call Fl::use_high_res_GL(1).
2019-08-21 12:01:51 +02:00
ManoloFLTK
3679dd5fbd Fl_GDI_Copy_Surface_Driver: add BITMAP version of graphics to clipboard
When copying graphical data to the clipboard with Fl_Copy_Surface,
both a vectorial and a bitmap versions of the graphics are copied.
2019-07-18 17:11:03 +02:00
ManoloFLTK
af5fb2aeb3 Fl_WinAPI_Printer_Driver::end_page(): make sure rotation stops when the page ends 2019-07-13 19:50:46 +02:00
ManoloFLTK
58dad3bda2 Fl_Quartz_Copy_Surface_Driver: minor code reorganisation. 2019-07-08 08:56:07 +02:00
ManoloFLTK
71faa15432 Add support for macOS 10.15 "Catalina"
This is relatively to Catalina public beta for now.
2019-07-06 09:16:39 +02:00
ManoloFLTK
6b03d4a913 Prepare for support of macOS 10.15 Catalina
Drawing the window titlebar to a PDF context does not work with Catalina Beta.
2019-06-29 23:32:30 +02:00
ManoloFLTK
23484c30a9 Slightly simpler Fl_WinAPI_Screen_Driver::init() 2019-06-18 13:35:39 +02:00
ManoloFLTK
62bce5b50a Make FLTK Windows apps "Per-Monitor-V2 DPI Aware"
Per-Monitor V2 awareness mode is supported on Windows 10 1703 or above
and has window title bars correctly scaled on HighDPI screens.
Before this commit, FLTK Windows apps were "Per-Monitor-V1 DPI Aware".

FLTK apps detect at run-time whether the V2 mode is possible.
2019-06-16 12:00:38 +02:00
ManoloFLTK
aa9f0a6962 Move Fl_Cocoa_Window_Driver::capture_titlebar_and_borders() to Fl_Cocoa_Window_Driver.cxx from Fl_cocoa.mm 2019-06-12 10:02:11 +02:00
ManoloFLTK
94fffb701c Add one argument to Fl_Screen_Driver::read_win_rectangle()
The new argument gives the window to be captured, or NULL to indicate capture
from the current offscreen.
Calling this function becomes easier because less dependent on global variables.
2019-06-06 18:28:49 +02:00
ManoloFLTK
228f1105ac Fix in Fl_Xlib_Graphics_Driver::font_unscaled() necessary when changing drawing surfaces 2019-06-06 17:41:14 +02:00
ManoloFLTK
ad1747008c X11+Pango: fix case when function pango_font_get_glyph_extents() fails 2019-06-03 17:22:30 +02:00
ManoloFLTK
cb2d9c1212 X11+Pango: font names visible in the fonts and utf8 apps are usable for Fl::set_font(Fl_Font, const char*) 2019-06-02 17:19:35 +02:00
ManoloFLTK
e6bccc081f X11+Pango: call pango_font_description_from_string() less often
Previously, each time fl_font(fnum, fsize) was called, functions
pango_font_description_free() and pango_font_description_from_string()
would be called.

Now, pango_font_description_from_string() is called only once, the first time
an Fl_Font is used.
2019-05-30 15:28:08 +02:00
ManoloFLTK
7c4239915f Fix Fl_X11_Window_Driver::capture_titlebar_and_borders() for scaled, partially visible windows 2019-05-27 13:36:29 +02:00
ManoloFLTK
2cbc743c6a Slightly simplify Fl_X11_Window_Driver::capture_titlebar_and_borders() 2019-05-25 18:43:08 +02:00
ManoloFLTK
efbd60cb12 Restore the value of global variable fl_window 2019-05-25 17:43:18 +02:00
ManoloFLTK
0d3a374396 Call virtual member Fl_Surface_Device::end_current() when necessary
Rename member function Fl_Surface_Device::end_current_() to end_current(),
set it protected, and make it called by the destructor of all classes
derived from Fl_Surface_Device that re-implement end_current().
This way, end_current() runs equally if Fl_Surface_Device()::pop_current()
is called before or after the drawing surface is deleted.
2019-05-25 11:59:16 +02:00
ManoloFLTK
084c30381d Fix Fl_Cocoa_Printer_Driver::draw_decorated_window() for GUI scaling - cont'd 2019-05-23 21:32:27 +02:00
ManoloFLTK
294875058d Fix Fl_Cocoa_Printer_Driver::draw_decorated_window for scaled GUI.
Support for scaled GUI was missing when the window titlebar is not layer-based.
2019-05-23 16:21:21 +02:00
ManoloFLTK
b2c027fa83 Implement Fl_Quartz_Copy_Surface_Driver::draw_decorated_window()
The window title is copied in vectorial form when the titlebar is layer-backed.
2019-05-22 21:33:02 +02:00
ManoloFLTK
277cee73b0 Improve drawing of Fl_RGB_Image's to Fl_Copy_Surface on macOS 2019-05-22 13:37:12 +02:00
ManoloFLTK
9b80a38345 Support for fl_scroll() under macOS when GUI is scaled 2019-05-21 21:17:11 +02:00
ManoloFLTK
07f4fd4380 More accurate implementation of Fl_Cocoa_Window_Driver::decoration_sizes(). 2019-05-20 13:30:57 +02:00
ManoloFLTK
159572785d Remove small duplication of code 2019-05-20 13:16:31 +02:00
ManoloFLTK
e2eabd3056 Remove Fl_Cocoa_Screen_Driver::flush() that is useless 2019-05-13 15:34:26 +02:00
ManoloFLTK
61dbac62e7 Minor change in Fl_Cocoa_Window_Driver::shape(const Fl_Image*) 2019-04-30 15:18:40 +02:00
ManoloFLTK
172063b2ad macOS: yet simpler implementation of window resize and rescale. 2019-04-28 15:31:02 +02:00
ManoloFLTK
3f5580d49c macOS: better support of Fl_Window::border(int) 2019-04-20 22:01:48 +02:00
ManoloFLTK
d5943f85b9 Use the new Fl_Surface_Device::is_current() virtual function 2019-04-10 13:53:13 +02:00
ManoloFLTK
4f0a16697e Remove useless member functions Fl_XXX_Copy_Surface_Driver::w() and h() 2019-04-10 13:21:23 +02:00
ManoloFLTK
7a0bebb22f New virtual member function bool Fl_Surface_Device::is_current() 2019-04-10 13:14:04 +02:00
ManoloFLTK
0ddf5e74a9 Fix for STR 3519: the PostScript graphics driver fails with some narrow unicode characters 2019-04-09 16:26:15 +02:00
ManoloFLTK
abc8f4158f Member Fl_Cocoa_Window_Driver::window_flags_ stores now 2 flags 2019-04-07 11:24:20 +02:00
ManoloFLTK
c66caf5dce Simpler implementation of Fl_Cocoa_Window_Driver::resize() 2019-04-07 09:09:33 +02:00
ManoloFLTK
499ec5c291 Replace static void Fl_Window_Driver::default_icons() by virtual Fl_Screen_Driver::default_icons() 2019-03-25 18:47:29 +01:00
ManoloFLTK
6a807716a7 Rename fl_compute_macKeyLookUp() to Fl_Darwin_System_Driver::compute_macKeyLookUp() 2019-03-25 13:16:27 +01:00
ManoloFLTK
e659355052 Remove unneeded #include directive 2019-03-12 18:39:17 +01:00
ManoloFLTK
4e2ba8c888 X11 platform: follow when the OS changes the Xft.dpi resource
Under gnome, Tweaks -> Fonts ->Scaling factor allows to change
the size of all fonts handled by gnome.
With that change, FLTK apps obey to changes to Xft.dpi.
2019-03-11 16:20:29 +01:00
ManoloFLTK
347581e3b4 X11 platform: use the Xft.dpi resource as basis for the initial GUI scaling factor
Previously, the display scaling factor value under gnome was sought in the gnome
database using the gnome_scale_factor() function. But that information is no
longer present.
File $HOME/.config/monitors.xml was also used to get that information.
Using the Xft.dpi X resource is simpler and more general because it's
effective both for gnome and KDE.
2019-03-10 08:42:18 +01:00
ManoloFLTK
d988930461 Process env var FLTK_SCALING_FACTOR consistently across platforms.
The procedure to set screen scaling factors becomes:
1) each screen scaling factor is set to 1
2) the OS is queried according to each platform to get screen scaling factor
values
3) The value of FLTK_SCALING_FACTOR, if present, is used to multiply
scaling factors
2019-03-06 11:10:37 +01:00
ManoloFLTK
a7a3c5b429 Fix error in Fl_WinAPI_Screen_Driver::screen_work_area() when screen is scaled. 2019-02-28 18:06:32 +01:00
ManoloFLTK
a0510495ea Rename member todelete_ of struct Fl_Window_Driver::shape_data_type to effective_bitmap_ 2019-02-23 10:30:48 +01:00
ManoloFLTK
21c0134931 New member function const Fl_Image* Fl_Window::shape() replaces int Fl_Window::is_shaped()
The new function allows to get the window's shaping image
and delete it after use, if appropriate.
2019-02-23 10:21:27 +01:00
ManoloFLTK
f9255e375c Remove compilation warning with -Wunused-result
Warning was: ignoring return value of ‘char* fgets(char*, int, FILE*)’
2019-02-21 15:19:02 +01:00