Commit Graph

11499 Commits

Author SHA1 Message Date
Albrecht Schlosser
3cc5c090f9 X11: update XDND protocol from version 4 to 5 (#988)
Some applications insist on sending XDND protocol version 5 and
rejected (ignored) FLTK as DND receiver because we allowed only
protocol version 4. Known apps: Google Chrome and Chromium.

This commit enables XDND protocol version 5 in FLTK programs as
DND receiver.
2024-06-15 12:11:41 +02:00
ManoloFLTK
7d98413d46 macOS 15.0 Sequoia: fix capture of window titlebars
The previous procedure using CGWindowListCreateImageFromArray()
is obsoleted in macOS 15.0 .
The new procedure requires an additional framework: ScreenCaptureKit;
FLTK uses it only for macOS ≥ 15.0
2024-06-14 11:55:53 +02:00
ManoloFLTK
7104746413 Fix crash in howto-drag-and-drop under macOS 2024-06-11 15:04:48 +02:00
ManoloFLTK
d7d1d0d6b2 Wayland: fix interactive moving and resizing of a subwindow - cont'd (#987) 2024-06-11 11:37:45 +02:00
ManoloFLTK
b17357339f Fix: Changing default color palette affects opengl child drawing on Wayland (#989) 2024-06-09 20:04:23 +02:00
ManoloFLTK
e5693efb75 Wayland: support DnD from X11-FLTK to Wayland-FLTK 2024-06-08 09:38:28 +02:00
ManoloFLTK
651d9f3e79 Wayland: add necessary calls to gtk_surface1_release() 2024-06-04 16:53:10 +02:00
ManoloFLTK
e2eeb36883 macOS: remove use of deprecated [NSBox setBorderType:] method 2024-06-03 17:36:08 +02:00
ManoloFLTK
6712130f22 Document how to control window location in screen under Wayland 2024-06-03 15:05:04 +02:00
ManoloFLTK
ce46b4b68b Wayland: fix interactive moving and resizing of a subwindow (#987) 2024-06-03 09:50:41 +02:00
ManoloFLTK
d792ed21f5 Fix Child Windows under Wayland are clipped on resizing … (#987) 2024-06-02 08:28:40 +02:00
ManoloFLTK
482da12f71 Fix: Zero-sized borderless window causes high cpu usage on windows (#985) 2024-06-01 16:48:27 +02:00
ManoloFLTK
be5c82b5e5 Reflect libdecor date in bundled-libs.dox 2024-06-01 10:52:23 +02:00
ManoloFLTK
5365aefc6e libdecor: update to upstream commit c2bd8ad6 (31-may-2024) 2024-06-01 10:12:50 +02:00
ManoloFLTK
04949f1349 Fix typo in doc of Fl_Double_Window::as_double_window() 2024-05-30 08:26:57 +02:00
ManoloFLTK
70c6f2ce12 Fix: Wayland sends wrong events after an FL_DRAG of a top window - cont'd (#983) 2024-05-28 22:28:54 +02:00
ManoloFLTK
9c8977eff1 Fix: Wayland sends wrong events after an FL_DRAG of a top window (#983) 2024-05-28 15:33:33 +02:00
ManoloFLTK
f3f69b892d Remove useless Fl_Window_Driver accessors after new member Fl_Window::get_size_range() 2024-05-27 11:39:27 +02:00
ManoloFLTK
c1333a2dec Wayland documentation: more about opening display connection 2024-05-27 10:40:24 +02:00
Matthias Melcher
e325c2e4a0 Adding new call Fl_Window::get_size_range(), #981 2024-05-26 17:50:47 +02:00
Matthias Melcher
2bab8c94ff Revert InputChoice from fd791a0
A change to Fl_Input_Choice callbacks slipped into
fd791a068e.
This Commit removes that change. It may need to be
fixed and reapplied later in its own Commit.
2024-05-26 17:00:41 +02:00
ManoloFLTK
00dc35097b Control screen used by Fl_Menu_Bar::play_menu() - cont'd 2024-05-24 13:20:58 +02:00
ManoloFLTK
a09d43eb40 Fix: Fl_Browser unexpected display of empty lines ("@." vs "") (#979) 2024-05-24 10:03:37 +02:00
ManoloFLTK
0a6610c480 Control screen used by Fl_Menu_Bar::play_menu() 2024-05-23 16:38:51 +02:00
ManoloFLTK
614d551d05 Wayland documentation: further details about throttling window redraws 2024-05-22 13:13:29 +02:00
ManoloFLTK
df3c875453 Beef up documentation about throttling window redraws under Wayland 2024-05-21 15:28:18 +02:00
ManoloFLTK
8807efe939 More details about handling modal windows and various gnome versions 2024-05-21 09:23:24 +02:00
ManoloFLTK
c5d6382fb1 Wayland: don't call gtk_surface1_release() probably not useful
Also, add comment about when call to gtk_surface1_set_modal() is useful or useless but harmless.
2024-05-20 18:22:19 +02:00
Albrecht Schlosser
f903cf8026 Fix "Support building with unusual prefix" (STR 3434)
Add '$(LDFLAGS)' to build commands for libs, for details see STR 3434.
This applies to configure/make only, CMake builds are not affected.
2024-05-20 15:14:57 +02:00
ManoloFLTK
3d6bcda157 Wayland: accept diverse versions of the GTK Shell protocol 2024-05-19 17:34:39 +02:00
ManoloFLTK
642ec5b74b Slightly reorganize code of Fl_MacOS_Sys_Menu_Bar_Driver::play_menu() 2024-05-18 12:09:49 +02:00
Albrecht Schlosser
d0922792ae Improve fl_contrast() functionality and documentation
- swap 3rd and 4th parameter of fl_contrast()
- change 'Fl_Fontsize fs' to a neutral 'int size' parameter
- clarify documentation of fl_contrast_level() and that different
  contrast algorithms use different level values
- clarify that level 39 for the CIELAB mode results in "sufficient"
  contrast, i.e. /readable/ text which is the only intention of
  fl_contrast().

Reasoning: swapping the arguments looks more natural, i.e. the context
before another argument (size) is what one would usually expect. Since
the 'size' argument doesn't have be a font size, making it a simple
'int size' is more flexible and correct for future extensions.
2024-05-17 14:20:01 +02:00
ManoloFLTK
7410498a7f Comment that macOS windows move OK between LowRes and HighRes screens 2024-05-17 09:53:47 +02:00
Albrecht Schlosser
9820d9f555 Fix and improve fl_contrast() calculations
- src/fl_contrast.cxx:
  - FL_CONTRAST_LEGACY: reset black/white threshold from 55 to 50
  - FL_CONTRAST_CIELAB: change default contrast level from 55 to 39

- test/contrast.cxx:
  - set default contrast mode to CIELAB
  - add "random color" button to test random foreground colors (text)
  - slightly increase terminal size
  - make the Fl_Terminal widget the resizable() of the window
2024-05-16 19:58:24 +02:00
ManoloFLTK
9df6dc2aeb Fix uses of isupper() and isprint() - STR #3436 2024-05-15 14:59:13 +02:00
ManoloFLTK
a9085c3b11 Change member function args to Fl_Menu_Bar::play_menu(const Fl_Menu_Item *) 2024-05-15 11:50:32 +02:00
ManoloFLTK
66c37e5128 Fix crash in test/cube under macOS when using Quit menubar item 2024-05-14 18:15:05 +02:00
ManoloFLTK
79c3db48cf New member function Fl_Menu_Bar::play_menu(const char *title) 2024-05-14 17:46:25 +02:00
Albrecht Schlosser
ea96237525 Update bundled libpng from 1.6.42 to 1.6.43 2024-05-13 19:18:54 +02:00
Albrecht Schlosser
1325a257bf Update README.txt 2024-05-13 19:08:42 +02:00
Albrecht Schlosser
bc63ea7629 CMake: improve linking OpenGL3 example programs (#959)
- Remove find_library(LIB_GLEW ...) from 'resources.cmake'

- Use the variable FLTK_GLEW_DIR to "find" a user supplied GLEW library
  for OpenGL3 example programs (examples/OpenGL3*.cxx).
  Both static and shared libs (DLLs) are supported, but the static
  library is preferred to avoid DLL dependencies.

- Define preprocessor macro 'GLEW_STATIC' by CMake compile definitions
  if and only if the static glew library (glew32s) was found and linked.
  The previous code defined 'GLEW_STATIC' unconditionally in the source
  code which led to undefined references if a shared lib (DLL) was used.
2024-05-13 15:19:27 +02:00
Albrecht Schlosser
d1ea57bc7a CMake: improve finding cairo.dll on Windows
- don't use pkg-config to find Cairo if FLTK_CAIRO_DIR is set
- use FLTK_CAIRO_DIR to locate Cairo headers and DLL if it is set
- otherwise try to find Cairo with pkg-config anyway

This prevents accidentally "finding" the system Cairo libs provided
by MSYS - which would tie the FLTK library and user programs to MSYS,
i.e. it would make FLTK programs depend on the MSYS installation.
2024-05-13 15:18:04 +02:00
ManoloFLTK
a28a7c381d Documentation: add details about handling of FL_DND_RELEASE event
see also STR #3399.
2024-05-13 14:58:14 +02:00
ManoloFLTK
5b3dd72e4e Wayland: call gtk_surface1_set_modal() of GTK Shell protocol - cont'd 2024-05-13 13:24:07 +02:00
ManoloFLTK
95eb4cb91a Remove change erroneously committed at 4eb98c0 2024-05-13 13:07:14 +02:00
ManoloFLTK
4eb98c0af4 Fl_Menu_Bar: document how to programmatically open menu from menubar 2024-05-13 12:46:47 +02:00
Albrecht Schlosser
6c06e953e1 Fix "Cannot build project with CMake ..." (#970)
... (add_library cannot create ALIAS target "fltk" because target
"fltk::fltk" is imported but not globally visible)

It turned out that this was due to a CMake feature that was changed in
CMake 3.18. This commit makes imported FLTK targets globally visible
for CMake versions less than 3.18.
2024-05-13 12:05:27 +02:00
ManoloFLTK
ef33f3e0e2 Wayland: call gtk_surface1_set_modal() of GTK Shell protocol for modal wins
This has the Mutter compositor open modal windows at the center of their parent window
rather than at an unpredictable display position before this commit.
2024-05-11 19:52:00 +02:00
Albrecht Schlosser
e9feef99fa Update README.CMake.txt for building X11 specific programs
Clarify different ways to disable Wayland in executable programs
designed to use X11 specific code w/o further changes.
2024-05-11 17:29:26 +02:00
Albrecht Schlosser
e5afb8a532 Enable suppression of "deprecated" warnings (FL_NO_DEPRECATE)
This is intended for backwards compatibility with FLTK 1.3.x code
ported to 1.4.0.

Users defining FL_NO_DEPRECATE can compile old (1.3.x) code w/o
seeing lots of "deprecated" warnings. A legitimate use case is if
old (1.3) code is intended to be used with both FLTK 1.3 and 1.4.

FL_NO_DEPRECATE should NOT be defined if the user's code is targeted
at 1.4.x or later. Users should fix their code to be prepared for
the next minor release (e.g. 1.5.0).

Todo: document this.
2024-05-11 17:14:28 +02:00