Commit Graph

12431 Commits

Author SHA1 Message Date
ManoloFLTK dfc930d346 Wayland: partial implementation of multi-screen fullscreen windows (#1397)
Build and Test / build-linux (push) Has been cancelled
Build and Test / build-wayland (push) Has been cancelled
Build and Test / build-macos (push) Has been cancelled
Build and Test / build-windows (push) Has been cancelled
Wayland doesn't seem to allow creation of true multi-screen fullscreen windows.
This commit implements an approximation of a multi-screen fullscreen window.
It resizes a window to the total width and the total height of targetted screens.
Under Mutter, this produces a window that covers all screens except the
main screen's menubar.
Other compositors may reply differently to this request.
KWin produces a multi-screen fullscreen window only if the window is initially
decorated and in the main screen.
2026-04-08 10:45:50 +02:00
ManoloFLTK 24b66b2b31 Wayland: fix computation of workarea and screen positions when fractional scaling.
Build and Test / build-linux (push) Has been cancelled
Build and Test / build-wayland (push) Has been cancelled
Build and Test / build-macos (push) Has been cancelled
Build and Test / build-windows (push) Has been cancelled
2026-04-08 08:57:59 +02:00
Albrecht Schlosser 1377c60100 Fl_Tree: make automatic resizing of children optional (STR 3030)
Build and Test / build-linux (push) Has been cancelled
Build and Test / build-wayland (push) Has been cancelled
Build and Test / build-macos (push) Has been cancelled
Build and Test / build-windows (push) Has been cancelled
- add getter and setter methods:
  - int Fl_Tree::auto_resize_children()
  - void Fl_Tree::auto_resize_children(int mode)

Note: the default in 1.5.0 is "OFF", i.e. no automatic resizing.
  The methods above can be used to switch it on if required.

This is a behavioral change to fix a bug in 1.4 and lower. It will not
be backported because it would break the ABI.
2026-04-07 20:41:08 +02:00
BlueCannonBall 49f3aaf4a1 Add null check for child window in callback
Build and Test / build-linux (push) Has been cancelled
Build and Test / build-wayland (push) Has been cancelled
Build and Test / build-macos (push) Has been cancelled
Build and Test / build-windows (push) Has been cancelled
Fixes issue #1401
2026-04-06 08:01:17 +02:00
ManoloFLTK 12f90c87d6 Wayland: set the "application identifier" of non bordered, toplevel windows also (#1391).
Build and Test / build-linux (push) Has been cancelled
Build and Test / build-wayland (push) Has been cancelled
Build and Test / build-macos (push) Has been cancelled
Build and Test / build-windows (push) Has been cancelled
2026-04-04 09:13:06 +02:00
ManoloFLTK ad537eddce Fix Fl_Image::fail() that reported always failure for Fl_Bitmap's. 2026-04-03 15:27:00 +02:00
ManoloFLTK 1e2d7d2a95 Fix typo in documentation. 2026-04-03 15:06:12 +02:00
ManoloFLTK f315573a26 Implement Fl_Window::xclass(const char*) for the Wayland platform (#1391).
Also, improve the document of this member function for the Windows platform.
2026-04-03 09:43:36 +02:00
ManoloFLTK d816da57b8 Wayland: restore usability of fl_close_display(). 2026-04-02 14:24:31 +02:00
ManoloFLTK e8e5e61505 Wayland: polish operations performed in atexit callback. 2026-04-02 12:58:36 +02:00
ManoloFLTK f121bc1c7e Wayland: call libdecor_unref() at end of program as required by libdecor. 2026-04-02 12:21:21 +02:00
ManoloFLTK 8e9e2b7818 Wayland: dispatch socket data with function libdecor_dispatch() as required by libdecor.
Many thanks to Jonas Ådahl for pointing out FLTK didn't follow this requirement
and suggesting code changes (#1390).
2026-04-02 09:17:23 +02:00
ManoloFLTK 1120eb96cd Fl_OpenGL_Graphics_Driver: improve partial image drawing. 2026-04-01 11:52:52 +02:00
ManoloFLTK 0279cd6691 Fl_OpenGL_Graphics_Driver: add support of depth-2 Fl_RGB_Image's. 2026-03-31 16:37:47 +02:00
ManoloFLTK 2b04b00f6e Fl_OpenGL_Graphics_Driver: add support of depth-1 Fl_RGB_Image's. 2026-03-31 09:36:11 +02:00
ManoloFLTK d6a89246a0 Fix typo in function Fl_RGB_Image *bitmap_to_rgb1(Fl_Bitmap*) in Fl_OpenGL_Graphics_Driver 2026-03-30 16:55:48 +02:00
ManoloFLTK 3d4be2470c Fl_OpenGL_Graphics_Driver: add support of Fl_Bitmap and a cache of textures. 2026-03-30 16:31:26 +02:00
Albrecht Schlosser 33609ba730 Fl_Scroll: replace two local structs with Fl_Rect
- replace struct Fl_Region_XYWH with Fl_Rect
- replace struct Fl_Region_LRTB with Fl_Rect
- rename  struct Fl_Scrollbar_Data to Scrollbar_Data

Note: these local structs were created before Fl_Rect existed and
are now obsolete.
2026-03-28 19:25:38 +01:00
ManoloFLTK a0d9a3aa22 Fl_OpenGL_Graphics_Driver: create file Fl_OpenGL_Graphics_Driver_image.cxx
Build and Test / build-linux (push) Has been cancelled
Build and Test / build-wayland (push) Has been cancelled
Build and Test / build-macos (push) Has been cancelled
Build and Test / build-windows (push) Has been cancelled
2026-03-28 10:21:21 +01:00
ManoloFLTK 3806717f6f Add gl_image example program to illustrate drawing images to an Fl_Gl_Window. 2026-03-28 08:20:31 +01:00
ManoloFLTK 578b91d490 Wayland: fix creation of toplevel Fl_Gl_Window 2026-03-28 07:25:34 +01:00
ManoloFLTK a692c91524 Add support of RGB image and Pixmap drawing to class Fl_OpenGL_Graphics_Driver.
Build and Test / build-linux (push) Has been cancelled
Build and Test / build-wayland (push) Has been cancelled
Build and Test / build-macos (push) Has been cancelled
Build and Test / build-windows (push) Has been cancelled
This allows to add RGB (and derived classes) or Pixmap images to widgets
layed over a GL scene.
2026-03-27 17:29:25 +01:00
ManoloFLTK ed2238bc2a Override virtual function Fl_Image::scale(int,int) for class Fl_SVG_Image.
An SVG image has no intrinsic size, so it makes no sense to prohibit enlarging it beyond an intrinsic size.
2026-03-27 17:10:35 +01:00
ManoloFLTK d8b9180dc7 Documentation change related to "RGB sub image drawing slow with larger images" (#1384)
Build and Test / build-linux (push) Has been cancelled
Build and Test / build-wayland (push) Has been cancelled
Build and Test / build-macos (push) Has been cancelled
Build and Test / build-windows (push) Has been cancelled
2026-03-24 09:08:25 +01:00
ManoloFLTK e814219ade Fix "[Wayland] test/menubar: unable to open huge menu in GNOME Shell 49.5" (#1383)
Build and Test / build-linux (push) Has been cancelled
Build and Test / build-wayland (push) Has been cancelled
Build and Test / build-macos (push) Has been cancelled
Build and Test / build-windows (push) Has been cancelled
2026-03-24 08:04:28 +01:00
ManoloFLTK 2b92bbe933 Fix typo in doxygen documentation.
Build and Test / build-linux (push) Has been cancelled
Build and Test / build-wayland (push) Has been cancelled
Build and Test / build-macos (push) Has been cancelled
Build and Test / build-windows (push) Has been cancelled
2026-03-23 12:59:29 +01:00
ManoloFLTK e06c231760 macOS: Fix GL window child widgets when the window's screen changes resolution 2026-03-23 12:21:11 +01:00
ManoloFLTK 6f3a061069 Wayland: Fix resize of menutitle windows when across 2 screens with diverse scaling - cont'd.
Build and Test / build-linux (push) Has been cancelled
Build and Test / build-wayland (push) Has been cancelled
Build and Test / build-macos (push) Has been cancelled
Build and Test / build-windows (push) Has been cancelled
2026-03-18 19:00:29 +01:00
ManoloFLTK d5eea42645 Wayland: fix computation of wld_scale parameter for GL subwindows - cont'd (#1382) 2026-03-18 16:22:13 +01:00
ManoloFLTK dadd17e21b Wayland: fix computation of wld_scale parameter for GL subwindows (#1382)
Build and Test / build-linux (push) Has been cancelled
Build and Test / build-wayland (push) Has been cancelled
Build and Test / build-macos (push) Has been cancelled
Build and Test / build-windows (push) Has been cancelled
2026-03-18 12:22:37 +01:00
ManoloFLTK 91b0f53d34 Wayland: Fix resize of menutitle windows when across 2 screens with diverse scaling. 2026-03-18 10:14:19 +01:00
ManoloFLTK 6270570bd6 Fix "Wayland: subwindows seem to grab scaling factor from primary monitor" (#1382) 2026-03-18 09:33:53 +01:00
dannye 49359d1cdc X11: Fix resize of menutitle windows when across 2 screens with diverse scaling
Build and Test / build-linux (push) Has been cancelled
Build and Test / build-wayland (push) Has been cancelled
Build and Test / build-macos (push) Has been cancelled
Build and Test / build-windows (push) Has been cancelled
2026-03-17 20:43:02 +01:00
Albrecht Schlosser 7263bc7baa Wayland: Fix crash in test/sudoku if ALSA soundlib is not available
Build and Test / build-linux (push) Has been cancelled
Build and Test / build-wayland (push) Has been cancelled
Build and Test / build-macos (push) Has been cancelled
Build and Test / build-windows (push) Has been cancelled
... and the /hybrid/ FLTK lib is running under the Wayland backend.
In this case X11 stuff must be disabled.

Currently playing sounds under Wayland is only supported with the
ALSA sound library.
2026-03-17 15:58:59 +01:00
ManoloFLTK cc03f5dc95 Close active menus when moving window to new screen.
This prevents menu windows from becoming inadequately located.
2026-03-17 13:40:08 +01:00
ManoloFLTK cd301b8c0d X11: improve menubar behavior when across 2 screens with diverse scaling (#1380)
Build and Test / build-linux (push) Has been cancelled
Build and Test / build-wayland (push) Has been cancelled
Build and Test / build-macos (push) Has been cancelled
Build and Test / build-windows (push) Has been cancelled
2026-03-17 09:27:48 +01:00
ManoloFLTK 8d612d91b2 Remove member function Fl_Cairo_Graphics_Driver::check_status() of debugging interest only.
Build and Test / build-linux (push) Has been cancelled
Build and Test / build-wayland (push) Has been cancelled
Build and Test / build-macos (push) Has been cancelled
Build and Test / build-windows (push) Has been cancelled
2026-03-16 18:12:31 +01:00
ManoloFLTK 450d23f636 Fix "Menu windows appear at wrong positions and sizes with multiple displays" (#1380) 2026-03-16 15:48:11 +01:00
ManoloFLTK 258a0f8f9e Fix "Cairo: Rect with negative dimensions is still drawn" (#1379) 2026-03-16 12:03:10 +01:00
ManoloFLTK dd260389ec Fix Fl_X11_Window_Driver::flush_double(int) that could fail when scaling is applied (#1370)
Build and Test / build-linux (push) Has been cancelled
Build and Test / build-wayland (push) Has been cancelled
Build and Test / build-macos (push) Has been cancelled
Build and Test / build-windows (push) Has been cancelled
2026-03-16 11:51:23 +01:00
ManoloFLTK abaa550aea Simplify Fl_X11_Window_Driver::resize() when using cairo graphics.
Build and Test / build-linux (push) Has been cancelled
Build and Test / build-wayland (push) Has been cancelled
Build and Test / build-macos (push) Has been cancelled
Build and Test / build-windows (push) Has been cancelled
2026-03-15 10:41:29 +01:00
ManoloFLTK d8be762283 Fix use of the cairo graphics driver with Fl_Double_Window and the X11 platform (#1370).
FLTK now handles Fl_Double_Window with the cairo graphics driver as with the X11 graphics driver:
- when drawing via the window's draw() method, FLTK draws to the offscreen cairo surface
and then copies the offscreen surface to the screen;
- when drawing outside the draw() method after a call to make_current(), FLTK draws to
a cairo surface associated to the mapped window.
2026-03-15 09:16:18 +01:00
ManoloFLTK b4f73314a7 Add int return type to Fl::get_mouse(int&, int&) providing the number of mouse-containing screen.
Build and Test / build-linux (push) Has been cancelled
Build and Test / build-wayland (push) Has been cancelled
Build and Test / build-macos (push) Has been cancelled
Build and Test / build-windows (push) Has been cancelled
2026-03-13 15:53:52 +01:00
ManoloFLTK a342d9f3d5 Improve Fl_Window::hotspot() when diverse screens have diverse scale factors. 2026-03-13 14:46:13 +01:00
ManoloFLTK 278e6eef6e Fix issues with Fl_RGB_Image::draw() + window scaling, and performance concerns (#1370)
Build and Test / build-linux (push) Has been cancelled
Build and Test / build-wayland (push) Has been cancelled
Build and Test / build-macos (push) Has been cancelled
Build and Test / build-windows (push) Has been cancelled
2026-03-13 09:27:25 +01:00
ManoloFLTK 38cad05357 Improve Fl_RGB_Image::draw(int XP, int YP, int WP, int HP, int cx, int cy)
Build and Test / build-linux (push) Has been cancelled
Build and Test / build-wayland (push) Has been cancelled
Build and Test / build-macos (push) Has been cancelled
Build and Test / build-windows (push) Has been cancelled
2026-03-11 16:36:27 +01:00
ManoloFLTK a92fbec43a Improve drawing of part of Fl_RGB_Image while scaling display (#1370)
Build and Test / build-linux (push) Has been cancelled
Build and Test / build-wayland (push) Has been cancelled
Build and Test / build-macos (push) Has been cancelled
Build and Test / build-windows (push) Has been cancelled
2026-03-10 16:00:34 +01:00
ManoloFLTK ce7b335d4d Improve control of screen where FLTK positions menu windows (#1376)
Build and Test / build-linux (push) Has been cancelled
Build and Test / build-wayland (push) Has been cancelled
Build and Test / build-macos (push) Has been cancelled
Build and Test / build-windows (push) Has been cancelled
2026-03-10 08:33:34 +01:00
ManoloFLTK 527972e7a4 Fix "Window scaling shortcut always moves window towards "initial" display on Windows" (#1371)
Build and Test / build-linux (push) Has been cancelled
Build and Test / build-wayland (push) Has been cancelled
Build and Test / build-macos (push) Has been cancelled
Build and Test / build-windows (push) Has been cancelled
2026-03-09 18:42:23 +01:00
ManoloFLTK 43fded082b Menus on Windows appear on wrong position on a 4K display (#1376) 2026-03-09 18:10:08 +01:00