Commit Graph

1747 Commits

Author SHA1 Message Date
ManoloFLTK
c340c4a2bd Fix "Minor drawing artifact at scale 200% under X11 session" (#1243) 2025-04-03 11:28:02 +02:00
ManoloFLTK
d756076644 Fix: Windows: Clipboard gets stuck when text is copied while window is hidden (#1233) 2025-03-25 17:31:25 +01:00
Albrecht Schlosser
1ccafa83b2 Remove obsolete build option 'FLTK_OPTION_STD'
This option is no longer needed since FLTK 1.5 always requires C++11.
2025-03-19 14:44:16 +01:00
ManoloFLTK
4b07ab391a Fix "FLTK apps broken under LabWC compositor" (#1231) 2025-03-19 14:09:57 +01:00
ManoloFLTK
3f4712957c Wayland: improve support of screen removal while FLTK runs 2025-03-18 18:17:49 +01:00
ManoloFLTK
622c1f1db8 Wayland: fix unsetting fullscreen state for window created fullscreen
In some multi-screen settings, the un-fullscreened window would leave its screen
but would not enter any screen.
2025-03-18 18:09:23 +01:00
ManoloFLTK
c2a4e2ca5c Fix "Inconsistent FL_FULLSCREEN when creating full-screen window" (#1225)
The commit has all platforms send the FL_FULLSCREEN event when a window is created fullscreen.
2025-03-18 16:59:48 +01:00
Albrecht Schlosser
5fcca347c6 Fix comparison that's always true
... because base_dir[0] and dest_dir[0] are *signed* chars.
2025-03-17 20:28:47 +01:00
Albrecht Schlosser
719fed2b13 Windows: fix "heap-use-after-free" in home_directory_name()
Calling getenv() twice with different output vars and accessing both
later could cause "heap-use-after-free" error in some Windows versions.
The result of home_directory_name() would be unpredictable.

Found using Wine and/or MSYS2/clang/libc++ with Address Sanitizer.
2025-03-17 20:16:57 +01:00
ManoloFLTK
6b9fb46b96 Wayland: improve support of addition/removal of displays while FLTK runs 2025-03-17 14:49:17 +01:00
ManoloFLTK
ed4fded9d9 Wayland: compute work area size under MUTTER or when single display 2025-03-17 14:49:17 +01:00
Albrecht Schlosser
13a7073a1e Fix font termination bug from 2e1730d2f0 (#1221)
See also #1223, and thanks to Gonzalo for finding it.
2025-03-16 16:21:55 +01:00
Albrecht Schlosser
2e1730d2f0 Fix potential buffer overflow on Windows when loading fonts (#1221)
This commit is bigger than necessary to fix the buffer allocation but
it also prevents some unnecessary string copies: the font name is
converted from UTF-16 to UTF-8 directly in the buffer used later.

Code reformatted and clarified as well, some duplicated code was
removed.
2025-03-15 21:22:21 +01:00
ManoloFLTK
24aec69f27 Wayland: simplify handling of tall menu windows 2025-03-14 13:04:31 +01:00
ManoloFLTK
2d9cf4d83e Improve support of screen addition/removal while FLTK runs 2025-03-13 15:00:21 +01:00
ManoloFLTK
8ff7895f0e Restore support of the sway compositor destroyed by 9b5d40a 2025-03-12 18:26:55 +01:00
ManoloFLTK
5d09e5360d Under KDE V6 and Wayland, handling of taller-than-display menu windows fails (#1216) 2025-03-12 16:43:36 +01:00
ManoloFLTK
9b5d40ad97 Fix "Wayland: Huge menu hiding unexpectedly when moving a mouse (#1115)
This commit also computes work-area size for single-display settings.
2025-03-11 23:47:39 +01:00
ManoloFLTK
0941f0600a Add Fl_Darwin_System_Driver::filename_relative()
This removes the last instance in FLTK of use of #if __APPLE__ instead of the driver mechanism.
2025-03-08 16:59:02 +01:00
Matthias Melcher
daf20b86af Fixing error where std::string could be assigned NULL' 2025-03-07 15:08:06 +01:00
ManoloFLTK
7f60f019d7 Fix "fltk autotools build does not link against libXft" (#1202)
libXft was erroneously present in the link command when using Pango and Cairo.
This is fixed by disconnecting the GUI scaling code from use of Xft.

This commit also makes sure that when Wayland is used, pkg-config is available
on the build machine. This allows to remove from file CMake/options.cmake
code that was labelled with "FIXME".
2025-03-07 11:06:24 +01:00
Matthias Melcher
6acda521cc Removes the remaining references to Fl_String.
Still to do: rename fl_filename... to fl_filename..._str
and introduce into core library.
2025-03-07 01:15:57 +01:00
Matthias Melcher
063ff67fcd Fixing a couple of warnings. 2025-03-07 00:59:25 +01:00
Matthias Melcher
e8060f2a61 One more FL_String::apend fix, 2025-03-07 00:51:20 +01:00
Matthias Melcher
9cfd932d3a Replce Fl_String in Fluid with std::string.
Also fix for Linux.
2025-03-07 00:48:18 +01:00
ManoloFLTK
880636eb12 Fix "Windows: dotted lines may be drawn solid when GUI is rescaled" (#1214) 2025-03-04 16:04:10 +01:00
ManoloFLTK
257435dca0 Remove deprecated, commented-out code.
This code was used in the past to support a deprecated way to obtain the initial
value of the GUI scaling factor for the X11 platform.
2025-02-24 12:12:07 +01:00
ManoloFLTK
7ce2632bfc Fix "Wayland: resizing window may crash the program" (#1210) 2025-02-21 21:16:02 +01:00
ManoloFLTK
81a5736006 Make Fl_Cocoa_Gl_Window_Driver::capture_gl_rectangle() return a depth-4 image
This change allows to capture the rounded corners of a top-level GL window.

Also, rename Fl_Cocoa_Window_Driver::capture_decorated_window_10_5()
from capture_decorated_window_10_6() because this function uses
CGWindowListCreateImageFromArray() available from macOS 10.5.
2025-02-08 17:19:07 +01:00
ManoloFLTK
9afb35f3a6 fix macOS Sonoma/Sequoia not capturing OpenGL text on macOS - cont'd (#1197 2025-02-06 14:39:54 +01:00
ManoloFLTK
d60141bb71 fix "macOS Sonoma/Sequoia not capturing OpenGL 1 text on macOS" (#1197) 2025-02-06 12:25:39 +01:00
Albrecht Schlosser
904039c4c6 Fix typos and trailing whitespace
Also replace 'MSWindows' with 'Windows' where appropriate, leaving
only old documents like README files from 1.3 and older as-is.
2025-02-05 12:34:39 +01:00
ManoloFLTK
6e922b8005 macOS: Fix "Full screen broken on macOS in FLTK 1.3.10 (regression)" (#1192)
FLTK now supports 2 types of fullscreen modes under macOS:
1) normal macOS fullscreen mode where the menubar and titlebar appear when mouse is moved to top of screen
and the window covers one screen only;
2) multiple-screen mode that requires calling Fl_Window::fullscreen_screens() before.

This commit fixes all possible transitions between these fullscreen modes and normal window mode.
2025-01-30 11:14:17 +01:00
ManoloFLTK
00a02fbda9 Same effect as a49b5ea with less lines of code 2025-01-24 15:47:53 +01:00
ManoloFLTK
a49b5ea029 Fix "Wayland: redrawing of a surface may fail if a subsurface is being moved" (#1191)
This commit adds support of scenarios where a child window is moved while its parent is simultaneously modified.
2025-01-24 14:10:18 +01:00
ManoloFLTK
915ea80f45 Windows: replace "Arial" by "Microsoft Sans Serif" for the FL_HELVETICA font family
Users who need the old behavior for strict backwards compatibility under Windows can load the previous (Arial) font at program startup with only a few lines of code:

#ifdef _WIN32
  // reset Windows fonts to pre-1.4.2 state
  Fl::set_font(FL_HELVETICA,     " Arial");
  Fl::set_font(FL_HELVETICA + 1, "BArial");
  Fl::set_font(FL_HELVETICA + 2, "IArial");
  Fl::set_font(FL_HELVETICA + 3, "PArial");
#endif
2025-01-22 18:44:13 +01:00
ManoloFLTK
2bcfcc332d Remove incorrect use of Fl_Window::current() in Fl_Quartz_Image_Surface_Driver c'tor
Fl_Window::current() can refer to a deleted window is some scenarios
2025-01-22 18:23:39 +01:00
ManoloFLTK
02d416b0b6 Attempt to improve member function Fl_Wayland_Screen_Driver::insertion_point_location()
This makes the IM aware of the cursor movement to the right after having committed text.
2025-01-20 11:25:46 +01:00
ManoloFLTK
407567b70e Make Fl_SVG_Graphics_Driver use the C locale when writing float values - cont'd 2025-01-18 17:25:34 +01:00
ManoloFLTK
06418e4b21 Repair incorrect path in #include directive 2025-01-11 17:49:44 +01:00
ManoloFLTK
45239af178 Make Fl_SVG_Graphics_Driver use the C locale when writing float values 2025-01-11 17:45:36 +01:00
ManoloFLTK
70fff72e2d Wayland platform: fix handling of key repeats 2025-01-10 16:38:48 +01:00
ManoloFLTK
7bb8bdb1fa Fix Fl_{Wayland|Xlib}_{Copy|Image}_Surface_Driver::set_current()
Member function Fl_Cairo_Graphics_Driver::set_cairo() needs be called only to initialize the driver.
Doing it also later undoes the effect of Fl_Widget_Surface::translate() if used
when Fl_Surface_Device::pop_current() calls the overridden Fl_Surface_Device::set_current().
2025-01-10 08:20:01 +01:00
ManoloFLTK
c0c2cf7d40 Make draw to image and draw to clipboard behave equally in X11 and Wayland 2025-01-08 14:37:57 +01:00
ManoloFLTK
95c66a0488 Wayland: fix a border case in member function Fl_Wayland_Window_Driver::resize() 2024-12-26 16:10:50 +01:00
MatthiasWM
4d8a0df312 FLUID: Improve path handling on Windows. 2024-12-21 12:14:31 -06:00
Albrecht Schlosser
6784ae807c Fix compiler warnings (VS 2019)
Found with warning level: /W3
2024-12-10 23:12:22 +01:00
ManoloFLTK
56756b41c2 Remove unnecessary friend declaration 2024-12-06 10:03:14 +01:00
ManoloFLTK
e9ea17736b Fix Drawing bugs on Windows at very large scales (#1144) - cont'd 2024-12-03 15:38:46 +01:00
ManoloFLTK
981aa8c2e7 Fix: Drawing bugs on Windows at very large scales (#1144) 2024-12-02 17:46:49 +01:00