Commit Graph

7555 Commits

Author SHA1 Message Date
ManoloFLTK
8bcf65fa66 Fix issue under Wayland when erasing overlay rectangle (#1285) 2025-08-05 07:38:57 +02:00
ManoloFLTK
5becf68c18 Fix "Callback or event on minimize of the main window " for Wayland (#1288) 2025-08-04 15:54:14 +02:00
ManoloFLTK
50184f9946 Fix "Callback or event on minimize of the main window" for X11 platform (#1288) 2025-08-03 09:03:12 +02:00
Albrecht Schlosser
87e299e776 Update documentation (typos and minor corrections) 2025-07-26 13:44:41 +02:00
Albrecht Schlosser
b00ae1eee4 Fix documentation of fl_overlay_clear and fl_overlay_rect
The code example in fl_overlay_clear() wouldn't work.
2025-07-24 15:40:18 +02:00
MatthiasWM
890f538bb5 Generate better FL_LEAVE coordinates on Windows (#87)
Use the current mouse position to estimate the
position where the mouse left the window. Not
perfect, but much better than repeating the last
move coordinates.
2025-07-16 17:39:07 +02:00
ManoloFLTK
86f2904858 Remove warnings triggered by -Wredundant-decls (#1277) 2025-07-16 15:13:14 +02:00
ManoloFLTK
e444371b18 Fix: Redundant redeclaration of Fl_Shortcut fl_old_shortcut(const char*) (#1277) 2025-07-15 07:21:44 +02:00
ManoloFLTK
e581f50e9a Wayland: account for new Wayfire compositor - cont'd 2025-07-10 08:18:35 +02:00
ManoloFLTK
83565dd880 Wayland: account for new Wayfire compositor 2025-07-09 16:51:17 +02:00
Matthias Melcher
5a574e8d9d Improve Fl_Button event handling documentation (#1267) 2025-07-09 11:42:33 +02:00
Albrecht Schlosser
5d68428a00 Fix trailing whitespace and convert a few tabs to spaces
... according to CMP
2025-07-08 15:25:14 +02:00
Matthias Melcher
2803f70f58 #1114: Ensure minimum height of last block in Fl_Help_View 2025-07-08 15:19:21 +02:00
Matthias Melcher
5c33d3051f Fl_Help_View: Subclassing minor comment chages 2025-07-07 15:47:00 +02:00
Albrecht Schlosser
bdde3e5d2b Fl_Table_Row: replace private class CharVector with std::vector
FL/Fl_Table_Row.H: use `std::vector<uint8_t> _rowselect;`,
  remove declaration of class `CharVector`

src/Fl_Table_Row.cxx: remove implementation of class `CharVector`,
  simplify loops (use range based for loops),
  use resize() to change vector size.

Unify copyright year of Fl_Table* headers and implementation.
2025-07-07 14:55:55 +02:00
Albrecht Schlosser
51cca24d04 Add missing and remove unnecessary #include statements
Note: if user code requires a header, then user code must #include it.
2025-07-07 11:58:49 +02:00
Matthias Melcher
e12c42a0cd Fl_Help_View: Revert some changes 2025-07-05 19:47:03 +02:00
Matthias Melcher
ccc294f9f7 Fl_Help_View: Thin out header file
- remove unnecessary include.
2025-07-05 17:48:30 +02:00
Matthias Melcher
5fb38897b7 Fl_Help_View: Refactor to use PIMPL
- using a Pointer to Implementation instead of having
a huge Fl_Help_View class. This improves build speed
(smaller header fiel) and allows us to fix the
implementation while keeping the ABI unchanged.
2025-07-05 17:35:41 +02:00
Matthias Melcher
fa22585bbb Fl_Help_View: Fix writing into empty std::string 2025-07-05 17:28:45 +02:00
Matthias Melcher
3b32463dc9 Fl_Help_View: Improve comment 2025-07-05 16:03:14 +02:00
Matthias Melcher
5d9961c1c3 Fl_Help_View: Finl formatting and documentation
- restructure header file
- sort source file reflecting header
- documentation of text selection
2025-07-05 15:25:11 +02:00
Matthias Melcher
d3c6135c08 Fl_Help_View: Improve selection
- users can now select text in multiple Help Views
- users can now select text that is also a link
- selections draws dimmed if not focused
2025-07-05 13:42:28 +02:00
Matthias Melcher
53665045d3 Fl_Help_View: Changes some more formatting
- streamlines callbacks
- removes unused function
- header file not finished yet!
2025-07-04 16:31:59 +02:00
Albrecht Schlosser
d5220370b1 Remove private class Fl_Int_Vector
This class was used in pre-C++11 versions (up to 1.4.x) and is no
longer needed.
2025-07-03 22:37:49 +02:00
Matthias Melcher
4e1450d750 Fl_Help_View: Refactoring static sizes
- replaced Fl_Int_Vector with std::vector<int>
- removed static buffers in path arrangement methods
- NULL to nullptr
2025-07-03 19:58:56 +02:00
Matthias Melcher
f0fa9fc8f8 Fl_Help_View: Improve formatting and Doxygen comments 2025-07-03 13:55:29 +02:00
Matthias Melcher
872e2b8fb6 Fl_Help_View: Refactor more strings and dynamic lists. 2025-07-03 00:39:53 +02:00
Matthias Melcher
5919dbb6af Fl_Help_View: Reformat and comments 2025-07-02 22:59:46 +02:00
Matthias Melcher
69431ef51f Fl_Help_View: Refactor Fl_Help_Link to C++11 2025-07-02 20:45:54 +02:00
Matthias Melcher
e4d43a3951 Help_View: Improve target line management 2025-07-02 17:54:43 +02:00
Albrecht Schlosser
a05ae33e20 Remove deprecated methods and functions
In FLTK 1.5 we remove most (but not all) methods and functions that
were deprecated in FLTK 1.3 or earlier.
2025-07-02 17:19:52 +02:00
Matthias Melcher
5bf1333f07 Set Fl_Menu_Item::setonly() to deprecated
for the version without the starting argument.
2025-07-02 15:42:46 +02:00
Matthias Melcher
66dde26469 Better handling of special case when scaling image
When scaling image down by 2, 4, 8, etc., there is no
sense in calling the bilinear scaling.
2025-07-01 13:22:14 +02:00
Matthias Melcher
42b2388610 Improve bilinear image scaling below 50%
The original code can not scale well below 50%. To improve
filtering in a fast way, huge images are scaled by powers of
two before fine scaling using the original bilinear scale.
2025-06-30 14:56:26 +02:00
MatthiasWM
acd77fa8dc Fix Windows compile error from previous commit. 2025-06-19 17:54:31 +02:00
Matthias Melcher
2a7b3c81c1 Ensure that the 'awake' pipe does not overflow (#1263) 2025-06-19 16:04:56 +02:00
Matthias Melcher
eadea6a992 Update Fl::await() and friends API and documentation
This creates the base for #1263, but does not fix it yet.
2025-06-19 15:33:38 +02:00
ManoloFLTK
3d13dfefa9 Fix in window titlebar capture to support macOS 26 Tahoe 2025-06-11 18:43:03 +02:00
ManoloFLTK
ac294f7348 Fix "Selecting menus from the menubar under Wayland when in fullscreen" (#1264) 2025-06-10 17:03:29 +02:00
Albrecht Schlosser
340caa2dc3 Fix usage of 'volatile' in src/Fl_JPEG_Image.cxx (#1207)
- allocate a new struct 'load_stat' on the heap
- use struct load_stat to open image file (fp) and for error counters

The previous fix of #1207 unfortunately decremented volatile variables
which caused (plausible) compiler warnings by clang.
2025-06-06 16:10:35 +02:00
ManoloFLTK
5293beea6f Restore building for Linux w/o cairo and w/o xft 2025-06-05 15:56:09 +02:00
Albrecht Schlosser
7897bbc04f Fix several compiler warnings [-Wextra-semi]
Example:
  warning: extra ‘;’ after in-class function definition [-Wextra-semi]

Also: replace 'FL_OVERRIDE' with 'override' in all modified files
2025-06-05 09:50:07 +02:00
ManoloFLTK
e2683f36d4 macOS: protect uses of __block by #if defined(__BLOCKS__) condition 2025-06-03 18:27:45 +02:00
ManoloFLTK
b371c1185c Add build option FLTK_USE_DBUS to allow build w/o dbus (PR #1252)
Thanks to @lanodan for most of the source code.
2025-06-03 16:19:27 +02:00
ManoloFLTK
85be70efa5 Restore use of build option FLTK_USE_POLL 2025-06-03 08:23:04 +02:00
ManoloFLTK
9a5e3b95b8 Fix for #1260 - part 4: fix when menu button is in subwindow under Wayland 2025-05-30 21:38:13 +02:00
ManoloFLTK
c13594f999 Fix for #1260 - part3: fix exploration of menu button window under Wayland 2025-05-30 17:59:16 +02:00
ManoloFLTK
86a8d138f2 Fix for #1260 - part2: improve position of menu button window under Wayland 2025-05-30 16:44:26 +02:00
ManoloFLTK
ac0a5d52cb Wayland: fix "A flag to set how menus should show up" (#1260) 2025-05-29 17:42:16 +02:00
Albrecht Schlosser
3bc379bc4e Fix usage of FLTK_BACKEND_WAYLAND and FLTK_USE_WAYLAND
- Do not change or remove the cache variable FLTK_BACKEND_WAYLAND:
  this is an option set (and must only be changed) by the user.
- CMake/options.cmake: check Wayland availability if option
  FLTK_BACKEND_WAYLAND is ON and set the result variable
  FLTK_USE_WAYLAND accordingly.
- Replace FLTK_BACKEND_WAYLAND with FLTK_USE_WAYLAND everywhere
  else, except as noted above: in options.cmake.
2025-05-28 21:13:10 +02:00
ManoloFLTK
7347d6e2f6 Add change necessary to support new class Fl_Native_Input, possibly as addon
The added if() statement's condition is always false in FLTK before addition to it
of class Fl_Native_Input. Therefore, the present modification is effectless unless
this new class is added to the library, either in its core or as an addon.
2025-05-21 08:08:18 +02:00
Albrecht Schlosser
3114ef0e2f Fix doxygen warnings
1. src/Fl_add_idle.cxx: add missing parameter docs

2. FL/fl_draw.H: rename 1st parameter of fl_draw_pixmap(...) from
   'data' to 'cdata'.

The 2nd warning appears to be caused by a 'friend' declaration in
  FL/Fl_Graphics_Driver.H, line 98:
    'friend FL_EXPORT int fl_draw_pixmap(const char*const* cdata, ...)'

This 'friend' declaration seems to "confuse" some (newer?) doxygen
versions, definitely doxygen 1.13.2.
2025-05-14 17:05:20 +02:00
Albrecht Schlosser
9b1379e688 Remove deprecated function Fl::set_idle()
This turned out to be more complicated than just to delete a function
because it was used internally, and the callback signatures were a bit
flaky. I also added a lot of documentation to clarify matters.

FL/Fl.H: document idle callback signatures, make some internal
  functions of class Fl private, add public Fl::idle() accessor (read-
  only), add Fl::add_idle(Fl_Old_Idle_Handler cb) to enable using
  old-style idle callbacks w/o 'data' argument.

FL/forms.H: replace Fl::set_idle() with Fl::add_idle().

src/Fl.cxx: rename private Fl::idle_ with trailing underscore.

src/Fl_System_Driver.cxx: use new public accessor Fl::idle() to access
  Fl::idle_ which is now private.

src/Fl_add_idle.cxx: improve documentation, clarify idle callback
  matching, add example code in docs, rename methods,  add overloaded
  Fl::add_idle(Fl_Old_Idle_Handler cb).

src/Fl_win32.cxx: use public Fl::idle() rather than private member.
src/drivers/Unix/Fl_Unix_System_Driver.cxx: same as above.
src/Fl_cocoa.mm: same as above.
2025-05-13 21:08:51 +02:00
Albrecht Schlosser
facda9a087 Remove obsolete class Fl_String
Note: it's still in branch-1.4 and in git history for reference
2025-05-11 16:47:45 +02:00
Matthias Melcher
c28237d756 Set default DPI to 300 in fl_write_png
Previously, the DPI value was completely random, resulting
in some interesting scaling when reading the png in other apps.
2025-05-11 12:34:04 +02:00
Matthias Melcher
74b0dc7d95 Fix address sanitizer exception for macOS native file chooser
The `memcmp` call would crash in Adress sanitizer if the memory compare
would run into an undefined buffer. `memcmp` is not guaranteed to stop
reading a buffer if a difference is found.
2025-05-11 12:30:22 +02:00
ManoloFLTK
95709ae0ad Wayland: remove crash when resizing hidden subwindow 2025-05-10 21:22:29 +02:00
Greg Ercolano
f8a7e299b0 Fl_Terminal doc fixes, private->protected for utf8_char_at_*() 2025-05-09 09:29:10 -07:00
ManoloFLTK
bca167d03a Fix erroneous #include directive 2025-05-09 10:14:57 +02:00
ManoloFLTK
043bac6f8d Remove declaration of Fl_Scalable_Graphics_Driver from FL/Fl_Graphics_Driver.H
and declare it in non-public header src/Fl_Scalable_Graphics_Driver.H which also
declares classes Fl_Font_Descriptor and Fl_Fontdesc.
2025-05-09 09:51:36 +02:00
Albrecht Schlosser
374f22b8bf Remove unused code from Fl_Wayland_Window_Driver (#1248)
This commit removes the unused static method

  Fl_Wayland_Window_Driver::resize_after_screen_change(void *data)

and related data as discussed in the context of PR #1248.
2025-04-18 18:23:28 +02:00
Timothy Lee
002b69f8fe Fix "heap-use-after-free" in resize_after_screen_change() (#1248)
When a native window is destroyed, make sure the callback to
Fl_WinAPI_Window_Driver::resize_after_screen_change() is removed.

Added by Albrecht-S:

Thanks for the original fix to Timothy Lee (@timothytylee).

src/drivers/X11/Fl_X11_Window_Driver.cxx: equivalent fix for X11
  as discussed on GitHub PR #1248
2025-04-18 18:15:06 +02:00
Mohammed Alyousef
8b8d92a313
Fixes error: two consecutive '[' tokens on g++ with objcpp files (#1246)
Applying MoAlyousef's PR. -erco
2025-04-05 15:05:39 -07:00
Albrecht Schlosser
f0a5146359 Remove reference to 'configure', fix typos
Note: this file is not used in normal compilation, it can be used
to help debugging. I'm not sure if it's still helpful, but anyway...
2025-04-04 14:44:21 +02:00
Albrecht Schlosser
fb48bc22cc Remove redundant Fl_Group::clear() from ~Fl_Scroll()
Fl_Group::clear() is called in Fl_Group's d'tor anyway.

Technically we don't need to remove hscrollbar and scrollbar because
they are destroyed (and thus removed from Fl_Group) before Fl_Group's
d'tor is executed but this is left for clarity and to guarantee the
order (see comment).
2025-04-03 17:11:25 +02:00
ManoloFLTK
c340c4a2bd Fix "Minor drawing artifact at scale 200% under X11 session" (#1243) 2025-04-03 11:28:02 +02:00
Matthias Melcher
f4978a0149 Adding the FL_MENU_CHATTY flag to Fl_Menu_Item.
If set, menu items will also call the callback when highlighting changes.
The reason is given with Fl::callback_reason(). #941
2025-04-01 17:00:56 +02:00
Matthias Melcher
bd9d1bc038 Fixes a couple of compiler warnings on AppleClang. 2025-03-30 00:38:10 +01:00
Matthias Melcher
5dd1062df5 Adding FL_BEFORE_MENU event to classes derived from Fl_Menu_ 2025-03-29 23:36:19 +01:00
Matthias Melcher
b7189192e2 Adds a new event FL_TOOLTIP_EVENT...
... and Fl_Tootip::override_text() to allow users to dynamically
generate tooltips.
2025-03-29 22:40:18 +01:00
Greg Ercolano
9e1e043af3 Changed two connector methods to virtual
For reference, see fltk.general thread started Mar 26 2025, entitled:
    "Make some Fl_Tree_Item methods virtual?"
2025-03-28 12:54:16 -07:00
Albrecht Schlosser
6db6a9d8b8 Remove reference to 'configure' from comment
Explain details of the mentioned 'hack' referring to and citing
parts of the original commit log.
2025-03-27 15:04:55 +01: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
Matthias Melcher
51a55bc736
Fluid: restructuring and rejuvenation of the source code.
* Add classes for application and project
* Removed all globals from Fluid.h
* Extracting args and project history into their own classes
* Moving globals into Application class
* Initialize values inside headers for some classes.
* Undo functionality wrapped in a class inside Project.
* File reader and writer are now linked to a project.
* Avoid global project access
* Nodes (former Types) will be managed by a new Tree class.
* Removed static members (hidden globals) form Node/Fl_Type.
* Adding Tree iterator.
* Use nullptr instead of 0, NULL, or 0L
* Renamed Fl_..._Type to ..._Node, FL_OVERRIDE -> override
* Renaming ..._type to ...::prototype
* Splitting Widget Panel into multiple files.
* Moved callback code into widget panel file.
* Cleaning up Fluid_Image -> Image_asset
* Moving Fd_Snap_Action into new namespace fld::app::Snap_Action etc.
* Moved mergeback into proj folder.
* `enum ID` is now `enum class Type`.
2025-03-16 17:16:12 -04: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
f4f93fda15 Fix handling of menu widnows taller than their screen
A problem was visible with the menubar test app and a 2-screen system where screens are one above the other.
When moving down the huge menu, it became positioned on the wrong screen.
2025-03-10 10:14:58 +01:00
Albrecht Schlosser
347d35a8c0 Update README and configure related stuff for 1.5.0
- remove configure stuff from more README files
- move documentation/README.txt to README.documentation.txt
2025-03-08 17:10:32 +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
ManoloFLTK
26ff0df6cf Remove warning sent by Doxygen about too many #endif 2025-03-08 15:29:24 +01:00
Albrecht Schlosser
7d58f06a20 Remove 'configure' from README's and sources (partially)
More to come...
2025-03-08 15:19:48 +01:00
Matthias Melcher
1186b4e255 Making fl_filename_... public for std::string.
New functions append "_str" to the function name to
avoid ambiguities when calling them. So
'char *fl_filename_name(const char *)' becomes
'std::string fl_filename_name_str(const std::string &)'
2025-03-07 20:26:03 +01:00
ManoloFLTK
89f714cb4e Remove platform-specific code from file cp936ext.h 2025-03-07 17:43:03 +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
Matthias Melcher
3068c7a0af Fl_String is now just an alias for std::string.
All mentions of Fl_String will be replaced with std::string
and the Fl_String implementation will be removed.
2025-03-07 00:12:40 +01:00
Albrecht Schlosser
dc07f927f1 Fl_Group: convert array of children to std::vector
Note: this is only a hidden implementation detail: all concerned
variables are private, and the code is simplified (less error prone).

Size of Fl_Group on 64-bit Linux: 168 -> 176 Bytes (+8 Bytes).

test/group.cxx: test for Fl_Group::{add, insert, remove} etc.
2025-03-06 18:31:31 +01:00
Albrecht Schlosser
191b33e0de Update version numbers to 1.5.0 2025-03-06 18:16:03 +01:00
Albrecht Schlosser
e2ca1a39c8 Remove autotools (configure/make) support 2025-03-06 17:12:52 +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
5b617a6cc1 Fix "Fl_RGB_Image::draw() seg faults when offset is too big" - cont'd (#1211) 2025-02-22 09:02:01 +01:00
ManoloFLTK
e27edad5f1 Fix "Fl_RGB_Image::draw() seg faults when offset is too big" (#1211) 2025-02-22 08:33:20 +01:00
ManoloFLTK
7ce2632bfc Fix "Wayland: resizing window may crash the program" (#1210) 2025-02-21 21:16:02 +01:00
Albrecht Schlosser
e932b94436 Update dependencies 2025-02-21 20:12:57 +01:00
Albrecht Schlosser
02af6a57eb Bump version numbers to 1.4.2 2025-02-21 16:25:39 +01:00
Albrecht Schlosser
97f2cdcc29 Fix copyright, a typo, and remaining casts (#1207)
make remaining casts consistent with other casts of the same
variables
2025-02-21 13:37:22 +01:00
ManoloFLTK
d5612afd61 Fix "Fl_JPEG_Image infinite longjmp loop on Mac release builds" (#1207) 2025-02-20 23:16:17 +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
ManoloFLTK
c92bf829b4 macOS: restore building with SDK versions between 10.7 and 10.11 2025-02-05 18:53:55 +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
89d146ecee macOS: fix when fullscreen window looses and regains focus with SDK 10.6 (#1192) 2025-02-04 17:30:35 +01:00
ManoloFLTK
02f431bd88 macOS: Restore fullscreen window mode when using SDK < 10.7 (#1192) 2025-02-03 15:25:05 +01:00
ManoloFLTK
94f471b701 macOS: fix transition from single-screen fullscreen to "All Screens" fullscreen 2025-02-03 12:08:20 +01:00
ManoloFLTK
bc764dabc1 Avoid code repetitions among Fl_{X11_}Window_Driver::{un_}maximize() functions 2025-02-03 09:34:19 +01:00
Albrecht Schlosser
77a7752123 Fix potential buffer overflow in Fl_Help_View (#1196) 2025-02-01 19:40:24 +01:00
ManoloFLTK
ab9fd0f503 macOS: add support of showing window to multi-screen fullscreen state 2025-01-30 16:47:57 +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
Albrecht Schlosser
5a0551df0a CMake: fix include directories of bundled image libs
If FLTK has been built with bundled image libs the include directory
of the *installed* library headers is 'FL/images' relative to the
normal 'include' directory.

The CMake property "include_directories" is now added to the installed
fltk_images library so it is used when building user programs with
bundled image libs.
2025-01-27 15:51:34 +01:00
ManoloFLTK
6b87b01b65 Refrain static function capture_decorated_window_SCK() from capturing the cursor 2025-01-26 22:45:02 +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
Albrecht Schlosser
0c2aa40bbc Fix Fl_Table_Row inconsistencies, final part (#1187)
Adjust internal vector sizes before and after changing the rows() in
the base class to avoid inconsisten sizes.

Note that the crash reported by the OP of PR #1187 was caused by
more than one issue, not only the one fixed here. Thanks for the
original patch to the author, GitHub user 'basiliscos'.
2025-01-22 21:11:06 +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
Albrecht Schlosser
6c3a71181b CMake: check INTERFACE_LINK_LIBRARIES for empty value
This is a safety for consistency. It doesn't really change the result
but avoids "adding" an empty argument to a CMake list.
2025-01-21 14:23:27 +01:00
Albrecht Schlosser
2dd4bdeef7 CMake: make "optional" dependencies 'PUBLIC' (#1173)
On FreeBSD some of the required header files (and libraries) are not
in standard (known) locations, hence they wouldn't be found under
certain circumstances. Making all dependencies 'PUBLIC' adds the
needed include directories and link libraries to all builds.

For details see GitHub Issue #1173 with title
  "FLUID compilation error on FreeBSD when FLTK_BACKEND_X11=ON"
2025-01-20 17:25:11 +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
Albrecht Schlosser
546a3168f6 Fix typos in documentation of Fl_Tabs 2025-01-15 16:05:01 +01:00
Albrecht Schlosser
a48ebc5db0 Fix return value of Fl_Table_Row::row_selected(int) (PR #1187)
As discussed in the context of PR #1187 the previous return value '-1'
was misleading and undocumented. The docs mentioned only '1' and '0'.

User code that used the return value as documented (like a `bool`)
would make the wrong decision if the return value was '-1': true
(selected) instead false (out of range).

This commit fixes the code by doing what the docs define and clarifies
the documentation.

Further documentation improvements of Fl_Table (example code used a
method that is not defined in Fl_Table) and of Fl_Table_Row are
included as well.

Doxygen docs of two methods of Fl_Table_Row moved to the .cxx file
where they belong according to the CMP.
2025-01-14 15:21:42 +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
be72c49296 Remove unnecessary #include directive 2025-01-11 17:39:07 +01:00
ManoloFLTK
0f71d63834 Fl_Text_Editor::wrap_mode(Fl_Text_Display::WRAP_AT_BOUNDS, 0) hurts scrolling (#1186) 2025-01-11 15:38:20 +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
70729e6fdb Document in detail how screen work areas are computed across platforms (#1180) 2024-12-31 17:30:44 +01:00