Commit Graph

1302 Commits

Author SHA1 Message Date
ManoloFLTK
a4d0f7d269 Wayland: allow Fl_Window::cursor(Fl_Cursor) for whole window 2023-02-15 12:20:26 +01:00
ManoloFLTK
9ff67f013e Wayland: add support of Fl_Window::default_cursor(Fl_Cursor) 2023-02-15 06:43:39 +01:00
ManoloFLTK
868ab9696f Rename class Fl_Display_Cairo_Graphics_Driver to Fl_X11_Cairo_Graphics_Driver 2023-02-14 11:52:21 +01:00
ManoloFLTK
b055b82eb2 Use libdecor/src/os-compatibility.h to declare os_create_anonymous_file() 2023-02-14 10:44:15 +01:00
ManoloFLTK
3d0b96b095 Remove unneeded list of wayland seats 2023-02-13 16:54:16 +01:00
ManoloFLTK
9958016a47 Windows: minor change to support build with mingw64 4.9
This old compiler is available as a cross compiler from macOS to 64-bit Windows.
2023-02-13 12:24:27 +01:00
ManoloFLTK
bb74d263e2 Wayland: add necessary check to support OWL 2023-02-12 08:52:09 +01:00
Matthias Melcher
5a25641317
Very controlled GDIplus startup and shutdown #635 (#679)
Fall back to GDI if GDIplus is not available
2023-02-11 19:14:23 +01:00
ManoloFLTK
740c56ce15 Wayland: improve support for FL_CURSOR_{NONE, HELP} 2023-02-11 14:36:58 +01:00
Matthias Melcher
7f87c847ba
Unlimited undo/redo for Fl_Input_ and Fl_Text_Buffer (#558) (#676) 2023-02-10 17:13:20 +01:00
ManoloFLTK
7a8771d3c4 macOS+XQuartz: support new homebrew name for GTK2 shared lib 2023-02-07 12:47:42 +01:00
ManoloFLTK
6276822e9e Allow cmake -DOPTION_APPLE_X11=On without -U__APPLE__ 2023-02-02 18:48:24 +01:00
Albrecht Schlosser
4e75549e7b Update dependencies and fix whitespace errors
- replace tabs with spaces
- remove trailing whitespace
2023-02-02 17:09:14 +01:00
ManoloFLTK
ddc213d91c Add preliminary support of Wayland under macOS
Wayland under macOS is WIP at
  https://github.com/owl-compositor/owl
2023-02-02 14:39:11 +01:00
ManoloFLTK
96fd8a5f7a Wayland: use fl_wl_find() instead of fl_find() 2023-02-01 09:30:09 +01:00
ManoloFLTK
94c918a1ae Fix miscellaneous #include directives 2023-01-31 18:22:04 +01:00
ManoloFLTK
1581662d00 Simpler Fl_Wayland_Gl_Window_Driver::resize() is enough 2023-01-26 16:04:06 +01:00
Matthias Melcher
179771acd2
Fixing FLUID file corruption from issue #653 (#662)
Removing all globals in file writer (#653 )
Fix some static analyser complaints
Valgrind: handle width==0 in GfxDrivers on Wayland and X11
Don't use `Fl_Input_::static_value`, it accesses previous
buffer that may be deleted
Project file write encapsulated, removing globals
Encapsulating project file reader, removing states in glbals
Project i/o increased source code readability
2023-01-26 15:23:43 +01:00
ManoloFLTK
17467b48bd Wayland: remove useless member variables of struct output 2023-01-23 08:11:10 +01:00
ManoloFLTK
35b7473e70 Wayland menus: support tall popup menu + Sway support 2023-01-16 17:07:22 +01:00
ManoloFLTK
ff3906bec0 Wayland menus: support tall popup menu 2023-01-16 16:00:54 +01:00
ManoloFLTK
761aa5e485 Rename static member Fl_Wayland_Window_Driver::tall_popup to new_popup
The new name reflects better the role of this bool member variable.
Also, add explanatory comments about the use of this variable.
2023-01-15 10:18:50 +01:00
ManoloFLTK
37775538c4 Extend commit a4b33f8 to other uses of function convert_crlf()
Helper function convert_crlf() from file fl_wayland_clipboard_dnd.cxx has been
repaired by commit a4b33f8 (13 jan 2023). But the same function was also in
file Fl_cocoa.mm. This commit moves the repaired code to class Fl_Screen_Driver
and has both fl_wayland_clipboard_dnd.cxx and Fl_cocoa.mm use it.
2023-01-14 09:56:09 +01:00
ManoloFLTK
c8b4a56735 Add missing initialisation after dynamic memory allocation 2023-01-14 08:16:23 +01:00
Albrecht Schlosser
a4fdf92d06 Fix set_fonts() in Xlib/xft and Cairo Graphics_Driver
src/drivers/Cairo/Fl_Cairo_Graphics_Driver.cxx:
 - fix font_name_process() out of bounds memory access
 - unify/align font_name_process() code (see also Xlib/xft)
 - fix font name string allocation

src/drivers/Xlib/Fl_Xlib_Graphics_Driver_font_xft.cxx
 - unify/align font_name_process() code (see also Cairo_Graphics)
 - fix font name string allocation

Todo: move common code to Fl_Graphics_Driver or another common file.
2023-01-13 22:39:23 +01:00
ManoloFLTK
f3e21ddad2 Fix for "Rename Fl_X* Fl_Window::i private class member" (#223) 2023-01-13 21:16:17 +01:00
ManoloFLTK
dd6b9b90ee Wayland menus: add missing use of scaling factor 2023-01-13 19:37:06 +01:00
Albrecht Schlosser
a4b33f8e76 Wayland: Fix "heap-buffer-overflow" error
- replace strchr() with memchr() because buffer is not nul-terminated
- fix '*(p+1)' potentially accessing memory out of bounds

This fix also prevents
- multiple memmove() calls
- multiple searches from the beginning of the string
2023-01-13 16:44:06 +01:00
ManoloFLTK
7dd7cfcf95 Wayland Fix "Error "heap-use-after-free" when scaling twice" (#650) 2023-01-12 21:28:03 +01:00
ManoloFLTK
66860c2e83 Improve "Implementation note about menu windows under Wayland" 2023-01-12 21:27:17 +01:00
ManoloFLTK
b375d07d32 New static member Fl_Window *Fl_Wayland_Window_Driver::previous_floatingtitle 2023-01-12 11:58:53 +01:00
ManoloFLTK
62e33973a1 New static member bool Fl_Wayland_Window_Driver::tall_popup 2023-01-12 11:36:20 +01:00
ManoloFLTK
b8d9f2282f Remove useless #include directives 2023-01-12 10:33:41 +01:00
ManoloFLTK
86a6d4e3d3 Wayland menus: remove useless Fl_Window_Driver::extra_menutitle() 2023-01-12 08:28:06 +01:00
ManoloFLTK
ccfc479e43 Fix "Wayland: compilation warnings" (#649) 2023-01-11 23:53:34 +01:00
ManoloFLTK
9210e3efbf Wayland: Further improved implementation of menu windows
Tall menus now work also as single popup window and show the correct selected item.

Groups of popups with a menutitle, an associated menuwindow, and possibly submenus
are constructed around the menuwindow, the menutitle being a child popup of the
menuwindow. This positions these popup groups better than before.
2023-01-11 17:40:38 +01:00
ManoloFLTK
dc4c443bfc Fix ";" inadvertently written "," 2023-01-11 09:36:54 +01:00
ManoloFLTK
9bdaf5a84d Virtual member Fl_Window_Driver::makeWindow() now returns void 2023-01-09 17:35:38 +01:00
ManoloFLTK
a5b431e35e Wayland: Possibly better way to complete popup construction 2023-01-09 17:11:21 +01:00
ManoloFLTK
13ce93330a Wayland: fix Fl::event_key(int) 2023-01-09 10:06:29 +01:00
ManoloFLTK
09db3a6dea Fix "Xrender blurs adjacent images with bilinear scaling" (#633)
Many thanks to @wcout for providing this fix.

Xrender now draws images in the same way when tiling images
or not when FL_RGB_SCALING_BILINEAR is on.
This allows to remove static bool Fl_Tiled_Image::drawing_tiled_image()
which becomes unused.
2023-01-08 11:17:03 +01:00
ManoloFLTK
222b2ea2e8 Wayland: Improved implementation of menu windows 2023-01-08 09:30:51 +01:00
ManoloFLTK
18f2854656 Fix for "Shift-Ctrl-C shortcut in fluid not working on newer linux OS's" (#637) 2023-01-07 15:36:02 +01:00
ManoloFLTK
13f2ea664a Cairo/Pango: compute character widths fast and string widths accurately
This commit has Fl_Cairo_Graphics_Driver compute string widths in 2 ways:
1) when the string contains several unicode characters, the width of the
whole string is computed, accounting for kerning when it occurs;
2) when the string contains a single unicode character, its width is
computed, memorised, and re-used next time it's necessary.

The effect of this approach is
- Fl_Text_Display is fast because it uses memorised single character widths repeatedly
- Fl_Input is drawn accurately because the cursor position is determined
by string widths, not by sums of character widths.
2023-01-04 17:23:13 +01:00
Albrecht Schlosser
22a830c496 Fix missing include file for Visual Studio
... if GDIPLUS is disabled.

Thanks to Winfried Szukalski for reporting this.
2023-01-02 21:21:04 +01:00
Matthias Melcher
a63ad76603
FLUID refactor and macOS warnings removed (#623)
P renamed to g_project
class Project renamed to class Fluid_Project
fixes macOS type cast warnings
2023-01-01 20:05:42 +01:00
Albrecht Schlosser
23e8d831a8 Add a missing FL_OVERRIDE flag 2023-01-01 18:02:46 +01:00
Matthias Melcher
44c874b731
Use FL_OVERRIDE for all overridden virtual methods (#611)
FL_OVERRIDE is defined as `override` for C++11 and higher
FL_OVERRIDE is defined as `override` for VisualC 2015 and newer
Don't interfere with Fl_Widget::override()
2022-12-30 19:14:36 +01:00
Albrecht Schlosser
f58a93a159 Fix misleading indentation (warning: [-Wmisleading-indentation]) 2022-12-30 17:32:01 +01:00
ManoloFLTK
b2a38f793f Wayland+FreeBSD: fix "test/mandelbrot crashes on rightclick" (#618) 2022-12-30 09:40:58 +01:00