- update header comment and copyright year
- add casts to fix compiler warnings
- fix "use after free" warning
- remove dead code
- reformat another unrelated statement
Suppress warning [-Wdeprecated-declarations] regarding function
XKeycodeToKeysym()
Backported from master branch.
Update 'CHANGES' for a potential release 1.3.9
Reading large selections via X11 INCR protocol (data sent by other
processes) could cause invalid write access and eventually segfaults.
For more information see GitHub issue #451 and these commits in
FLTK 1.4 (master branch):
- c555629162
- ef72df0dc7
This commit fixes the main issues when reading large selections via
INCR protocol but does not add functionality to *write* large
selections via INCR protocol.
This new dialog enables the user program to distinguish whether the
user closed the window by hitting Escape, clicking the window's
close button, or using the "cancel" button with return value 0
as requested by GitHub Issue #282 "fl_choice() doesn't tell you
if the dialog was closed".
This undocumented macro is used on X11 and macOS platforms to
consolidate mouse move events, i.e. to collect some events and send
them later as one event. The old macro name CONSOLIDATE_MOTION has been
renamed to FLTK_CONSOLIDATE_MOTION since it is now a "global" symbol.
Users can define FLTK_CONSOLIDATE_MOTION in their build system, e.g.
on the compiler commandline, as 0 or 1 to disable or enable this
feature, respectively.
For historical reasons the default is 0 (OFF) on macOS and 1 (ON) on
X11 in FLTK 1.3. In FLTK 1.4 the default will always be 0 (OFF).
The old version would reschedule an existing timer if a matching timer
existed already which was unique to macOS.
The new behavior is consistent on all platforms and allows to create
multiple timer entries with the same callback and userdata.
Backported from 1.4: 135ba3a7e1
Calling Fl::repeat_timeout() instead of Fl::add_timeout() to create
a timer would crash on macOS but fall back to Fl::add_timeout() on
Windows and Unix/Linux. Although this is documented as "undefined
behavior" a crash should always be avoided and the fallback is now
consistent on all major platforms.
Backported from 1.4: 87475c20d6
Select the "best" target rather than a random one out of a list of
suitable targets. The target selection algorithm would sometimes
select the wrong target and hence retrieve unexpected data.
This could happen in both copy-paste and drag-and-drop operations.
Cherry-picking fix from FLTK 1.4 (master).
See report in fltk.coredev as of Jan 16, 2020:
"Fl_Input in readonly mode - wrong behaviour".
Summary: Drag and drop within a read-only Fl_Input (i.e. Fl_Output)
widget would not insert the dragged text (correct) but removed
the dragged text from the widget (error). This is now fixed.
Fl_Pack::draw() sometimes resizes itself. This must be followed
by a call to Fl_Group::init_sizes() as indicated in that function's doc:
"If you rearrange the widgets in your group, call this method to register
the new arrangement with the Fl_Group that contains them."
Revert commit 958d912ffc using 'XSetLocaleModifiers("@im=");'
which was incorrect (STR 3192).
Apply fix for STR 3502, using 'XSetLocaleModifiers("");' which appears
to be the correct solution for using X Input Methods (XIM).