9754 Commits

Author SHA1 Message Date
ManoloFLTK
0fdef887d0 Documentation: add Wayland-related information for use of OpenGL 3. 2022-07-04 14:44:23 +02:00
ManoloFLTK
844d3d6d5c Wayland platform.: complete support of gl_start/gl_finish. 2022-07-04 11:44:03 +02:00
ManoloFLTK
8a2559e1af Wayland platform: add missing initialisation to Fl_Wayland_Gl_Window_Driver::gl_start(). 2022-07-02 17:41:45 +02:00
ManoloFLTK
16ecd6b821 Wayland platform: more accurate initial state of window buffer. 2022-07-02 16:44:17 +02:00
ManoloFLTK
c7493496c9 Wayland platform: add support of FL_ALPHA for GL windows. 2022-07-02 16:43:27 +02:00
Albrecht Schlosser
ef72df0dc7 Improve X11 selection data transfer (INCR) protocol (#451)
This improves reading large selections and fixes one more bug.

- Fix reading selection data size of clients that don't send the size.
  These clients don't respect the ICCCM. Using a default size instead.

- Improve memory allocation by pre-allocating at least 4 MB and
  extending by 4 MB to reduce the number of realloc() operations.
  This may waste up to 4 MB buffer space but this is only an issue
  if clients don't send an appropriate size (see above).

- Limit the initial allocation to 200 MB in case clients send higher
  values. This is very unlikely and might be a bug in these clients.
  Default extension as above would apply anyway.

- Add more comments and optional debug statements (commented out).

Note: reading selections (clipboard) from other clients using the
  INCR protocol is implemented but the opposite (providing large
  selections (clipboard) by using the INCR protocol is not.
2022-07-02 15:44:46 +02:00
Albrecht Schlosser
c555629162 Fix "Segfault if using very large selections" (issue #451)
- Fix reading the size (aka "lower bound") of selection data.

- Use Fl::fatal() to terminate the process if memory for the selection
  (aka clipboard) data can't be allocated. This should rarely
  happen but if it does this is at least a "clean" exit and does
  not overwrite arbitrary data waiting for later errors that are
  hard to debug (as the old code would have done).

  Todo: find a better solution because this can be caused by
  another faulty process (the "selection owner"). It would be good
  if we could ignore the transfer rather than killing the process.

- Continue processing the INCR protocol if another "unexpected" event
  is received. Such events can definitely happen but the current code
  can't deal with this because other events might cause recursions.
  Hence such events are currently ignored.

  Example: pressing and holding ctrl/v would trigger another clipboard
  transfer while we're still processing one.

Todo: maybe process "other" events correctly while processing the INCR
  protocol. The current processing is done inside a function and would
  need to call fl_handle() with potential recursions, hence this would
  likely need major refactoring.
2022-07-01 17:39:41 +02:00
Albrecht Schlosser
42c27da735 Reformat, remove unnecessary code, add comments 2022-07-01 17:39:41 +02:00
ManoloFLTK
50d26b09a8 Wayland platform: add support of gl_start() / gl_finish(). 2022-07-01 09:10:32 +02:00
ManoloFLTK
4d85b15417 Documentation: update "Using OpenGL in Normal FLTK Windows" for Wayland. 2022-06-30 17:01:23 +02:00
Michael Tolly
65e5cd27cc kdialog native picker: properly handle spaces in filenames
Asks kdialog to use newlines for multiple files instead
2022-06-29 18:49:51 +02:00
ManoloFLTK
47f0d63f19 Wayland platform: send FL_ENTER/LEAVE/MOVE events to top-level windows only. 2022-06-29 18:02:11 +02:00
ManoloFLTK
a025a46cac Wayland platform: add support of FL_LEAVE event. 2022-06-28 18:47:15 +02:00
ManoloFLTK
8dd7ab1922 Fix for issue #450 : Fl_Counter slips into infinite loop (V2).
Need to poll only for the file descriptor associated to the wayland display.
2022-06-27 19:40:08 +02:00
ManoloFLTK
c2185f31b9 Remove unused code controlled by the FLTK_CONSOLIDATE_MOTION preprocessor variable. 2022-06-27 14:55:40 +02:00
ManoloFLTK
2a5c2322f1 Fix for issue #454 : crash in Fl::get_font_name(). 2022-06-27 13:25:35 +02:00
ZJUGKC
2f52b54a08
Fix unicode support in scandir_win32.c by using GetFileAttributesW (#455)
* Fix unicode support in scandir_win32.c by using GetFileAttributesW

* Remove the useless comments in scandir_win32.c
2022-06-25 20:53:19 +02:00
ManoloFLTK
feb0d918fb Remove arbitrary maximum length of font name. 2022-06-25 20:00:17 +02:00
ManoloFLTK
fb7469c85c Fix for issue #452: Fl::get_font_name failure on OS-X. 2022-06-24 19:50:47 +02:00
ManoloFLTK
617dc2ce12 Fix for issue #450: Fl_Counter slips into infinite loop.
This issue revealed that the macOS and Wayland platform processed events slightly differently
from other platforms.
Under X11 and Windows, Fl::wait() processes one event if one is present, and also all other events
present in the event queue immediately after the processing of that event.
Under macOS and Wayland, Fl::wait() processes one event if one is present and returns.

This commits makes the macOS and Wayland platforms behave as other platforms.
2022-06-23 19:12:35 +02:00
ManoloFLTK
e698af035a Fix issue #427 - 2nd part
Fix Fl_Tiled_Image made from scaled source image.
Fix Fl_Shared_Image::update() to allow scaled source image.
Correct handling of default value (-1) of 3rd argument of 3-argument Fl_BMP_Image constructor.
2022-06-20 12:49:38 +02:00
ManoloFLTK
02870242ee Move input method support to Fl_Screen_Driver from Fl_Graphics_Driver 2022-06-19 10:23:24 +02:00
Albrecht Schlosser
232743c3a5 Fix Fl_Counter event handling (#450, part 2)
This fixes some issues of the repeat timeout of Fl_Counter. It could
happen that the widget missed the FL_RELEASE event, for instance if
a modal window like fl_message() was opened in the callback but there
could be other reasons as well. See issue #450 for more info.
2022-06-17 17:16:59 +02:00
Albrecht Schlosser
f3bf231cc0 Improve reliability of timeout handling (#450, part 1)
This commit prevents "timer loops" without intermediate event handling
if callback handling takes longer than the timer delay of repeating
timers.

For more details see GitHub issue #450.
2022-06-17 17:05:10 +02:00
ManoloFLTK
d8eb1f9ca4 Minor simplification of Fl_Wayland_Graphics_Driver::cairo_init. 2022-06-13 16:37:25 +02:00
ManoloFLTK
394298aff4 Add explanatory comment about WL_SHM_FORMAT_ARGB8888 and CAIRO_FORMAT_ARGB32. 2022-06-13 16:19:43 +02:00
ManoloFLTK
2fc2c5b562 Fix support of transparent windows by wayland platform. 2022-06-13 10:41:24 +02:00
MatthiasWM
1b1e8a4d46 Issue #141: fl_filename_absolute bugs fixed for MSWindows. 2022-06-12 14:53:06 +02:00
Matthias Melcher
995e3118a6 Local isdirsep() must not be visible to the outside. 2022-06-12 14:14:23 +02:00
Matthias Melcher
e6ca751e92 Issue #142: fl_filename_absolute correctly handles trailing "..". 2022-06-12 14:07:16 +02:00
ManoloFLTK
c6516673ee New member Fl_Cairo_Graphics_Driver::bitmap_to_pattern() to avoid code duplication. 2022-06-12 09:04:22 +02:00
ManoloFLTK
78ca44ccca Fix Fl_Wayland_Window_Driver::shape_bitmap_(Fl_Image*). 2022-06-11 15:19:37 +02:00
Matthias Melcher
79be9fb792 Reverting previous fix.
It introduced a new issue. Sorry!
2022-06-11 12:36:59 +02:00
Matthias Melcher
9c89a7f320 Handling trailing ".." in fl_filename_absolute. 2022-06-11 12:34:47 +02:00
Matthias Melcher
bcbdf5546f Some docs for printing asynchronously. 2022-06-11 11:57:15 +02:00
ManoloFLTK
23d0a631cf Remove useless code from Fl_Wayland_Window_Driver::{un}map()
That code was useless because map() and unmap() get only called for subwindows.
2022-06-11 09:36:16 +02:00
ManoloFLTK
c94f8fa693 Wayland: update known limitation about minimum window width. 2022-06-08 16:41:08 +02:00
ManoloFLTK
09340be683 libdecor GTK: remove the last code change required by FLTK. 2022-06-08 14:43:25 +02:00
ManoloFLTK
fac3c2fb04 libdecor GTK plugin: update from upstream (8 Jun 2022 - de9534d2)
Two more FLTK changes become unneeded.
2022-06-08 13:58:28 +02:00
ManoloFLTK
88bc94c932 libdecor GTK plugin: update from upstream (7 Jun 2022 - 8fc5c88c)
This removes a bunch of FLTK changes.
2022-06-08 11:51:54 +02:00
ManoloFLTK
6add57d4bd Wayland under FreeBSD: use package evdev-proto which brings linux/input.h 2022-06-06 15:32:54 +02:00
ManoloFLTK
831d8b5a58 libdecor: add recent upstream changes in GTK plugin (31 may 2022 - d4f16da1) 2022-06-04 14:44:41 +02:00
ManoloFLTK
a7de80d6f7 Fix for issue #447: dotted focus rectangles are a little "ragged" with some scales. 2022-06-04 11:44:21 +02:00
ManoloFLTK
bdd340e1e1 libdecor - GTK plugin: pull upstream changes (0542faad - 21 may 2022).
But keep FLTK changes.
2022-05-27 11:45:53 +02:00
ManoloFLTK
5afd0bb44a libdecor: pull upstream changes (a382710b on 28 apr 2022). 2022-05-27 10:58:23 +02:00
ManoloFLTK
b78035624d Fl_Cairo_Graphics_Driver: fix GUI rescaling.
The solution to avoid blurred graphics when the GUI is scaled is to turn off
cairo antialiasing when drawing horizontal and vertical lines and rectangles.
2022-05-27 08:58:35 +02:00
ManoloFLTK
7fcd4b73d7 Wayland platform: more accurate procedure to map a GL (sub)window. 2022-05-25 18:37:43 +02:00
ManoloFLTK
a118732f7c Improve rectf() and push_clip() under cairo and GUI scaling. 2022-05-25 16:05:36 +02:00
ManoloFLTK
8028fc3cfc More about FreeBSD support in README.Wayland.txt 2022-05-24 11:41:00 +02:00
ManoloFLTK
6c6a80b90e Add detailed explanations in Fl_Wayland_Gl_Window_Driver::make_current_before() 2022-05-24 11:07:04 +02:00