Commit Graph

1541 Commits

Author SHA1 Message Date
ManoloFLTK
2fbf5bed0d Fix "Wayland: crash with set_menu_window()" (#892)
Fixes also a similar crash occuring after use of set_tooltip_window().
Two bool member variables are added to class Fl_Window_Driver
to indicate true FLTK menu windows (i.e., created by Fl_Menu_Item::pulldown())
and true FLTK tooltip windows (i.e., Fl_Tooltip).
2024-01-21 08:30:49 +01:00
Albrecht Schlosser
b5b839e4f0 Fix compiler warning [-Wmaybe-uninitialized]
'buf' could indeed be used uninitialized if the switch statement
below was executed with an unknown style (no default case).
2024-01-19 19:38:11 +01:00
ManoloFLTK
13d412f82f Wayland: add necessary initializations after commit b7fba46 2024-01-19 09:32:57 +01:00
ManoloFLTK
01f2f760b6 Create struct wl_callback_listener *Fl_Wayland_Graphics_Driver::p_surface_frame_listener 2024-01-18 08:51:31 +01:00
ManoloFLTK
b7fba465ce Wayland: throttle resize operations also for top-level GL windows
Member cb of struct wld_buffer is replaced by member frame_cb of struct wld_window.
This allows frame_cb to be used both for non-GL and for top-level GL windows.
2024-01-18 08:10:33 +01:00
ManoloFLTK
0dfa37f4c0 Wayland + full-size subwindow resizing issue - cont'd (#878)
Implement a less strict handling of resizing of a decorated window entirely covered
by a subwindow where throttling of fast resize commands is guided by the
value of the in_use member variable of the window's wld_buffer.
2024-01-17 11:43:00 +01:00
ManoloFLTK
994b5824dc Wayland: fix processing of keypad keys - cont'd (#881) 2024-01-13 10:48:52 +01:00
ManoloFLTK
2db1929985 Wayland: fix processing of keypad keys - tidying (#881) 2024-01-07 10:14:40 +01:00
Albrecht Schlosser
37eefe5548 Wld: Add missing keypad key to keypad translation table (#881)
Keypad key 'Del' aka '.' (or ',') was missing in the key translation
table for Fl::e_original_keysym.

Also: add DEBUG_KEYBOARD macro to enable/disable keyboard debugging
code easier.
2024-01-06 17:56:04 +01:00
ManoloFLTK
e1cd6dec4a Wld: Fix e_original_keysym for keypad number keys + NumLock off (#881) 2024-01-06 12:38:24 +01:00
ManoloFLTK
a893cc3f5e Wayland: fix processing of '.' keypad key (#881) 2024-01-06 09:22:40 +01:00
ManoloFLTK
bc28433f2e Wayland: numeric keypad keys don't work as intended - cont'd (#881) 2024-01-05 19:34:46 +01:00
ManoloFLTK
944b5e7072 Wayland: numeric keypad keys don't work as intended (#881) 2024-01-05 19:05:36 +01:00
ManoloFLTK
30f2ec8185 Fix for bug in Mutter Wayland compositor (#878) - cont'd
Add more tests to do additional operations under stricter conditions
2023-12-28 11:28:47 +01:00
ManoloFLTK
6143764885 Fix for bug in Mutter Wayland compositor (#878)
Mutter implements too strictly this rule expected from compositors about "frame callbacks" :
"A server should avoid signaling the frame callbacks if the surface is not visible in any way,
e.g. the surface is off-screen, or completely obscured by other opaque surfaces."
When a window is being interactively resized, it makes no sense to create a frame callback
for an entirely covered surface but then never signal the surface can be redrawn,
because this blocks the resize operation.

Neither KWin nor Weston have this problem.
2023-12-28 09:59:51 +01:00
ManoloFLTK
bb5cb5b6d4 Wld: export only member functions for ./configure --enable-shared (#872) 2023-12-26 16:00:44 +01:00
Albrecht Schlosser
76a2c95f07 Fix a typo, trailing whitespace, and dependencies 2023-12-21 14:03:04 +01:00
ManoloFLTK
3984639270 Restore "configure --enable-shared" under Linux (#872) 2023-12-20 23:42:45 +01:00
ManoloFLTK
96bacd3f9d Procedure to instruct FLTK to use given X11 connexion (#149) 2023-12-19 15:48:26 +01:00
ManoloFLTK
46b2f50750 Wayland: Menu items are accessible when mouse is over another win (#869) 2023-12-18 07:49:02 +01:00
Matthias Melcher
469d3ef3d5 #842: Enables command line color arguments on macOS 2023-12-16 21:59:43 +01:00
ManoloFLTK
673fa2e09c FLTK implementation of the "GTK Shell" Wayland protocol - cont'd
The loop over all libdecor-gtk decorations is now made using libdecor's
data structures, rather than using FLTK's mapped window list.
2023-12-14 07:55:31 +01:00
MatthiasWM
6ac3e8e230 #840: Fixes fixed buffer size in Fl::args_to_utf8() 2023-12-13 20:00:49 +01:00
ManoloFLTK
0936c2a55d FLTK implementation of the "GTK Shell" Wayland protocol - cont'd
The pointer_enter() function now checks that its non-FLTK wl_surface  argument
is the wl_surface of the titlebar of a GTK-decorated window.
2023-12-13 14:48:08 +01:00
ManoloFLTK
9738e52511 macOS platform + GLUT: fix crash with glut_test - cont'd 2023-12-13 10:41:15 +01:00
ManoloFLTK
36d34983bb Wayland+GLUT: fix crash in glut_test application - cont'd 2023-12-13 10:17:22 +01:00
ManoloFLTK
04cf2c4c7d Wayland+GLUT: fix crash in glut_test application 2023-12-12 21:17:42 +01:00
ManoloFLTK
a20bace4e1 macOS platform + GLUT: fix crash with glut_test app 2023-12-12 19:46:38 +01:00
ManoloFLTK
861bc339c0 Replace wl_output_destroy() by wl_output_release() when possible 2023-12-10 12:48:06 +01:00
ManoloFLTK
18ccbb4a4f Wayland: much lighter but partial implementation of the "GTK Shell" protocol
Only the middle-button click gesture is implemented which avoids interference
with what libdecor does with right-click and double-click.
2023-12-05 22:53:26 +01:00
Albrecht Schlosser
a73a14347d Fix compiler warnings
fluid/code.cxx: unused variable

src/drivers/Xlib/Fl_Xlib_Graphics_Driver_font_x.cxx:
  function may return address of local variable [-Wreturn-local-addr]
2023-12-04 16:50:23 +01:00
ManoloFLTK
3e61ec7044 New member function Fl_Image_Surface::mask(Fl_RGB_Image*) 2023-12-04 12:34:44 +01:00
ManoloFLTK
f72748bb45 Wayland: make OPTION_USE_SYSTEM_LIBDECOR ON by default
This commit makes the default FLTK build setting use libdecor
as packaged in Linux when the build system contains packages
libdecor-0-dev and libdecor-0-plugin-1-gtk in version ≥ 0.2.0.
Otherwise, FLTK uses the bundled version of libdecor.
This includes situations where package libdecor-0-dev is
present in an earlier version.
2023-12-02 09:28:08 +01:00
Matthias Melcher
1077d74958 Fixes name conflict in X11 GL swap_interval 2023-12-01 02:33:38 +01:00
Matthias Melcher
a69fc0c9e5 Fixes anonymous union intialisation for C++98 2023-11-30 15:55:37 +01:00
Albrecht Schlosser
727bd94560 Add commandline conversion for Windows (no-op on other platforms)
- add Fl::args_to_utf8() to convert commandline arguments to UTF-8

This new function closes the gap that previously only Visual Studio
applications converted their commandlines to UTF-8.

Tested with MinGW, MSYS2/MinGW-w64, and Visual Studio (2019).
2023-11-29 16:29:54 +01:00
MatthiasWM
06e2bd7f0e Merge branch 'master' of https://github.com/fltk/fltk 2023-11-29 13:16:35 +01:00
MatthiasWM
75c879e2ff Implements swap_interval for MSWindows. 2023-11-29 13:16:24 +01:00
Matthias Melcher
82e838f1fd Adds OpenGL swap_interval for Wayland and X11. 2023-11-28 16:35:39 +01:00
ManoloFLTK
59bdb45566 Rearrange PostScript graphics driver code redundant with Cairo driver 2023-11-28 15:05:58 +01:00
ManoloFLTK
12af9dad3e Remove PostScript graphics driver code redundant with Cairo driver 2023-11-28 09:06:17 +01:00
Albrecht Schlosser
57371365d8 Fix compiler warning, dependencies, and trailing whitespace
The benign warning was:
  ‘Fl_Browser_::hscrollbar’ will be initialized after [-Wreorder]
  ‘int Fl_Browser_::linespacing_’ ...
2023-11-27 15:33:53 +01:00
ManoloFLTK
6ea31316fb Cairo graphics driver: Improve drawing of Fl_Pixmap and Fl_Bitmap 2023-11-27 12:15:21 +01:00
ManoloFLTK
f6d2ba651b Cairo graphics driver: Improve drawing of Fl_Pixmap and Fl_Bitmap 2023-11-27 10:02:59 +01:00
Matthias Melcher
f3348e8120 Adds GL swap control for X11 2023-11-26 21:44:00 +01:00
Matthias Melcher
6817e821af STR 1373: adds vsync control to OpenGL contexts on macOS
Windows and X11 to follow, no idea about Wayland.
2023-11-26 12:37:59 +01:00
ManoloFLTK
4f894e4745 Cairo graphics driver: Improve drawing of Fl_Pixmap and Fl_Bitmap
Previously, these objects were drawn slightly blurred on HighDPI.
This commit has them resized to the pixel size of the area where
they are being drawn and then drawn.
2023-11-25 12:09:54 +01:00
ManoloFLTK
eb9dd202b2 Fix Fl_Wayland_Image_Surface_Driver c'tor 2023-11-20 10:56:36 +01:00
ManoloFLTK
dd1c2fc843 Wayland: fix moving top-level window around with mouse 2023-11-15 11:48:45 +01:00
Albrecht Schlosser
4b315d190c Fix dependencies and whitespace issues 2023-11-14 18:14:48 +01:00