4.0.1 (2017-06-05)
User Visible Changes
Fix a bug where fullscreen windows could sometimes wind up incorrectly stacked due to a focus-handling issue. This would lead to ctwm aborting with an assertion failure in the OTP code, like Assertion failed: (PRI(owl) >= priority), function OtpCheckConsistencyVS.
Fix an edge case (probably only triggerable via manual work with EWMH messages) where a window could wind up resized down to nothing.
Internals
Systems with the ctfconvert/ctfmerge tools available will now use them to include CTF info in the compiled binary. This allows more detailed inspection of the running process via DTrace (e.g., the layout of the structs).
The initial rumblings of a Developer's Manual are now in doc/devman/. This isn't tied into the main build, and there's no real reason it ever will be. Things of interest to users should wind up in the main manual; this should only have things of interest to people developing ctwm.
4.0.0 (2017-05-24)
Build System Change
The old imake build system has been replaced by a new structure using cmake. This makes cmake a requirement to build ctwm. See the README.md file for how to run it.
A fallback minimal build system is available in the minibuild/ directory for environments that can't use the main one. This is likely to need some manual adjustment on many systems, and the main build is strongly preferred. But it should suffice to get a runnable binary if all else fails.
Platform Support
Support for many non-current platforms has been dropped. In particular, remnants of special-case VMS support have been removed. Many old and now dead Unix variants have been similarly desupported. Generally, platforms without support for C99 and mid-2000's POSIX are increasingly less likely to work.
Backward-Incompatible Changes And Removed Features
Argument parsing has been rewritten to use getopt_long(). All -long options are now --long instead. -version, -info, -cfgchk, and -display are still accepted if they're the first option given, to make it easier for scripts to simultaneously support before/after versions; this shim will be removed in a later version.
Support for the SDSC imconv library, and the IMCONV options related to it, has been removed. The last release is almost 20 years old, and doesn't support any remotely recent platforms.
The USE_SIGNALS code to use signal-driven animations has been removed. It's been non-default since 3.2 (more than 20 years ago), and not documented anywhere but in the code and a comment in this file.
The USE_GNOME option and code for GNOME1 support has been removed.
The old-style title button action specifications (without an = in them) deprecated since 3.8 are no longer supported. Just replacing the ":" with "= :" should suffice to make it work right in 3.8+. If you need to share configs with older versions, you'll have to conditionalize the syntax with m4 or some other preprocessing.
The f.cut (and ^ alias for it), f.cutfile, and f.file functions have been removed. These functions for messing with the clipboard were never visibly documented, and came into the manpage in 3.0 already commented-out and saying they were obsolete.
The f.source function has been removed. It's never done anything (except beep) as far back as 1.1 and has never been documented.
The f.movemenu function has been removed. It was added silently in 2.1, has never done anything, and has never been documented.
The NoVersion config parameter has been removed. It's been undocumented, obsoleted, and done absolutely nothing since 1.1.
Support for non-flex versions of lex(1) is deprecated, and will take some manual work to build. Note that release tarballs include prebuild lexers, so this probably only matters to people building from a development tree. (And if you are, and really need AT&T or some other lex to work, talk to us!)
Support for building with internal regex implementation has been disabled; we now require regex support from libc. It is still possible to enable by manually editing files, but this will be removed in the future. If you have to mess with this, please bring it up on the mailing list so we can figure out a long-term solution.
Parsing of the ctwm.workspaces X resource (i.e., setting -xrm "ctwm.workspaces: something" on program command-lines) since 3.0 has collapsed doubled backslashes (\\) into a single (\). However, there were no other escapes, so this didn't gain anything. Using a single will work with both variants, unless you need multiple backslashes in a row in your workspace names.
The IconRegion and WindowRegion config params both take a vgrav hgrav pair of parameters to control layout. Previous versions would accept a hgrav vgrav ordering in the parsing, and would mostly work by odd quirks of the code. The parsing has been made stricter, so only the documented vgrav hgrav ordering is accepted now.
User Visible Changes
The default install locations have been changed. See the README for details about where things are installed and how to change them.
Several default settings have been changed. ctwm now defaults to acting as though RestartPreviousState, NoGrabServer, DecorateTransients, NoBackingStore, RandomPlacement, OpaqueMove, OpaqueResize, SortIconManager, and StartInMapState have been set. Those settings that didn't previously have an inverse (to get the behavior previously seen when they weren't specified) have such added; see below.
Added various config parameters as inverses of existing params. New params (with existing param they invert in parens):
BackingStore (NoBackingStore)
GrabServer (NoGrabServer)
StartInButtonState (StartInMapState)
NoSortIconManager (SortIconManager)
NoRestartPreviousState (RestartPreviousState)
NoDecorateTransients (DecorateTransients)
Added DontShowWelcomeWindow config option to not show welcome splashscreen image.
Selected a number of cleanups from Stefan Monnier <monnier%IRO.UMontreal.CA@localhost>, including rate-limiting of animations using a new _XA_WM_END_OF_ANIMATION message. Font height is estimated based on used characters only. Added some similar changes, improved the prevention of placing windows off-screen, the f.rescuewindows function for emergencies, a hack-fix for f.adoptwindow. More virtual screen tweaks/fixes.
Added the remaining OnTopPriority changes from Stefan Monnier <monnier%IRO.UMontreal.CA@localhost>: AutoPopup, AutoPriority, OnTopPriority, PrioritySwitching, f.changepriority, f.priorityswitching, f.setpriority, f.switchpriority, f.tinylower, f.tinyraise. Currently consistency checking code is enabled, which will terminate with an assertion failure if something unexpected happens. Smoothed out various inconsistencies that this check discovered when virtual screens are used.
Basic support for EWMH (Extended Window Manager Hints) added and enabled by default. EWMHIgnore {} config option allows selectively disabling bits. [Olaf "Rhialto" Seibert, Matthew Fuller]
Icon manager windows are no longer included in the window ring (that had confusing effects on the focus sequence).
Added --dumpcfg command-line option to print out the compiled-in fallback config file.
The Occupy {} specification now accepts "ws:" as a prefix for workspaces. This may break things if you have workspaces with names that differ only by that prefix (e.g., you have workspaces "abc" and "ws:abc", and your Occupy {} declarations affects both.
If ctwm is built with rplay support, sounds may now be configured with the RplaySounds {} parameter in the config file in place of the ~/.ctwm-sounds file. If so, ctwm will give a warning if .ctwm-sounds exists; support for the external file will be removed in a future version. Also the SoundHost config parameter is replaced by RplaySoundHost; the old name is still accepted, but will be removed in a future version.
Added MWMIgnore {} config option to allow selectively disabling honoring of some Motif WM hints.
Warping to a window now explicitly sets focus on that window. This would generally (but not always, in the presence of odd X server behavior) have already happened for users with focus following mouse, but now occurs for ClickToFocus users as well. [Alexander Klein]
Several bugs relating to the Occupy window were fixed. Iconifying the Occupy window no longer loses it and leaves you unable to pull it up again. Minor undersizing in some cases fixed.
Windows which fail to use the WM_HINTS property to tell us things like whether they want us to give them focus are now explicitly given focus anyway. This should fix focus problems with some apps (Chromium is a common example).
Added ForceFocus {} config option to forcibly give focus to all (or specified) windows, whether they request it or not. Previously the code did this unconditionally (except when no WM_HINTS were provided; x-ref previous), but this causes problems with at least some programs that tell us they don't want focus, and mean it (some Java GUI apps are common examples).
OpaqueMoveThreshold values >= 200 (the default) are now treated as infinite, and so will always cause opaque moving.
Internals
A new code style has been chosen and the entire codebase reformatted into it. Configs for Artistic Style to generate the proper output are in the source tree.
The full_name element of the TwmWindow structure has been removed. Consumers should just use the name element instead
Changes from 4.2.0 to 4.2.1
---------------------------
1. Support for OS/2 has been brought up to date. This support was
accidentally omitted from the initial 4.2 release, for which
we apologize.
2. The manual received a number of updates to make it format better
for PDF.
3. A new configure option, --enable-versioned-dir, causes the directory
holding extensions to include the API version in its name.
4. extension/configure.ac has been improved considerably.
5. In MPFR mode, When ROUNDMODE changes, string values for numerically
type values will be redone.
6. The various 'inplace' tests now pass on modern BSD systems.
7. A number of bugs, some of them quite significant, have been fixed.
See the ChangeLog for details.
Changes from 4.1.4 to 4.2.0
---------------------------
1. If not in POSIX mode, changes to ENVIRON are reflected into
gawk's environment, affecting any programs run by system()
or for piped redirections. This can also affect built-in routines, such
as mktime(), which is typically influenced by the TZ environment variable.
2. The series of numbers returned by rand() should now be "more
random" than previously. Gawk's rand() remains repeatable; you will
get the same series of numbers each time you call rand() repeatedly,
but this will be a different series than previously.
3. Multiple changes related to the pretty printer:
* The --pretty-print option no longer runs the program too.
* Pretty printing now preserves comments and places them into the
pretty-printed file.
* Pretty-printing now uses the original text of constant numeric values
for pretty-printing and profiling.
* Pretty-printing now preserves parenthesized expressions as they
were in the source file. This solves several niggling corner cases
with such things.
4. The igawk script and igawk.1 man page are no longer installed by
`make install'. They have been obsolete since gawk 4.0.0.
5. Gawk can now be built with CMake. This is an alternative build
system for those who may want it; gawk is not going to switch off
use of the autotools anytime soon, if ever.
6. Gawk now processes a maximum of two hexadecimal digits in \x
escape sequences inside strings.
7. Setting PROCINFO["redirection", "NONFATAL"] to true makes I/O
errors for "redirection" not fatal, setting ERRNO. Setting
PROCINFO["NONFATAL"] makes all I/O nonfatal. See the manual.
8. MirBSD is no longer supported.
9. `make install' now installs shell startup files
$sysconfdir/profile.d/gawk.{csh,sh} containing shell functions to
manipulate the AWKPATH and AWKLIBPATH environment variables. On a Fedora
system, these files belong in /etc/profile.d, but the appropriate location
may be different on other platforms.
10. Gawk now supports retryable I/O via PROCINFO[input-file, "RETRY"]; see
the manual.
11. The C API has undergone changes that break binary compatibility with
the previous version. Thus the API version is now at 2.0. YOU WILL
NEED TO RECOMPILE YOUR EXTENSIONS to work with this version of gawk.
Source code compatibility remains intact, although you will get
compiler warnings if you do not revise your extensions. We strongly
recommend that you do so. Fortunately, the changes are fairly minor
and straightforward.
See the manual for the new features.
12. Revisions in the POSIX standard remove the special case for POSIX
mode when FS = " " where newline was not a field separator. The code
and doc have been updated.
13. Gawk now supports strongly typed regexp constants. Such constants
look like @/.../. You can assign them to variables, pass them to
functions, use them in ~, !~ and the case part of a switch statement.
More details are provided in the manual.
14. The new typeof() function can be used to indicate if a variable or
array element is an array, regexp, string or number.
15. As promised when 4.1 was released, the old extension mechanism,
using the `extension' function, is now gone.
16. Support for GNU/Linux on Alpha systems has been removed.
17. Optimizations are now enabled by default. Use the new -s/--no-optimize
option(s) to disable them. Pretty-printing and profiling automatically
disable optimizations so that the output program is the same as the
original input program.
18. Gawk now uses fwrite_unlocked if it's available. This yields a 7% - 18%
improvement in raw output speed (gawk '{ print }' on a large file).
19. Passing negative operands to any of the bitwise functions now
produces a fatal error.
20. Programs that toggle IGNORECASE a lot should now be noticeably faster.
21. The mktime function now accepts an optional second argument. If this
argument is present and is non-zero or non-null, the time will be converted
from UTC instead of from the local timezone.
22. The FIELDWIDTHS parsing syntax has been enhanced to allow specifying
how many characters to skip before a field starts. It also allows
specifying '*' as the last character to mean "the rest of the record".
Field splitting with FIELDWIDTHS now sets NF correctly. The documentation
for FIELDWIDTHS in the manual has been considerably reorganized and
improved as well.
23. The PROCINFO["argv"] array records all of gawk's command line arguments
as gawk received them (the values of the C level argv array).
24. The DJGPP port has been revived and now has an official maintainer.
25. The manual has been translated into Italian! The translation is
included in the distribution.
0.18.1:
The major changes of this version:
- Improvements and fixes for Hierarchical Progressive Surveys [HiPS] support
- Updated code of plugins
- Updated code and data
- Updated GPS handling
- Added rise, transit and set times for celestial objects
- Added dithering support
Version 25.0.0 "Prog Noir" 2018-07-12
New features and enhancements
* mkvmerge: SRT/ASS/SSA text subtitles: for files for which no encoding has
been specified, mkvmerge will try UTF-8 first before falling back to the
system's default encoding.
* mkvmerge: SRT/ASS/SSA/WebVTT text subtitles: a warning is now emitted if
invalid 8-bit characters are encountered outside valid multi-byte UTF-8
sequences.
* mkvmerge: Matroska & MPEG transport stream readers: the encoding of text
subtitles read from Matroska files can now be changed with the
`--sub-charset` parameter.
* Linux: starting with release 25 an AppImage will be provided which should
run on any Linux distribution released around the time of CentOS 7/Ubuntu
14.04 or later.
* macOS: translations: updated the `build.sh` script to build `libiconv` and a
complete `gettext`. Together with an additional fix to how translation files
are located, MKVToolNix can now use all interface languages on macOS,
too.
Bug fixes
* mkvmerge: AVC/h.264: fixed file identification failing for certain
elementary streams due to internal buffers not being cleared properly.
* mkvmerge: HEVC/h.265: fixed file identification failing for certain
elementary streams due to internal buffers not being cleared properly.
* mkvmerge: MLP code: fixed various issues preventing MLP from being parsed
correctly.
* mkvmerge: TrueHD/MLP packetizer; dialog volume normalization removal isn't
attempted if the track is an MLP track as the operation is only supported
for TrueHD, not MLP.
* mkvmerge: MPEG TS reader: when reading MPLS mkvmerge will now compare the
MPLS's start and end timestamps against the transport stream's PTS instead
of its DTS. Otherwise the first key frame of a video track might be dropped
if it isn't the first in presentation order.
* mkvmerge: JSON identification: mkvmerge will ensure that all strings passed
to the JSON output modules are valid UTF-8 encoded strings by replacing
invalid bytes with placeholder characters. This avoids the JSON library
throwing an exception and mkvmerge aborting on such data.
* mkvmerge: audio packetizers: mkvmerge will now keep discard padding values
if they're present for packets read from Matroska files.
* mkvmerge: Ogg Opus reader: packet timestamps aren't calculated by summing up
the duration of all packets starting with timestamp 0 anymore. Instead the
algorithm is based on the Ogg page's granule position and which packet
number is currently timestamped (special handling for the first and last
packets in the stream).
* This fixes the first timestamp if the first Ogg packet's granule position
is larger than the number of samples in the first packet (= if the first
sample's timestamp is bigger than 0). mkvmerge will keep those offsets now
and inserts "discard padding" only where it's actually needed.
* It also improves handling of invalid files where the first Ogg packet's
granule position is smaller than the number of samples in the first packet
(= the first sample's timestamp is smaller than 0). mkvmerge will now
shift all timestamps up to 0 in such a case instead of inserting "discard
padding" elements all over the place.
* mkvmerge will no longer insert "discard padding" elements if the
difference between a) the calculated number of samples in the packet
according to the granule position and b) the actual number of samples as
calculated from the bitstream is one sample or less and if the packet
isn't the last one in the stream. This circumvents certain rounding
errors.
* The timestamp of the first packet after a gap in the middle of the stream
is now calculated based on the Ogg page the packet belongs to, and not
based on the timestamps before the gap.
* mkvmerge: complete rewrite of the progress handling. It's now based upon the
total size of all source files and the current position within them instead
of the number of frames/blocks to be processed. This simplifies calculation
when appending files and fixes rare cases of when progress report was
obvious wrong (e.g. stuck at 0% right until the end).
* MKVToolNix GUI: header editor: non-mandatory elements couldn't be removed
anymore due to a regression while fixing 2320. They can now be removed
again.
pkgsrc changes:
- Remove all patches (no longer needed)
Changes:
1.3.3
-----
* Feature: Expand ~ in DOTFILES_DIR hooks (Eric Collins).
1.3.2
-----
* BUGFIX: Use =, not ==, in test(1) (Florian Tham).
* BUGFIX: Directories with spaces in rcup(1) (Florian Tham).
* BUGFIX: Fallback the LOGNAME from whoami (AJ Villalobos, Mike Burns).
* BUGFIX: Fix cd for paths beginning with hyphen (-) (Christian Höltje).
* Feature: Expand ~ in DOTFILES_DIR (Rebecca Meritz).
* Documentation improvements (Alan Yee, Eric Collins, Florian Tham, kajisha,
Matthew Horan, maxice8, Mike Burns, Rebecca Meritz, Scott Stevenson,
Tyson Gach, Yota Toyama).
Changes:
1.4.2
-----
- Added image-pool extractors for safebooru and rule34
- Added option for extended tag information on booru sites (#92)
- Added support for DeviantArt's new URL format
- Added support for mangapark mirrors
- Changed imagefap extractors to use HTTPS
- Fixed crash when skipping downloads for files without known extension
pkgsrc changes:
- Delete patch-github_editor.go, imported upstream
- Adjust SUBST_SEDs commands for the current man page
- Manually regen files/hub.1 man page
Changes:
2.5.0
-----
Features
- Have ci-status also query Checks API
Fixes
- Do not pass `--cmd' to vi editor to ensure compatibility with older vi
- Simplify cherry-picking commits from pull request URLs
- Allow single-character branches/tag names in hub compare
- Fix hub compare for Enterprise when <USER> is specified
- Support remote add -t BRANCH argument
- Bash shell completion fixes for git 2.18
- Documentation fixes
3.0.0:
There are not many new features and changes to the game itself, as the main goal of this release is to keep the game playable on modern systems, and there is finally also support for Mac and Android systems. This was all done by integrating the classic Mirror Magic game engine into the game Rocks’n’Diamonds as a new custom game engine, therefore using R’n’D as the new technical platform for this and any future release.
4.1.0.0:
added various additional customization options to create your own games
added showing/hiding game element sections in the level editor depending on the selected game engine
added doing ‘redo’ by pressing ‘undo’ button with Ctrl or Shift key in the level editor
added new automatically saved config file for the selected zoom tile size in the level editor
moved level property ‘initial wind direction’ to balloon elements in editor
fixed various bugs (and probably added some new ones)
Changes in version 0.3.3.8:
Tor 0.3.3.8 backports several changes from the 0.3.4.x series, including
fixes for a memory leak affecting directory authorities.
o Major bugfixes (directory authority, backport from 0.3.4.3-alpha):
- Stop leaking memory on directory authorities when planning to
vote. This bug was crashing authorities by exhausting their
memory. Fixes bug 26435; bugfix on 0.3.3.6.
o Major bugfixes (rust, testing, backport from 0.3.4.3-alpha):
- Make sure that failing tests in Rust will actually cause the build
to fail: previously, they were ignored. Fixes bug 26258; bugfix
on 0.3.3.4-alpha.
o Minor features (compilation, backport from 0.3.4.4-rc):
- When building Tor, prefer to use Python 3 over Python 2, and more
recent (contemplated) versions over older ones. Closes
ticket 26372.
o Minor features (geoip):
- Update geoip and geoip6 to the July 3 2018 Maxmind GeoLite2
Country database. Closes ticket 26674.
o Minor features (relay, diagnostic, backport from 0.3.4.3-alpha):
- Add several checks to detect whether Tor relays are uploading
their descriptors without specifying why they regenerated them.
Diagnostic for ticket 25686.
o Minor bugfixes (circuit path selection, backport from 0.3.4.1-alpha):
- Don't count path selection failures as circuit build failures.
This change should eliminate cases where Tor blames its guard or
the network for situations like insufficient microdescriptors
and/or overly restrictive torrc settings. Fixes bug 25705; bugfix
on 0.3.3.1-alpha.
o Minor bugfixes (compilation, backport from 0.3.4.4-rc):
- Fix a compilation warning on some versions of GCC when building
code that calls routerinfo_get_my_routerinfo() twice, assuming
that the second call will succeed if the first one did. Fixes bug
26269; bugfix on 0.2.8.2-alpha.
o Minor bugfixes (control port, backport from 0.3.4.4-rc):
- Handle the HSADDRESS= argument to the HSPOST command properly.
(Previously, this argument was misparsed and thus ignored.) Fixes
bug 26523; bugfix on 0.3.3.1-alpha. Patch by "akwizgran".
o Minor bugfixes (memory, correctness, backport from 0.3.4.4-rc):
- Fix a number of small memory leaks identified by coverity. Fixes
bug 26467; bugfix on numerous Tor versions.
o Minor bugfixes (relay, backport from 0.3.4.3-alpha):
- Relays now correctly block attempts to re-extend to the previous
relay by Ed25519 identity. Previously they would warn in this
case, but not actually reject the attempt. Fixes bug 26158; bugfix
on 0.3.0.1-alpha.
o Minor bugfixes (restart-in-process, backport from 0.3.4.1-alpha):
- When shutting down, Tor now clears all the flags in the control.c
module. This should prevent a bug where authentication cookies are
not generated on restart. Fixes bug 25512; bugfix on 0.3.3.1-alpha.
o Minor bugfixes (testing, compatibility, backport from 0.3.4.4-rc):
- When running the hs_ntor_ref.py test, make sure only to pass
strings (rather than "bytes" objects) to the Python subprocess
module. Python 3 on Windows seems to require this. Fixes bug
26535; bugfix on 0.3.1.1-alpha.
- When running the ntor_ref.py test, make sure only to pass strings
(rather than "bytes" objects) to the Python subprocess module.
Python 3 on Windows seems to require this. Fixes bug 26535; bugfix
on 0.2.5.5-alpha.
0.8.17:
Add ein, itin and refactored ssn Provider for en_US.
Add job provier for zh_CN.
Add date_of_birth provider.
Add alpha-3 representation option for country-code provider.
0.7.11:
[Feature]: Add badge_branch option allowing configurability of which specific Git branch the Travis, Codecov, etc buttons default to.
[Feature]: Add optional next and previous links at the top and bottom of page content. Use theme option show_relbars to enable these.
[Bug] 73: Clean up some problematic font issues.
[Support]: Add setuptools-level entrypoint for improved theme distribution compatibility.
[Support]: Miscellaneous project maintenance updates such as adding to Travis CI and enforcing the use of flake8.
0.9.11:
make exception explicit
0.9.10:
add AMPGO and basin-hopping global optimization methods.
aborting a fit from the objective function now raises AbortFitException
fit statistics are more uniformly calculated.
the uncertainties package is now an external dependency, and an out-dated copy is no longer kept in lmfit.
more exceptions when import matplotlib are now tolerated.
many documentation fixes.
CHANGES IN FLTK 1.3.4 RELEASED: Nov 11 2016
Bug fixes and other improvements
- Fix test/native-filechooser help display artifact (STR #3349).
- MacOS: fix a crash when closing a fullscreen window.
- Accept empty Fl_Pixmap in Fl_RGB_Image c'tor (STR #3348).
- MacOS: fix drawing error when a window containing a hidden subwindow
is changed to fullscreen (error visible with the tabs test program).
- MacOS: fix possible crash when enabling fullscreen in test/scroll.
- Add a snapshot of known STR's and RFE's (KNOWN_BUGS.html).
CHANGES IN FLTK 1.3.4rc3 RELEASED: Oct 31 2016
Bug fixes and other improvements
- Fix string truncation in fluid (STR #2722 continued).
- MacOS: fix a small problem where the Command-Quit menu hotkey
may not work if Fl_Native_File_Chooser is used before any
window is shown.
CHANGES IN FLTK 1.3.4rc2 RELEASED: Oct 24 2016
Bug fixes and other improvements
- Make sure the "File Systems" menu item of Fl_File_Chooser
lists "/" as the first mounted file system (Linux/Unix platform).
- Added line numbers to fluid Edit -> Show Source Code viewer.
- Improved fluid's template handling (STR #3335).
CHANGES IN FLTK 1.3.4rc1 RELEASED: Oct 17 2016
New features and extensions
- Added support for Mac OS 10.11 "El Capitan" and 10.12 "Sierra".
- Added full support of true subwindows to the Mac OS X platform.
Window nesting to any depth is possible. An Fl_Gl_Window window or
subwindow can contain Fl_Window's as subwindows.
- Fluid now supports external editors (STR#3213)
See: Edit -> GUI Settings -> Use external editor
- Added method Fl_Widget::is_label_copied().
- Added methods Fl_Copy_Surface::w(), Fl_Copy_Surface::h(),
and Fl_Copy_Surface::draw_decorated_window().
- Added method Fl_Image_Surface::draw_decorated_window().
- Added method Fl_Shared_Image *Fl_Image_Surface::highres_image()
to draw into a high-resolution bitmap image (Mac OS X only).
- Added support for OpenGL version 3 and later.
- Added method Fl_Mac_App_Menu::custom_application_menu_items()
allowing customization of the application menu (Mac OS X only).
- Added 'fluid -u' command-line switch to upgrade fluid files in
batch mode. This option opens a fluid ('.fl') file and saves it
overwriting the old file with the current syntax and library version
number. Use with care (input file is overwritten unconditionally).
- Added FL_ZOOM_GESTURE gesture for OS X (only). Needs implementation
on other platforms.
- Added FL_ABI_VERSION, FL_API_VERSION, Fl::abi_version(), and
Fl::api_version(). Constants can be used to determine the compiled
FLTK version. Functions can be used to find the linked library version.
- Added Fl::abi_check() method to test if the runtime (linked)
ABI version is correct.
- Added Fl_Image::fail() to test if an image was loaded successfully
to allow for easier error detection when loading images (STR #2873).
- Added line numbers to fluid's source code viewer for New -> Code
New configuration options (ABI version)
- FLTK's ABI version can now be configured with 'configure', CMake, or
by editing a supplied file when using the bundled IDE projects.
See documentation in README.abi-version.txt.
1.3.4 ABI FEATURES
- Added deactivated user icon to Fl_Tree.
- Added Fl_Shared_Image::scale(width, height) which gives a shared
image its own drawing size, independently of the size of the
underlying image. This improves image drawing on high resolution
surfaces such as Laser printers, PDF files, and Apple retina displays.
Other improvements
- Configure now correctly sets HAVE_* variables only if both the
library and the header files were found. The configuration process
is aborted if Xft was requested explicitly with --enable-xft and
Xft was not found. The configuration summary now shows _found_
options as opposed to requested options.
- Improved drawing of rounded box (STR #2943).
- Full support of Apple 'retina' displays for which one drawing unit
corresponds to two pixels.
- The Mac OS X platform no longer uses the deprecated AGL
(Apple GL library) to draw OpenGL data. Instead, it uses standard
Cocoa APIs. This allows FLTK to support drawing GL scenes at high
resolution when an Fl_Gl_Window is mapped to a 'retina' display.
- Added Fl_Gl_Window::pixel_w(), Fl_Gl_Window::pixel_h(), and
Fl_Gl_Window::pixels_per_unit() useful for high resolution OpenGL windows.
- fl_read_image() now captures all pixels within the rectangle
described by its arguments, whether they belong to a GL scene
or not (STR #3142). It also captures subwindows of GL windows.
- Fl::delete_widget() now hides the widget or window immediately
(i.e. when called) - only destruction is delayed as before.
- FLTK header files don't expose X11 definitions in user code any more
unless requested by including FL/x.H explicitly or implicitly.
- The PostScript code output when printing images under Linux/Unix
is now much smaller by using lossless compression techniques.
- The Linux/Unix printer dialog now uses BSD-style printing commands
(lpr/lpq) when SystemV-style commands (lp/lpstat) are not available.
- Drawing alpha-blended images under X11 is now accelerated with
Xrender.
- The font used for the FL_COURIER font family was changed on the Mac OS X
platform from 'Courier New' to 'Courier' because it was too thin.
- Text drawing on the Mac platform supports Unicode 'variation selectors'
in the range [0xFE00-0xFE0F].
- Added a Mac OS implementation of Fl_Window::wait_for_expose() that
became necessary with Mac OS 10.10 "Yosemite".
- Added the libfltk target to the Xcode project producing a static
version of the FLTK library (Mac OS X).
- Restored the possibility to call Fl::set_font() before main() starts.
- Allow using the --enable-x11 configure option on the Mac OS platform
which produces an X11 version of the FLTK library (don't use unless
you know what you're doing).
- FLTK code and fluid-generated code can be used in static initializers.
- Added light gray separator line to fluid's widget browser (STR #2997).
- Improved tooltip behavior for huge tooltips: remove flicker, support
key/mouse dismiss (STR #2650).
- Modifier key names displayed in shortcut labels can now be localized.
See documentation of fl_shortcut_label(). You can set modifier key
names for Ctrl, Alt, Shift, and Meta by assigning global string
pointers to your translated modifier key names.
- Many documentation improvements and fixes.
- Fixed many compiler warnings (STR #2988).
- Fluid now generates code with less compiler warnings (STR #2813).
- Many CMake improvements and fixes. Note: CMake is mostly operating
now, but not yet recommended for production use. Please test and
report issues.
- Updated bundled zlib from 1.2.5 to 1.2.8.
- Updated bundled libjpeg from jpeg-8c to jpeg-9a.
Bug fixes
- Fix potential crash when using keyboard navigation on Fl_Tabs
widget without children (STR #3333).
- Fix potential crash if Fl_Window::icon(NULL) was called to clear
(reset) a window icon. This is now legal and documented behavior.
The same applies to Fl_Window::default_icon().
- Allow widget callback to be NULL, i.e. no callback (STR #2835).
- Fixed Fl_Help_View buffer overflow (STR #3275).
- Fl_Browser now correctly adjusts its scrollbars when the default
text size is changed with textsize(int) (STR #3057).
- Fixed Fl_Text_Display/Fl_Text_Editor slow scrolling, line number
display, wrap mode "hiding" text behind scrollbars, and more
scrollbar handling (alignment) (STR #3272).
- Fixed valgrind warning (uninitialized variable) in Fl_Window.
Visible only with FLTK_ABI_VERSION >= 10303, since FLTK 1.3.3.
- Fixed Windows drag'n'drop not showing insert position if the drop
target is inside the same window or process (STR #3209).
- Fixed undefined reference building shared cairo library (STR #3276).
- Fixed Fl_Browser if text argument to some methods is NULL (STR #3269).
- Fixed missing image release in fluid (STR #2840).
- Fixed out-of-bounds memory access in fluid (STR #3263).
- Fixed trailing white space in fluid .fl files (STR #3239).
- Several box types were not drawn correctly when deactivated.
The background color for deactivated widgets is now correct:
fl_inactive(color()) (STR #2907).
- Fix inconsistent interpretation of ld() in image handling
(STR #3308). This is a minor issue since ld() is usually 0 or
w()*d(). Documentation has been fixed, and ld() handling is now
consistent in Fl_(RGB_)Image and fl_draw_image() and friends. See
documentation of Fl_Image and Fl_RGB_Image for more information.
- Fixed Fl_Pixmap (background) drawing to respect the clip region
(STR #3206).
- Fixed reading .pbm image files: 1 is now interpreted as black,
and images whose width are a multiple of 8 are correctly read.
Note: if you relied on the faulty behavior you may need to fix
your image files.
- Restored window background drawing, particularly the 'plastic'
scheme's background (STR #3059). This was a regression since
FLTK 1.3.0.
- Prevent sending (FL_SHORTCUT) events to inactive widgets (STR #3216).
- Fixed button label clipping (STR #3237).
- Fixed Fl_Menu_::item_pathname() handling of descending submenu
pointers (STR #3177).
- Fl_Text_Display: style buffer colors are no longer manipulated by
fl_contrast() for normal text drawing (fltk.coredev thread started
04/08/15, Subject: "RFC: Fl_Text_Display style buffer color weirdness")
- Fl_Tree::deactivate() now affects draw color of items (must have
ABI 1.3.3 or higher enabled). For icons to draw deactivated,
enable ABI 1.3.4. (test/tree has a 'deactivate tree' button)
- Fl_Tree::find_item() did not find items if the pathname contained
identical strings (STR #3234).
- Fixed possible bad border effect when a set of radio menu items
is located first in its menu (STR #3176): Fl_Menu_Item::set_only()
is deprecated and replaced by Fl_Menu_::set_only(Fl_Menu_item*).
- Restore the correct state of mouse buttons and keyboard modifier keys
after closing a file or printer dialog (STR #3221).
- Fix for deactivate colors issue with Fl_Text_Display/Editor (STR #3219).
- Fixed issue with MSWindows platform where the program kept running
after closing all its windows (STR #3165).
- Fix potential buffer overflow (MSWindows: BEX64 error) and problem with
MSWindows environment variables "HOME"(MinGW) vs. "UserProfile"(DOS)
- Fix issue with MSWindows platform where a window would decrease
in size after each close/open (STR #3167).
- Fix undefined reference XGetUtf8FontAndGlyph (STR #3191).
- Fix potential keyboard hangup (STR #3192).
- Fix for: .xbm images were not previewed (STR #3131).
- Fixed crash on Mac platform when resizing a not yet shown() Fl_Gl_Window.
- Fixed potential Windows GDI leak (STR #3254).
- Fixed Linux/Unix potential program hang when dialog pops up while
a menu is open (STR #3179).
- Fixed a crash when a Unix/Linux program calls take_focus() before any
window has been show()n.
- Fixed an error on the Mac platform when drawing to an Fl_Image_Surface
object without using the Fl_Image_Surface::draw() method.
- Fixed STR #3268 where a fullscreen window could become relocated
behind the menu bar and dock (Mac OS only).
- Fixed STR #3207: ^C not working when numlock or capslock is on.
- Fixed code editor in Fluid (STR #3184).
- Fixed a potential hangup of the Fl::awake() queue under Windows if
a window is resized or moved while the Fl::awake() message is sent
(STR #3143).
- Fixed a regression: restore the possibility to call
fl_draw_image(buf,X,Y,W,H,D,L) with negative D and/or L arguments.
- Fixed overflow in Fl_Valuator::precision(int) to 0...9 (STR #3280).
zoneinder uses %ld to print tv.tv_sec, which is of type time_t. On
NetBSD, that's int64_t, which happens to match long on amd64, but not
on arm, and hence printf often segfaults. Kludge around this by
casting to long, which should work for about 20 years, by which time a
proper fix should have arrived in a zoneminder release.
Not yet raised upstream, because our package is 1.28.1 and upstream
has released 1.30.4.