| Age | Commit message (Collapse) | Author |
|
|
|
|
|
|
|
|
|
|
|
This commit makes platforms Windows and macOS compute string widths
with the same mechanism as what is in place for platforms Wayland/X11:
- the width of a string containing a single codepoint is computed and
memorized in the table of character widths;
- the width of a string containing several codepoints is computed as
such rather than as the sum of the widths of its composing characters.
The result is that FLTK text widgets input and draw correctly also
complex emojis encoded with context-dependent codepoints.
Function fl_utf8_remove_context_dependent() is no longer necessary.
|
|
|
|
input.
This commit introduces function fl_utf8_remove_context_dependent() that removes
from an UTF-8 string its context-dependent codepoints. Platforms macOS, Wayland
and X11 call this function to process UTF-8 text received from a character palette
as input to FLTK text. This makes sure FLTK text-editing widgets process textual input
equally and consistently across platforms, especially emojis entered via a palette.
Platform Windows creates a series of separate system events to input an emoji
via the character palette. For this reason, function fl_utf8_remove_context_dependent()
is not used by this platform which does internally the same filtering of context-
dependent codepoints.
|
|
In commit a0654b59ac17ad5b7739b7136d00f2469b03d5fa all assignments to
variable `fl_xmousewin` were erroneously put under control of macro
FLTK_CONSOLIDATE_MOTION. This commit reverts this.
The correct fix would have been to declare
extern Fl_Window *fl_xmousewin;
unconditionally which was eventually done in a later commit.
The related variable `static Fl_Window *send_motion;` is still used
under control of macro FLTK_CONSOLIDATE_MOTION.
|
|
|
|
|
|
The commit has all platforms send the FL_FULLSCREEN event when a window is created fullscreen.
|
|
libXft was erroneously present in the link command when using Pango and Cairo.
This is fixed by disconnecting the GUI scaling code from use of Xft.
This commit also makes sure that when Wayland is used, pkg-config is available
on the build machine. This allows to remove from file CMake/options.cmake
code that was labelled with "FIXME".
|
|
|
|
note: no "real" code changes
|
|
This work is based on PR 1068 (patch by @CendioHalim) and
extended to store button status (4,5) in Fl::event_state() like
it's done for other mouse buttons (1-3).
Changes:
- new symbol: FL_BUTTON4 = side button 1 = "back"
- new symbol: FL_BUTTON5 = side button 2 = "forward"
- modified : FL_BUTTONS now includes bits for two side buttons
Note: the status of these new buttons is not maintained by X11,
therefore we need to maintain them in internal variables for
this platform.
|
|
- Restrict FL_BUTTONS mask to only three valic mouse buttons.
Pseudo mouse buttons 4-7 are used for FL_MOUSEWHEEL events and
are no longer reflected in Fl::event_buttons().
- Return only state of mouse buttons 1-3 in Fl::event_buttons().
Buttons 4-7 are not "sticky" (used for FL_MOUSEWHEEL).
- Keep undefined keyboard related bits in Fl::event_state() for
backwards compatibility and transparency. These bits may be masked
out in a later release.
- Document Fl::event_state() bits for X11 in src/Fl_x.cxx.
Note: this is a bug fix for X11 only, Wayland and other platforms are
not affected.
|
|
Horizontal mousewheel events use pseudo button numbers 6 and 7, resp.,
similar to vertical mousewheel events which use buttons 4 and 5.
The old code erroneously sent FL_RELEASE events for buttons 6 and 7
although it was prevented for buttons 4 and 5 explicitly.
|
|
Some applications insist on sending XDND protocol version 5 and
rejected (ignored) FLTK as DND receiver because we allowed only
protocol version 4. Known apps: Google Chrome and Chromium.
This commit enables XDND protocol version 5 in FLTK programs as
DND receiver.
|
|
Fl_Window::get_size_range()
|
|
|
|
This DnD gives two data types of the dragged text: text and a gnome-specific type.
The code previously accepted DnD with 1 data type or 4 or more data types,
and processed situations with 2 or 3 data types in a special way that fails
with gnome source apps.
The new code processes situations with 2 and 3 data types just like other ones.
This works OK when dragging from gnome wayland apps.
|
|
|
|
Rewrite src/Fl_File_Chooser.cxx from its .fl source file
|
|
|
|
Thanks to Mike Qin for finding how to query the possibly changed DPI value
of an X11 display while an FLTK app keeps running without running
an external command in a pipe.
|
|
only (#925)
|
|
|
|
NULL (#923)
|
|
|
|
|
|
Send a valid timestamp rather than 0.
For details see STR 3396.
|
|
Although this was not strictly necessary I decided to implement the
proposed patch, but in a slightly different way.
This adds a static public method for internal use only but it wouldn't
do any harm if a user called it.
|
|
|
|
|
|
Without this, the sudoku app is unusable with a French keyboard
|
|
Pressing the shift key while using the mousewheel changes
horizontal to vertical scrolling and vice versa. This allows users
with a standard mouse with only one scroll button to use it for both
scrolling directions.
Note: other mice that have either two buttons or a scroll ball can
generate both horizontal and vertical scrolling in one action. This
commit does not affect such behavior.
This patch has been provided by Manolo in file 'scroll.patch'
(see STR 3521).
|
|
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.
|
|
|
|
|
|
|
|
The new method Fl::selection_to_clipboard(int) enables copying
selection data to the clipboard on X11 if it is set to 1.
This feature was requested by STR 3229 and the implementation was
inspired by an `xterm` feature named "Select to Clipboard" which can
be enabled by 'ctrl + middle mouse button + "Select to Clipboard"'
in an xterm window.
|
|
|
|
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()
|
|
|
|
|
|
|
|
|
|
Fl_X11_Window_Driver::fullscreen_off().
|
|
Default icons are handled according to their scaled size, if there scaled.
|