Commit Graph

7153 Commits

Author SHA1 Message Date
Albrecht Schlosser
60690dba51 Limit (sub)menu arrow size as discussed in fltk.general
... in thread: "FLTK 1.4 Menu Bar Style", started on May 6, 2024

This is about the little triangle (or similar) pointing right when
a submenu exists in a menu. The arrow form differs per scheme.
2024-05-07 20:05:27 +02:00
ManoloFLTK
2af1da4ff4 Wayland: simpler implementation of "GTK Shell" protocol 2024-05-06 09:29:32 +02:00
ManoloFLTK
dea8a93bc2 Wayland: use frame_cb before redrawing GL subwins - cont'd (#967) 2024-05-05 11:06:15 +02:00
ManoloFLTK
b726211b9b Wayland: use frame_cb before redrawing GL subwindows (#967) 2024-05-03 21:55:01 +02:00
ManoloFLTK
70b84b491b macOS + CMake: fix use of optional framework UniformTypeIdentifiers 2024-05-03 15:23:42 +02:00
ManoloFLTK
24c1472c06 macOS + GL: remove compilation error with old SDK versions 2024-05-02 11:12:36 +02:00
Albrecht Schlosser
d22d4a526f Remove (comment out) debug statement (kdialog) 2024-04-30 18:02:53 +02:00
ManoloFLTK
a0d657b2e8 Fix preset_file() and directory() in native file chooser for kdialog 2024-04-30 16:14:29 +02:00
ManoloFLTK
9472ff546c Implement and document new class Fl_PDF_File_Surface 2024-04-30 10:22:47 +02:00
Albrecht Schlosser
b402b6a839 Fix potential NULL pointer dereference
... as reported in thread "Windows 11 crash (still investigating)"
of fltk.coredev, started on Apr 24, 2024.

This bug could only be triggered if a /subwindow/ wss hidden but was
not limited to Windows.
2024-04-29 16:32:13 +02:00
ManoloFLTK
e4b0668fad X11: simpler code to capture window decoration under xfce 2024-04-27 08:13:17 +02:00
Matthias Melcher
eeed395246 Fix repositioning subwindows.
The commit f288aea from Feb. 23rd introduced a
regression where children of subwindows were moved
inside the subwindow when only the subwindow itself
was supposed to move.
2024-04-26 20:19:08 +02:00
Matthias Melcher
1408a87425 Box type focus frame graphics fixes. 2024-04-26 18:17:04 +02:00
ManoloFLTK
02373a9dea X11: fix capture of window decoration under xfce 2024-04-26 16:53:08 +02:00
Matthias Melcher
e8fa492264 Fixes warning. 2024-04-26 12:46:29 +02:00
Matthias Melcher
281ec24c8f Box types can now defined and draw their own focus frame, STR 2145, #659 2024-04-26 12:42:11 +02:00
ManoloFLTK
c82fde7292 Wayland: slightly simpler code for IM support 2024-04-26 07:21:12 +02:00
ManoloFLTK
c0d2aa3f09 Fix problem in window titlebar capture under X11. 2024-04-25 15:12:34 +02:00
ManoloFLTK
6d21285e0f Fix error under KDE+Wayland where keystrokes tend to be repeated
see also: fltk-rs/fltk-rs#1539
2024-04-25 11:52:06 +02:00
ManoloFLTK
38c9ebc29d Substantial fix for "IME problem under wayland" in fltk-rs
see: fltk-rs/fltk-rs#1539
2024-04-25 08:49:08 +02:00
ManoloFLTK
00b603fa09 Very partial fix for "IME problem under wayland" in fltk-rs
see: https://github.com/fltk-rs/fltk-rs/issues/1539
2024-04-24 10:03:17 +02:00
Matthias Melcher
3f91c8b5ee macOS: Fix scaling subwindows #927
Converting Cocoa coordinates into FLTK coordinates
should be avoided as much as possible because the
conversion loses precision for scaling != 100%.
2024-04-23 19:25:31 +02:00
ManoloFLTK
5ec7176e81 Fix for Fl_Native_File_Chooser::filter_value() - cont'd (#899) 2024-04-22 18:35:59 +02:00
ManoloFLTK
abfc8ee52f Fix: Fl_Native_File_Chooser::filter_value() [Kdialog] always returns 0 (#899)
- remove build option FLTK_USE_KDIALOG replaced by an Fl::option() option
- new run-time option OPTION_FNFC_USES_KDIALOG
- make options OPTION_FNFC_USES_KDIALOG and OPTION_FNFC_USES_ZENITY
false by default
- add mention of new program fltk-options in the doc of Fl::option()
- change logic of choice of the native file chooser under X11/Wayland:
the zenity and kdialog choosers are opt-in; otherwise the GTK file chooser
is used, unless opted out with  OPTION_FNFC_USES_GTK
- document that zenity may be interesting for sandboxed apps
- document that both zenity and kdialog make member functions
Fl_Native_File_Chooser::filter_value() inoperable
2024-04-22 16:34:08 +02:00
ManoloFLTK
ee37965fad Fix: Wayland use of alpha in glClearColor/glClear (#957) 2024-04-22 14:27:42 +02:00
Albrecht Schlosser
e39c96f419 Fix build of test programs using shared FLTK libs 2024-04-21 19:12:59 +02:00
Albrecht Schlosser
89b957586e CMake: add target_include_directories() for optional libs (#954)
This ensures that header files for libraries found by `pkg-config`
(pkg_check_modules) in non-system directories will be found by the
compiler during the compilation of the FLTK library.

This issue has been reported in PR #954 related to builds with Conan
where some header files are not in system locations.
2024-04-21 18:53:22 +02:00
ManoloFLTK
7ec6f96d9c Add "fl_" prefix to libdecor symbols when using the built-in copy of libdecor
This allows client apps to use other versions of libdecor if they wish,
just like what FLTK already does with libpng and libjpeg.
2024-04-20 13:35:53 +02:00
Albrecht Schlosser
d2bd3c6240 CMake/MSVC: Fix shared library build, add to GitHub CI build
Fault was a simple typo or copy-paste error
2024-04-20 01:44:26 +02:00
Albrecht Schlosser
a9d3d3e3fb CMake: fix propagation of CMake targets to user projects (#954)
Unfortunately commit 5417ea5f1f broke
simple user projects by propagating unknown CMake target names to
linker requirements of user projects.

This commit tries to fix this w/o breaking the intentions of PR #954.
2024-04-19 20:45:32 +02:00
ManoloFLTK
15d9a350bf Restore IMPORTED_TARGET in pkg_check_modules command for libdecor 2024-04-18 20:51:10 +02:00
ManoloFLTK
e6957fc2f5 Allow libdecor package version ≥ 0.2.0 with FLTK_USE_SYSTEM_LIBDECOR 2024-04-18 19:32:47 +02:00
Albrecht Schlosser
8ca1e0ca03 Fix 'int Fl_Menu_::value()' if item is in a submenu (STR 3241)
More precise: ... if the last picked item is in a "detached submenu",
i.e. in one addressed by another menu item with the FL_SUBMENU_POINTER
flag set.

Also: document *why* this is the case, and what the result value is.
2024-04-17 19:14:59 +02:00
Matthias Melcher
fd791a068e
Separate FLUID user documentation, screen shot automation (#936)
* CMake integration, no autotiools
* alignment panel is now correctly renamed to setting panel
* source view is now correctly renamed to code view
* Merge FLTK FLUID docs into FLUID user manual.
* Add two simple entry tutorials
* Remove FLUID chapter form FLTK docs.
* GitHub action to generate HTML and PDF docs and
  make the available as artefacts
2024-04-17 17:51:32 +02:00
Albrecht Schlosser
b4cf1a9824 Fix and improve generation of fltk-config (#954 and more)
Parts of this commit fix the usage of CMake targets in the generation
process of fltk-config modified by PR #954.

The rest improves handling of variables used to generate fltk-config,
removes obsolete comments, documents variables like GLLIBS etc. which
had to be done anyway.
2024-04-14 19:15:08 +02:00
Jordan Williams
5417ea5f1f
CMake: Use imported targets for PkgConfig packages (#954)
This carries include directories and the required link flags.
Several libraries brought in through pkg_check_modules aren't linked correctly using the _LDFLAGS variables.
Instead, they link the libraries directly with `-l`.
This is problematic because it doesn't properly pull in the actual directory of the library being linked when it is not in a system library directory.
Likewise, the necessary include directories for several of these targets aren't properly set either.
Linking against the imported targets automatically pulls in the necessary include directories.
2024-04-14 19:07:15 +02:00
Albrecht Schlosser
e9e5f4bdb1 Remove "MS" from "MS Windows" in docs code, and comments
The system (platform) is called "Windows", "MS Windows" doesn't make
much sense. I removed "MS" for consistency.
2024-04-13 21:49:27 +02:00
Jordan Williams
a6651e10ff
CMake: Improve detection of the GLU library and GL/glu.h header file (#953)
* CMake: Improve detection of the GLU library and GL/glu.h header file

Locate the GLU library and header independent of the GL library and header locations.
Add the GLU header location to necessary target_include_directory calls.

* CMake: Locate and use the GL include directory

Find the GL include directory and use it in target_include_directories calls.
2024-04-12 15:58:57 +02:00
Albrecht Schlosser
5de880ae81 Fix "Support for NetBSD", part 4 (#944)
Add missing return statement to replacement function for trunc().

Closes #944
2024-04-12 13:28:33 +02:00
Albrecht Schlosser
05a95e146b Fix Fl_Terminal::handle_unknown_char() for plot_char() (#948)
- Add 'int Fl_Terminal::handle_unknown_char(int drow, int dcol)'
  to write the "unknown" character to the intended display position.

- Define Fl_Terminal::unknown_char as a static variable to avoid
  redundancy. In the future this might be overridden by users.
2024-04-09 12:53:12 +02:00
ManoloFLTK
ba7b2427b6 Make Fl_GTK_Printer_Driver recognize more paper sizes
also, make clear the B* paper size names are from JIS not ISO.
2024-04-08 17:24:38 +02:00
ManoloFLTK
2662cad50b Improve Fl_GTK_Printer_Driver::begin_job() 2024-04-08 16:29:25 +02:00
ManoloFLTK
5b802be52b Add Tabloid paper size to menu_print_page_size array 2024-04-08 11:19:14 +02:00
Greg Ercolano
31170c4731 Rename putchar() to plot_char() (#944)
Some old platforms (NetBSD, AIX) implement the common stdio "putchar()"
function as a global macro which poisons the global namespace, preventing
all C and C++ programs from using "putchar()" as a function or method.

There was a long thread about this in fltk.coredev during the period
Mar 25 2024 ~ Apr 4 2024, subject "RFC: Fl_Terminal::putchar() in public API"
as to why we have no choice but to not use putchar() as a method name.
2024-04-06 23:36:04 -07:00
ManoloFLTK
39c1386ba7 Improve use of fl_create_print_window() under Windows 2024-04-04 16:36:51 +02:00
ManoloFLTK
6763b357f4 Improve use of fl_create_print_window() under X11 2024-04-04 12:01:04 +02:00
Albrecht Schlosser
e5c4c1415b Add replacement for potentially missing trunc() (#944)
- add configure + CMake checks to define HAVE_TRUNC in config.h

- src/Fl_Timeout.cxx: add local replacement function
2024-04-02 16:03:29 +02:00
Albrecht Schlosser
7a879568b3 Improve support for NetBSD (#944)
- fix gcc version check for FL_DEPRECATED macro

- fix #include for select() on NetBSD < 3.0 (#944)

For more info please see GitHub Issue #944
2024-04-02 16:03:00 +02:00
Albrecht Schlosser
16cd29fd6d Remove dead code/comment: HP-UX 9.x not supported
README.Unix.txt documents that HP-UX 11.11 is required
2024-04-02 15:12:45 +02:00
ManoloFLTK
1bc5680472 Fix error in Fl_PostScript_File_Device::begin_page() under Pango
This fixes the bug reported in fltk.general "Fl_Printer bug?"
2024-03-30 17:21:11 +01:00
ManoloFLTK
b4b98c5d57 macOS: Avoid possible crash in makeMainWindow when another win is modal 2024-03-28 18:20:38 +01:00
Albrecht Schlosser
5666ec0ff0 Fix "Support for AIX" - part 2 (#942)
Add missing file counter increment, thanks to @michaelbauerle.
2024-03-25 17:07:42 +01:00
ManoloFLTK
1434bc2bd0 Replace lround() calls by round() calls in class Fl_Anim_GIF_Image (#942) 2024-03-24 08:12:11 +01:00
ManoloFLTK
f01dec8eb3 Remove duplicated #include <config.h> directive 2024-03-24 07:53:03 +01:00
ManoloFLTK
97d2836f5e macOS: remove deprecated use of property allowedFileTypes in class NSSavePanel
The recommended replacement requires macos ≥ 11.0 and a new framework: UniformTypeIdentifiers
2024-03-23 17:16:57 +01:00
ManoloFLTK
f3640a7312 Add necessary #include <config.h> directives 2024-03-23 17:00:03 +01:00
Albrecht Schlosser
1c910720bf Fix "Support for AIX" (#942)
Slightly modified patch from @michaelbaeuerle (issue #942).
2024-03-22 20:38:03 +01:00
ManoloFLTK
34a881482a Add comments giving cairo version required for each cairo call if > 1.0 2024-03-22 16:11:38 +01:00
Albrecht Schlosser
b53b2b6e11 CMake: Remove "-no-pie" build option
libdecor/build/Makefile: unused anyway (previously used building demos)

src/CMakeLists.txt: broke some user builds, see fltk.general, thread
  "-no-pie in FLTK Libraries build." (Mar 17, 2024).

Todo: check usage of "-fPIC" (libdecor builds)
2024-03-21 14:27:29 +01:00
ManoloFLTK
b0b20cdecc Remove unused macro definitions 2024-03-20 23:26:48 +01:00
Albrecht Schlosser
b3b051240e Add missing include file (#939) 2024-03-20 17:41:08 +01:00
ManoloFLTK
46406d1d21 Add compile-time check of required minimum cairo version 2024-03-20 15:40:04 +01:00
ManoloFLTK
0fa49f0ab4 Use type cairo_region_t* for Fl_Region under Wayland platform 2024-03-20 15:20:31 +01:00
Albrecht Schlosser
af90841fbc Update dependencies, whitespace, and Fl_File_Chooser.cxx
Rewrite src/Fl_File_Chooser.cxx from its .fl source file
2024-03-19 15:39:18 +01:00
ManoloFLTK
3a8daf70c0 Document fl_close_display() 2024-03-19 08:52:49 +01:00
Albrecht Schlosser
a77f68693c Fix "Support for HP-UX" (#937)
Fix usage of vsscanf in Fl_Unix_System_Driver::clocale_vsscanf().

Final commit of all patches provided by the OP of issue #937 - if
everything works now.
2024-03-18 23:51:05 +01:00
Albrecht Schlosser
5af2d77b84 Add more public accessor methods to Fl_Grid (#937)
Some of these accessor methods should be private so they can't be used
by user code but - due to compiler issues - they must be public for
HP-UX 11.11 (for details see GitHub Issue #937).
2024-03-18 23:23:49 +01:00
Albrecht Schlosser
dddfec57a1 Fix name clash on some systems (#937)
Rename local function and void using leading underscore.
2024-03-18 22:46:15 +01:00
Albrecht Schlosser
d3a3ab40b7 Replace setenv() with putenv() on old systems (+937)
Add system check for setenv() function in configure and CMake.
2024-03-18 22:29:50 +01:00
Albrecht Schlosser
1d43ae0b0a Move nanosvg to a separate file, don't use 'roundf()' (#937)
Replacement of roundf() with nsvg__roundf() fixes one aspect of
issue #937.

Having the nanosvg implementation in its own module was planned anyway.
2024-03-18 19:36:16 +01:00
Albrecht Schlosser
7bc75e8962 Fix a Visual Studio compiler warning 2024-03-18 18:48:28 +01:00
ManoloFLTK
aac5e48875 Fl_Native_File_Chooser_GTK: improve preview of text files on HiDPI 2024-03-18 18:12:50 +01:00
ManoloFLTK
5a97629d0b Restore building on old Linux/Unix systems lacking Xutf8LookupString() 2024-03-18 15:02:48 +01:00
ManoloFLTK
61c0f79397 Fix "FLTK on NetBSD very slow on X11 with Unicode locale" (#935) 2024-03-18 14:05:48 +01:00
Albrecht Schlosser
29aba21b78 Fix memory leak in Fl_X11_Screen_Driver.cxx (#934)
Fl_X11_Screen_Driver::set_spot() did not free the list of missing
fonts returned by XCreateFontSet().

This commit also initializes some variables and reformats code, but
the only notable change is to call XFreeStringList(missing_list) if
missing_list is not NULL.
2024-03-16 15:26:07 +01:00
ManoloFLTK
3ec91d4c6d Create enum Fl_Wayland_Screen_Driver::cursor_shapes 2024-03-16 14:40:16 +01:00
Albrecht Schlosser
8b094e8af3 Fix a bunch of compiler warnings, particularly for old compilers
Works now much better with old C99 and C++98 standard compilers.
Fixed: C++ comments in C files and headers included by C files.

There are still some warnings with C90 though but these would be
hard to fix and left as-is for now.

test/fractals.cxx: some arrays were too small by 1, or the compiler
  warned at least (false positive?). Anyway, it's fixed now.
2024-03-15 20:42:42 +01:00
Matthias Melcher
b3e1df3584 STR 3489: fix alpha blending for X11 2024-03-15 20:18:35 +01:00
ManoloFLTK
82bd0b6652 Have FLTK use libdecor at version > 0.2.2
- it's no longer necessary to take care of the change in the layout of "struct libdecor"
between versions ≤ 0.2.2 and > 0.2.2 of libdecor
- version > 0.2.2 contains MR131, that is, it defines LIBDECOR_WINDOW_STATE_RESIZING
so the hack to emulate it is no longer  necessary
- CMake option FLTK_USE_SYSTEM_LIBDECOR now requires libdecor version > 0.2.2
to be activated, otherwise the bundled libdecor is used
- what will be the libdecor version after 0.2.2 (0.2.3? 0.3.0?) is not known as of today
2024-03-15 12:21:38 +01:00
ManoloFLTK
91d2bf4783 Improve Fl_Wayland_Screen_Driver::base_scale(int) 2024-03-13 18:02:13 +01:00
ManoloFLTK
5400811b83 Update libdecor to upstream commit 4f2c03d5 - cont'd 2024-03-13 15:23:43 +01:00
ManoloFLTK
3fafeb9ea1 Remove useless X11 libraries when building with -DFLTK_BACKEND_X11=0 2024-03-13 14:57:38 +01:00
Albrecht Schlosser
5e4f51ac6b Fix several compiler warnings
Three unrelated but only minor warnings.
2024-03-12 21:47:33 +01:00
Albrecht Schlosser
aa02a0297b Fix trimming of trailing whitespace in Fl_Terminal::text()
... and document a missing parameter.
2024-03-12 17:37:42 +01:00
ManoloFLTK
d30e4aa0af Fix use of FLTK_SCALING_FACTOR under macOS 2024-03-12 17:29:29 +01:00
ManoloFLTK
f8380476c2 using xlib to query the new DPI (old #910) (PR #913)
Thanks to Mike Qin for finding how to query the possibly changed DPI value
of an X11 display while an FLTK app keeps running without running
an external command in a pipe.
2024-03-12 15:40:45 +01:00
Greg Ercolano
38af0c823b Add Fl_Terminal to "Scrollbar Size" unittest (#931)
This involved enlarging the unittest main window to make room
for the additional test.

Adding this test revealed a problem in Fl_Terminal's global
scrollbar size handling, which is fixed here as well.

Also fixed a small issue in the demo's debugging terminal
with the horiz scrollbar.
2024-03-11 13:20:17 -07:00
Greg Ercolano
b1910ccfff Refit display rows/cols preset, remove test code 2024-03-11 12:57:45 -07:00
Greg Ercolano
6668c7ef42 Fix Fl_Terminal horiz scrollbar appearing needlessly (#930) 2024-03-11 12:22:32 -07:00
ManoloFLTK
483729f4f8 macOS: Fullscreen window loses sys menu bar if 2nd window is opened (#924) 2024-03-11 15:18:59 +01:00
ManoloFLTK
20e8da9dfd Fix: Filechooser preview of XML file shows it as a corrupt image (#926) 2024-03-11 11:36:47 +01:00
Greg Ercolano
dd73389f40 Small scrollbar fixes 2024-03-06 21:41:40 -08:00
Albrecht Schlosser
3ac007541e
Add horizontal scrollbar to Terminal widget (#928)
* Checkpoint. Basic functionality seems to be working.

* Code cleanup

* Added horizontal scrollbar to Terminal widget

* Fix hscrollbar_size operation

* Applied erco-terminal-mods_v5_final.patch.txt
Final patch relating to PR 918

* Remove trailing whitespace, update copyright year

---------

Co-authored-by: Jonathan Griffitts <jonathan.griffitts@gmail.com>
Co-authored-by: Greg Ercolano <erco@seriss.com>
Co-authored-by: Albrecht Schlosser <albrechts.fltk@online.de>
2024-03-06 21:16:11 -08:00
ManoloFLTK
0f8649f3c4 Filechooser preview of XML file shows it as a corrupt image - cont'd (#926) 2024-03-05 19:02:27 +01:00
ManoloFLTK
72840ea2c1 Fix: Filechooser preview of XML file shows it as a corrupt image (#926) 2024-03-04 21:15:47 +01:00
ManoloFLTK
ad7d1dc1c6 Fullscreen window loses sys menu bar if 2nd window is opened (#924) 2024-03-04 19:43:17 +01:00
ManoloFLTK
a0ff3f6f5c Fix Scaling window up/down also scales X/Y position on secondary displays only (#925) 2024-03-04 16:25:45 +01:00
ManoloFLTK
7777a503ad Implement Fl_Wayland_Screen_Driver::base_scale(int numscreen) 2024-03-04 16:20:54 +01:00
ManoloFLTK
5ba756e60a X11: improve moving window back & forth across screens (#919) 2024-03-04 10:10:04 +01:00
ManoloFLTK
f87aad7464 Use Fl_Window_Driver::is_resizable() to check whether window can be resized 2024-03-03 23:06:59 +01:00
ManoloFLTK
bbbc3a739c X11: Window scaling makes window lose resizable status if resizable_ is NULL (#923) 2024-03-03 20:53:16 +01:00
ManoloFLTK
130f5b6dc1 A window needs is_resizable() true to obey fullscreen() or maximize() 2024-03-03 17:50:49 +01:00
Albrecht Schlosser
d832ab742a Fix Visual Studio compiler warnings 2024-03-03 16:15:43 +01:00
Greg Ercolano
257e20e929 Added Fl_Terminal::text() and docs 2024-03-02 22:47:45 -08:00
Matthias Melcher
f1c9b198bb Promote fl_strlcpy to <FL/fl_string_functions.h> 2024-03-02 23:49:35 +01:00
ManoloFLTK
7fea97c7a7 Fix regression introduced at 41740ca for non resizable windows - cont'd 2024-03-02 20:02:11 +01:00
ManoloFLTK
b74099c5fd Add OPTION_SIMPLE_ZOOM_SHORTCUT to fine tune zoom-in shortcut 2024-03-02 17:25:10 +01:00
ManoloFLTK
a76229972e macOS: remove test that became useless after 5f20698 2024-03-02 08:12:54 +01:00
ManoloFLTK
34b8801fed Windows: fix moving window with Windows+Shift+arrow (#919) 2024-03-01 18:30:20 +01:00
ManoloFLTK
cc15700bdb Windows: improve changing scale values of display while app runs. 2024-03-01 14:00:43 +01:00
ManoloFLTK
266647d2a7 Windows: fix issue if moving window back & forth across screens (#919) 2024-03-01 12:20:10 +01:00
ManoloFLTK
0eef561e7b Windows: make Ctrl/+/-/0/ scaling system-wide if all screens have same DPI 2024-03-01 11:11:15 +01:00
ManoloFLTK
5f2069871d Move recognition of Ctrl= out of Fl::test_shortcut(unsigned) 2024-02-29 07:17:31 +01:00
Albrecht Schlosser
367826979d Fix a typo and the URL to an STR in a comment
no code changes
2024-02-28 15:54:02 +01:00
ManoloFLTK
f4fb973c5d Simplify code to recognize GUI rescaling shortcuts 2024-02-28 09:13:35 +01:00
ManoloFLTK
eb3977ac43 Fix regression introduced at 41740ca for non resizable windows 2024-02-27 18:52:25 +01:00
ManoloFLTK
fc46e771cd Improve prioritization of event handlers added at open display time 2024-02-27 16:20:25 +01:00
ManoloFLTK
746cbf861a Minor optimization of macOS automatic Window menu 2024-02-27 13:46:41 +01:00
ManoloFLTK
4863f959c8 macOS: Window menu of system menubar follows changes in active window 2024-02-27 09:13:41 +01:00
ManoloFLTK
f35ae7122d Stop GUI scaling when window is maximized or full screen (#919)
Don't rescale when any top window on same screen as focus window is fullscreen or maximized
2024-02-27 08:46:40 +01:00
ManoloFLTK
3f794d3abe Allow FL_COMMAND+'+' as macOS system menu shortcuts - cont'd 2024-02-26 17:48:18 +01:00
ManoloFLTK
0818d4ec5b Fix: Fl_Window::fullscreen() does not work correctly on Mac (#920) 2024-02-26 12:15:47 +01:00
ManoloFLTK
41740caa2e Don't rescale when top window is fullscreen or maximized (#919) 2024-02-26 11:00:42 +01:00
ManoloFLTK
2ea5291821 Allow FL_COMMAND+'+' and FL_CTRL+'0' as menu shortcuts 2024-02-26 10:46:28 +01:00
Albrecht Schlosser
f288aea10a Fix Fl_Group::resize() for groups w/o resizable() (#917)
Improve code comments to clarify which cases are handled in a code
block and why this is done. Subwindows have some special needs.
2024-02-23 19:21:26 +01:00
ManoloFLTK
957becbe28 Fix: fl_height(int, int) decreases the font size after each call (#915) 2024-02-21 09:38:24 +01:00
ManoloFLTK
681e22a452 Add scale_handler first so it has least priority of all handlers 2024-02-20 21:47:43 +01:00
ManoloFLTK
69d7991acc FL_MENU_TOGGLE/RADIO items do not update in macOS menu bar (#916) 2024-02-20 18:41:12 +01:00
ManoloFLTK
ba5ed296e9 Improve implementation of the macOS Window menu
The macOS Window menu is connected to the item array of the  macOS menubar
via FL_SUBMENU_POINTER. This facilitates memorization of pointers
to items of the macOS menubar because the item array no longer changes
each time a window opens of gets closed.
2024-02-20 16:00:01 +01:00
Matthias Melcher
2f343ad64d
Fix Terminal character position and add word selection (#906)
* Improve horizontal interactive selection
* Using half-character positions to implement selection
  similar to Fl_Input.
* Add word and line selection
* Fix vertical position of text
2024-02-18 13:29:37 +01:00
Greg Ercolano
58a1496389 Fixed Fl_Terminal xterm color 39/49 handling, and other mods.
Fixed a bug in the handling of xterm color 39 + 49, which avoids
applying Dim/Bold if default color is the special "see through" color
0xffffff00. A test will be added to test/terminal to excercise this
in a follow up commit.

Renamed CharStyle::?gcolor_uchar() -> CharStyle::?gcolor_xterm()
for a consistent naming convention.

Changed fltk_fg_color() from a static func to a CharStyle method
because it needs to access the defaultcolor for the special cases
for xterm colors 39 and 49.

Made CharStyle::attr_color() private, as per Jonathan Griffitts request
in issue #909.

Improved docs regarding effects of Dim/Bold for xterm and non-xterm color
methods.

Fl_Terminal::text?gcolor_xterm() methods now use CharStyle::?gcolor_xterm()
methods, removing the duplicate code logic.
2024-02-16 13:10:06 -08:00
Greg Ercolano
1069ebc1b6 Fix Fl_Terminal xterm CharStyle charflags (#909) 2024-02-16 04:46:05 -08:00
ManoloFLTK
cf551ddf5a Improve recognition of re-scaling shortcuts - cont'd 2024-02-11 19:10:39 +01:00
ManoloFLTK
2776071144 Improve recognition of re-scaling shortcuts w/ various keyboard layouts 2024-02-11 11:07:03 +01:00
ManoloFLTK
63b0bcf599 KDE+X11 keyboard stops working after menu display (#904) 2024-02-11 08:23:23 +01:00
ManoloFLTK
fc6d364057 Change parameters of Fl_Wayland_Window_Driver::delete_cursor() 2024-02-09 10:04:13 +01:00
ManoloFLTK
1fdb1f7944 Improve Fl_Wayland_Window_Driver::hide() 2024-02-08 15:18:18 +01:00
Albrecht Schlosser
fd5cd80935 Introduce "Modern CMake" in FLTK
This is a big commit and there are too many changes to list them all.
The main changes are:

- rename all CMake build options to 'FLTK_*'
- export library targets with namespace (prefix) 'fltk::'
- standardize shared library target names with suffix '-shared'
- set public build properties on libraries for consumers
- document library names and aliases in README.CMake.txt
- document changes in "Migrating Code from FLTK 1.3 to 1.4"
- partial backwards compatibility for old user projects

Included but not directly related changes:

- fix Windows (Visual Studio) DLL build
- add CMake function fl_debug_target() to show target properties
- don't build test programs if FLTK is a subproject
- internal: reformat CMake code: remove space before '('

Thanks to Matthias and Manolo for their help, testing, and feeback.
2024-02-07 18:37:34 +01:00
Albrecht Schlosser
1cf6fdfa85 Fix Fl_Window::default_size_range() (#901)
Thanks to Manolo for the patch.
2024-02-07 12:38:58 +01:00
ManoloFLTK
a651c89c85 Fix window moving in Fl_Wayland_Window_Driver::resize() 2024-02-06 09:24:31 +01:00
ManoloFLTK
676e976cb6 Fl_Window_Driver::set_popup_window(), Fl_Screen_Driver::screen_boundaries_known()
Fl_Window_Driver::set_popup_window() is to be used to declare a window should be
positioned relatively to a previously mapped other window.  This allows a platform
to process such windows differently from other windows if needed.
Menu and tooltip windows are so declared.

A call to Fl_Window_Driver::set_popup_window() also allows to distinguish a real
menu or tooltip window from a window marked by Fl_Window::set_menu_window()
or by Fl_Window::set_tooltip_window() but that's not a real menu or tooltip.

New member function bool Fl_Screen_Driver::screen_boundaries_known() returns
true by default. A platform where the position of windows inside a screen is hidden
(e.g., Wayland) returns false. This allows FLTK to refrain from trying to make sure
a computed position is inside a screen.
2024-02-05 12:39:10 +01:00
ManoloFLTK
0da00995a8 Shorten parameter list of Fl_Wayland_Window_Driver::delete_cursor_(bool) 2024-02-04 16:55:01 +01:00
ManoloFLTK
865aed4eec Wayland: fix setting cursor to FL_NO_CURSOR 2024-02-03 16:04:06 +01:00
Albrecht Schlosser
b21a3910a9 Improve documentation of Fl_Native_File_Chooser
Document restrictions imposed by the new system file chooser dialogs,
particularly by 'kdialog' and 'zenity' (Unix/X11/Wayland only).
2024-01-31 18:50:25 +01:00
Matthias Melcher
faff63130c Fix cached GL context on all platforms (#737) 2024-01-29 14:01:41 +01:00
Matthias Melcher
c40b165353 Fix OpenGL context caching on macOS (#737) 2024-01-29 13:42:05 +01:00
Matthias Melcher
d9612e3cc7
RFC: Different approach to Editor tutorial (see #189) (#883)
Update test/editor code and tutorial (#189, #883)

Different, sequential approach to Editor tutorial
Co-authored-by: Albrecht Schlosser <albrechts.fltk@online.de>
2024-01-29 11:43:34 +01:00
Matthias Melcher
fa8799bcef Fix animated gif reloading (#897) 2024-01-28 00:14:49 +01:00
Matthias Melcher
444ee8bc36 Fix warning for out of range index. 2024-01-27 17:54:49 +01:00
Matthias Melcher
4123605aab Fix inlined animated GIFs with NULL name (#897) 2024-01-27 16:27:34 +01:00