ManoloFLTK
89454508a2
Fix Fl_Simple_Terminal::append(str, len) assumes a null terminated string ( #728 )
2023-05-19 18:57:18 +02:00
ManoloFLTK
033880673a
Add null-pointer check for tall menu window under Wayland+KDE
2023-05-17 09:39:39 +02:00
ManoloFLTK
e5ac5678dc
Fix handling of tall menu windows with the KDE Wayland compositor
...
Unfortunately (sigh), the KDE Wayland compositor does not seem to support
correctly, that is, as described by the Wayland protocol, popup windows
that are taller than the display : there is no means to make it draw such popup
so that part of it is above the screen top, whereas the 3 other tested compositors
(Mutter, Weston, Sway) don't have this problem.
This commit implements a new approach to draw tall menu windows, and uses
it only with the KDE compositor : instead of asking the compositor to slide the
menu window up, the menu window remains at a fixed position and the graphics
inside the window is slided up.
This requires to add a member variable, int offset_y, to class menuwindow, that
gets used only for the Wayland platform and that contains the vertical offset by which
graphics to the menu window is moved, expressed in FLTK units. An accessor
to the address of this member variable is added to class Fl_Window_Driver.
2023-05-15 12:40:24 +02:00
ManoloFLTK
1555132df1
Wayland: improve tall menu window support with xdg_positioner_set_offset()
2023-05-13 16:29:51 +02:00
ManoloFLTK
7a50c8234a
Wayland: slightly simpler surface_enter() for toplevel GL windows
2023-05-12 08:47:56 +02:00
ManoloFLTK
7ef6b9f802
Wayland: fix opening GL top-level window on 2-screen system - cont'd
2023-05-11 18:59:34 +02:00
ManoloFLTK
37abac2d8e
Wayland: fix opening GL top-level window on 2-screen system
2023-05-11 18:42:07 +02:00
Albrecht Schlosser
a4c6c18b3d
Fix doxygen doc generation and document platform specific files
...
Pure platform specific files like 'src/*_win32.cxx' are excluded from
doxygen processing and don't need doxygen specific guard macros.
Document this fact prominently at the beginning of each file.
Fix exclude patterns and remove duplicates from Doxyfile.in.
2023-05-09 22:36:41 +02:00
ManoloFLTK
89a2b1a7a8
Fl_Wayland_Screen_Driver::get_system_scheme() is not needed
2023-05-03 14:17:10 +02:00
ManoloFLTK
a94fed77e4
Wayland: clearer procedure to complete initialisation of screen data
2023-05-03 08:50:19 +02:00
ManoloFLTK
9ffeef7697
Wayland: problem with menus on secondary monitor - cont'd ( #724 )
2023-05-02 17:59:08 +02:00
ManoloFLTK
ef5bf60239
Wayland: problem with dropdown menus on secondary monitor ( #724 )
2023-05-02 14:50:33 +02:00
ManoloFLTK
0394a27074
Wayland: wl_cursor_theme_load() may return NULL
2023-05-01 21:41:26 +02:00
ManoloFLTK
02c7ee5128
Fix regression in Fl::screeen_xywh() introduced at 9ea0cc8
2023-05-01 21:10:43 +02:00
ManoloFLTK
ae65a6bf99
Check return values of calls to libxkbcommon functions ( #727 )
2023-05-01 17:36:36 +02:00
ManoloFLTK
3e2c8d5a95
Allow building Wayland platform without dbus - cont'd ( #726 )
...
CMake-based building without dbus is made possible
2023-04-30 21:36:19 +02:00
Matthias Melcher
a2929b15ba
Undid old change in Windows code that causes undesired results (STR 1115)
...
Windows created when another window was grab()'d would always become
dependents under WIN32, hiding them when the grabbed window was hidden.
2023-04-30 20:08:44 +02:00
ManoloFLTK
7a8343e7e4
Fix crash reported in issues #723 and #724
2023-04-29 17:06:55 +02:00
ManoloFLTK
52a15632a6
Make sure Wayland surface size is integer multiple of wld_ scale
2023-04-28 11:27:32 +02:00
ManoloFLTK
04e996ee81
Improve integration with the OWL Wayland compositor
2023-04-28 09:47:20 +02:00
ManoloFLTK
9ea0cc89fb
Slightly simpler Fl_Wayland_Screen_Driver::open_display_platform()
2023-04-27 17:06:46 +02:00
ManoloFLTK
e82e709bcc
Multiline Fl_Input: fix move up/down in non ASCII text
2023-04-26 08:25:32 +02:00
ManoloFLTK
58bd71f26d
Wayland filename drag-n-drop: fix final null byte
2023-04-25 16:49:45 +02:00
ManoloFLTK
8489a245ee
Wayland: accept all data_device_manager protocol versions
2023-04-25 10:25:34 +02:00
ManoloFLTK
1ae25242bd
Wayland: set required version of wl_seat protocol to 2
2023-04-25 09:35:46 +02:00
Albrecht Schlosser
6f77f40aad
Windows: define _WIN32_IE for older MinGW versions ( #710 )
...
... if _WIN32_IE is not defined. Older MinGW versions would
otherwise not define SHGFP_TYPE_CURRENT which is needed since
commit 5a4e7caa54
that fixes
GitHub issue #710 : "Fl_Preferences not stored on Windows 10".
This commit is based on Ian's work as discussed in fltk.coredev, thread
"fltk-1.4 build error in Fl_WinAPI_System_Driver.cxx with 32-bit mingw"
on Apr 20, 2023.
2023-04-24 14:26:56 +02:00
ManoloFLTK
4bf9172a8e
Replace internal fl_create_offscreen() calls by new Fl_Image_Surface
2023-04-23 10:03:02 +02:00
ManoloFLTK
897a6910b6
Slightly simpler Fl_Wayland_Graphics_Driver::copy_offscreen()
2023-04-23 09:37:36 +02:00
ManoloFLTK
544ab551e1
Remove superfluous #include directive
2023-04-21 23:48:23 +02:00
ManoloFLTK
fe972185c0
Fl_Window_Driver::destroy_double_buffer() does not need overrides
2023-04-21 16:27:08 +02:00
ManoloFLTK
f8f7e101f3
Remove unnecessary Fl_Window_Driver::flush_Fl_Window()
2023-04-21 14:33:26 +02:00
ManoloFLTK
9a00f36113
Wayland: keep window resizable after native file chooser - cont'd
2023-04-20 16:45:18 +02:00
ManoloFLTK
bcab001eb5
Wayland: keep window resizable after native file chooser
2023-04-20 15:29:40 +02:00
ManoloFLTK
8d79e4ad43
Inform Wayland compositor that most FLTK windows are opaque
2023-04-20 10:06:43 +02:00
ZJUGKC
385cabf3aa
Add const qualifiers to can_undo and can_redo ( #720 )
2023-04-17 16:12:03 +02:00
ManoloFLTK
54ef53d4ae
Move constant expression out of loop
2023-04-17 10:28:27 +02:00
ManoloFLTK
256e368368
Wayland: account for memorised keyboard surface before wl_surface_destroy()
2023-04-17 08:19:59 +02:00
Albrecht Schlosser
ac76239db7
Remove scheme specific initialization from Fl_Tree_Prefs
...
This initialization would prevent changing the 'selectbox' type
automatically when changing the FLTK scheme.
It would also require to set the FLTK scheme *before* the constructor
of Fl_Tree_Prefs (i.e. Fl_Tree) is executed which is unexpected and
error prone for user code.
It is up to the user program to set another boxtype after the
constructor if needed.
2023-04-15 20:31:35 +02:00
ManoloFLTK
1a7ed133d0
Fix for "Wayland: heap-use-after-free after popup/pulldown" ( #719 )
2023-04-14 19:09:38 +02:00
ManoloFLTK
7091df8c93
Restore building with macOS SDK 10.9 and earlier
2023-04-14 17:57:33 +02:00
Matthias Melcher
e18b5353cd
Fixed leak in Fl_Text_Buffer #716
2023-04-14 16:54:11 +02:00
Matthias Melcher
afd3fde5de
Memory leak in Input_ #716
2023-04-14 16:32:36 +02:00
ManoloFLTK
7e2defc10d
macOS: remove calls to deprecated API
2023-04-14 15:24:18 +02:00
ManoloFLTK
0fe118aa94
Remove duplication of Pango standard font names
...
And move each array of standard font names to appropriate font-related source file
2023-04-14 08:15:50 +02:00
Albrecht Schlosser
4bc63da34d
Fix compiler warnings [-Wpedantic]
...
Remove extra semicolons after function definitions
2023-04-13 20:27:00 +02:00
ManoloFLTK
232a5399d7
Lower Pango required version from 1.22 to 1.16
2023-04-13 14:32:51 +02:00
ManoloFLTK
caaa11a96f
Standardize API to "graphics context" across platforms
...
Rename fl_wl_cairo() to fl_wl_gc()
Add function cairo_t* fl_cairo_gc() under OPTION_USE_CAIRO
2023-04-13 10:02:40 +02:00
ManoloFLTK
e6c9deb4a4
Wayland: limit copied pixels when window update is a region - cont'd
...
Simpler Fl_Wayland_Window_Driver::flush_overlay() is enough.
2023-04-12 15:01:35 +02:00
ManoloFLTK
2d263a830a
Wayland: limit copied pixels when window update is a region - cont'd
...
Handle Fl_Overlay_Window objects
2023-04-12 00:32:20 +02:00
Albrecht Schlosser
7d8195140c
Add public accessor methods Fl_Widget::needs_keyboard()
...
- add public getter and setter for
- document the new methods
- document that these methods are not yet used internally
- remove unnecessary friend declaration 'NEEDS_KEYBOARD' flag
- simplify Fl::focus(Fl_Widget *) using the new methods.
2023-04-11 16:38:24 +02:00
Albrecht Schlosser
3835b72e2f
Fix CMake generation for minimal CMake version (3.2.3)
...
Unfortunately `execute_process(COMMAND pkg-config ...)` used for
CMake versions lower than 3.4 appends a trailing newline ('\n')
to the output variable which must be removed.
Replace double slash '//' returned by pkg-config with a single '/'
for consistency (applies to all CMake versions).
Tested with CMake 3.2.3 but we should probably raise the minimal
CMake version to a more recent version in the future.
2023-04-10 16:19:09 +02:00
Albrecht Schlosser
027e738655
Fix compiler warning [-Wsign-compare]
2023-04-10 15:58:05 +02:00
ManoloFLTK
4c567a4dd9
Fix "Giant cursor on Wayland + fractional scaling" ( #713 )
2023-04-08 06:50:56 +02:00
ManoloFLTK
0691833375
Wayland: non-resizable windows are positioned in the wrong place ( #711 ) - cont'd
...
That is also expected to be the fix for #712
2023-04-07 15:47:01 +02:00
ManoloFLTK
ad8dd440d2
Wayland: fix for issue #712 (hopefully)
2023-04-07 14:47:03 +02:00
ManoloFLTK
c149091deb
Wayland: fix reporting of relative location of multiple displays
2023-04-07 10:14:11 +02:00
ManoloFLTK
0c930b9ca3
Wayland: limit copied pixels when window update is a region
2023-04-05 23:21:43 +02:00
ManoloFLTK
5cedb9e174
Wayland backend draws everything two or three times - cont'd ( #708 )
2023-04-05 14:57:38 +02:00
ManoloFLTK
e790a3a185
Remove superfluous #include directives
2023-04-04 15:30:18 +02:00
ManoloFLTK
74cd7817af
Remove unneeded #include directives
2023-04-03 16:11:24 +02:00
ManoloFLTK
1d0e63ea78
Improve member function Fl_Wayland_Screen_Driver::surface_to_window()
...
Rename it to Fl_Wayland_Window_Driver::surface_to_window() and
avoid loop over all mapped FLTK windows that used to be performed.
2023-04-03 15:25:19 +02:00
ManoloFLTK
cebf6b5368
Wayland: update comment about differences between compositors
...
Mutter goes back to what it did in earlier versions.
Fortunately, FLTK can handle this change.
2023-04-03 11:20:26 +02:00
ManoloFLTK
7e08bd7e26
Wayland + Weston: fix focus loss after click on titlebar
2023-04-03 08:21:07 +02:00
ManoloFLTK
e239d00cad
Fix "Wayland: non-resizable windows are positioned in the wrong place" ( #711 )
2023-04-02 18:05:36 +02:00
ManoloFLTK
64ac7b47b8
Improve detection of the location of Wayland protocol files across OSes
2023-03-29 15:25:29 +02:00
ManoloFLTK
70252b0c1a
Improve Wayland support of Fl::event_key(int)
...
Key pressed when the Wayland window acquires focus are now detected.
2023-03-29 12:53:39 +02:00
ManoloFLTK
a681aa803c
Complete explanatory comment about Weston compositor
2023-03-29 09:30:30 +02:00
ManoloFLTK
43c4bd1031
Wayland: improve switching window to/from fullscreen mode
...
The call to Fl_Window::fullscreen() can be made before or after the window is show()'n
Tested compositors: Mutter, Plasma, Weston.
2023-03-29 08:49:14 +02:00
ManoloFLTK
5e101bc00c
Wayland + Plasma: fix switching fullscreen mode for borderless window
2023-03-28 14:39:11 +02:00
ManoloFLTK
43a9c70d8c
Wayland: fix regression in test/fullscreen
...
Commit e918d94
to fix issue #708 broke turning back from fullscreen state
for borderless window, visible in test/fullscreen.
2023-03-28 05:10:52 +02:00
Albrecht Schlosser
5a4e7caa54
Windows: use SHGetFolderPathW() for application data folder ( #710 )
...
See GitHub issue #710 : "Fl_Preferences not stored on Windows 10"
Summary: don't use the undocumented registry key "Shell Folders",
use function SHGetFolderPathW() instead although this function is
meanwhile deprecated (but available since Windows XP).
Note: tested with 32-bit build running on Windows XP (works).
2023-03-27 19:51:09 +02:00
ManoloFLTK
6aa6866d80
Wayland: move "struct seat" inside class Fl_Wayland_Screen_Driver
2023-03-27 11:31:26 +02:00
ManoloFLTK
31b5d5b562
Complete Fl_Wayland_Screen_Driver::close_display()
2023-03-27 11:06:17 +02:00
ManoloFLTK
cce40848ce
Improve methods Fl_Wayland_Screen_Driver::en/disable_im()
2023-03-26 17:38:44 +02:00
ManoloFLTK
a242e4a65d
Implement methods Fl_Wayland_Screen_Driver::en/disable_im()
2023-03-26 11:04:01 +02:00
Albrecht Schlosser
16338ff4e4
Wayland: remove compilation warning ( #706 ) - cont'd
...
The previous attempt to fix this issue in commit
dcb4c39956
missed to remove the keyword
'struct' in the offending statement. This new commit actually removes
the compiler warning.
2023-03-25 16:40:52 +01:00
ManoloFLTK
40537ae335
Wayland: slightly simpler writing of function wl_keyboard_key()
2023-03-25 15:52:03 +01:00
ManoloFLTK
9aa62f4492
Add Fl_Cairo_Graphics_Driver::focus_rect() override
...
This allows to bypass what looks like a Cairo bug:
FLTK_SCALING_FACTOR=1.7 bin/test/tabs
click on tab2
---> crash
But no crash with other scaling factor values (e.g., 1.8).
2023-03-25 15:31:30 +01:00
ManoloFLTK
9d7e680925
Wayland: Fl::get_key(c) for lower case letters different behavior from X11 ( #404 )
2023-03-25 14:51:57 +01:00
ManoloFLTK
9f9e584919
Wayland Fl_Copy_Surface and Fl::copy() issues ( #707 ) - cont'd
2023-03-24 16:56:25 +01:00
ManoloFLTK
e918d94b67
Fix: Wayland backend draws everything two or three times ( #708 )
2023-03-24 15:34:35 +01:00
ManoloFLTK
dcb4c39956
Wayland: remove compilation warning ( #706 )
...
drivers/Wayland/Fl_Wayland_Window_Driver.cxx:1515:47: warning: declaration ‘struct wld_window::custom_cursor’ does not declare anything
2023-03-23 18:42:02 +01:00
Albrecht Schlosser
aebf2fec39
Improve Fl_Cairo_Window documentation (typos + indentation)
...
Also fix a doxygen warning in Fl_String.
2023-03-23 13:26:14 +01:00
ManoloFLTK
b98aa7bee6
Remove extraneous Wayland-related comment from Windows code
2023-03-22 21:05:28 +01:00
Albrecht Schlosser
8b327d1ddd
Fix option CAIRO_EXT in combination with X11 on macOS
...
This modification became necessary since "__APPLE__" is no longer
undefined by the build system when X11 is used on macOS.
2023-03-22 21:01:36 +01:00
ManoloFLTK
2c03959511
CMake: check for presence of needed Wayland protocol source files
2023-03-22 10:45:24 +01:00
ManoloFLTK
41c94c4d87
Wayland: attempt to improve registry_handle_global_remove()
...
This function still needs to be tested on a true multi-display Unix box
2023-03-20 10:39:55 +01:00
ManoloFLTK
ad3ead111a
Simulate one display for OWL Wayland compositor
2023-03-20 09:57:36 +01:00
Matthias Melcher
f9004352b4
Fix gl_rect and OGL::fl_point #688
2023-03-18 20:14:39 +01:00
Matthias Melcher
5c482f9d9b
Fix and update alignment #346 ( #701 )
...
* interactive layout alignment rewritten
* interface for new alignment rules
* new alignment dialog box
* user defined layout rules added
* layout rules can be stored in projects, settings, and external files
* Valgrind verification
2023-03-18 17:33:27 +01:00
ManoloFLTK
a9fb6a979f
Rename bool variable for better clarity
2023-03-16 10:41:54 +01:00
ManoloFLTK
0eb6a0e193
Fix Fl_Wayland_Screen_Driver::get_mouse() for scale factor effect
2023-03-14 16:59:29 +01:00
ManoloFLTK
add43cd3fc
Wayland: add support for multiple high or low DPI displays - cont'd
2023-03-14 11:50:44 +01:00
ManoloFLTK
16448d5ba8
Wayland: improve cursor_surface_enter()
2023-03-14 08:09:39 +01:00
ManoloFLTK
8aafe6cf69
Fix Fl_Wayland_Window_Driver::set_cursor_4args()
2023-03-13 15:31:12 +01:00
ManoloFLTK
9980dc6fa1
Remove unused variable
2023-03-13 12:31:25 +01:00
ManoloFLTK
eeb9267e6e
Wayland: add support for multiple high or low DPI displays
2023-03-13 10:38:28 +01:00
ManoloFLTK
73a2ca5261
Fix c'tor of Fl_Wayland_Image_Surface_Driver for HighDPI displays
2023-03-10 13:17:53 +01:00
ManoloFLTK
2ee688dae9
Improve member function Fl_Wayland_Gl_Window_Driver::make_current_before()
2023-03-10 10:17:20 +01:00
Albrecht Schlosser
0f3b5ded8f
Fix dependencies, typos, trailing whitespace, and formatting
...
No code changes.
2023-03-09 18:28:37 +01:00