Synfig 1.5.4 Release Notes
Highlights
Feature Enhancements: Several new capabilities have been introduced, such as an angle converter that supports integers, hotkeys for locking/unlocking past and future keyframes, a new ‘Alpha Intersection’ blending mode, and enhanced palette clipboard functionality. Additionally, initial support for SVG Text elements and Lottie Text Layers has been added.
Stability and Quality Improvements: Numerous bug fixes address critical issues including rendering artifacts in outlines, undefined behavior during undo/redo operations after value conversion, crashes related to malformed PNG imports or null devices, and various UI/UX inconsistencies. Specific fixes include improved SVG importer behavior, corrected bline tool interactions, and resolution of font rendering issues.
Performance and Code Refinements: Significant refactoring efforts have been undertaken, including the porting of several layers (Bevel, Noise gradient, HalfTone2 & 3) to the more efficient Cobra rendering engine. Other improvements include optimizing code for image sequence import, enhancing parameter passing by reference, and general code style cleanups.
What’s Changed
fix: drag-n-drop import when filename contains non-latin chars by @rodolforg in https://github.com/synfig/synfig/pull/3412
refactor: update macOS icons to higher resolutions by @pgilfernandez in https://github.com/synfig/synfig/pull/3224
refactor: add move constructor to handle/loose_handle/rhandle by @rodolforg in https://github.com/synfig/synfig/pull/3417
fix: change convert.exe syntax to avoid clash in Windows by @rodolforg in https://github.com/synfig/synfig/pull/3416
fix: convert.exe directory and missing extension by @rodolforg in https://github.com/synfig/synfig/pull/3421
fix: Lottie export failure with Japanese locale setting in Windows by @ice0 in https://github.com/synfig/synfig/pull/3419
refactor: avoid macro in header file of ValueNode_Composite by @rodolforg in https://github.com/synfig/synfig/pull/3429
fix: clang build (and bump macOS version) by @ice0 in https://github.com/synfig/synfig/pull/3438
fix: Upgraded MLT version from ‘7.2.0’ to ‘7.28.0’ under MSYS2 environment by @shreyaspranav in https://github.com/synfig/synfig/pull/3437
fix: uninitialized var and mixed declaration/definition of class by @rodolforg in https://github.com/synfig/synfig/pull/3435
fix: color/gradient dialog edits the parameter that opened itself by @rodolforg in https://github.com/synfig/synfig/pull/3373
feat: add “copy all” for Paste Options dialog by @rodolforg in https://github.com/synfig/synfig/pull/3422
chore: fix various typos by @luzpaz in https://github.com/synfig/synfig/pull/3443
refactor: rename setup and help-about actions - preparing to macOS by @rodolforg in https://github.com/synfig/synfig/pull/3195
fix: proper reset of bonesetup size in WorkArea by @rodolforg in https://github.com/synfig/synfig/pull/3380
refactor: Filesystem::remove_recursive() uses Path by @rodolforg in https://github.com/synfig/synfig/pull/3364
feat(SVG): naive support to Text element by @rodolforg in https://github.com/synfig/synfig/pull/3320
fix: handle (Radial)Composite valuenodes via Widget_Curves by @rodolforg in https://github.com/synfig/synfig/pull/3428
refactor: simpler gradient render task declarations by @rodolforg in https://github.com/synfig/synfig/pull/3301
refactor: add move constructor and move assignment operator to ValueDesc by @rodolforg in https://github.com/synfig/synfig/pull/3150
ci: Resolve error when build dir cannot be removed after previous (failed) run by @morevnaproject in https://github.com/synfig/synfig/pull/3450
ci: Add workflow to automatically generate release notes for GitHub releases by @akayiz in https://github.com/synfig/synfig/pull/3392
ci: Add automatically showing contributors how their pull requests affect the release notes by @akayiz in https://github.com/synfig/synfig/pull/3393
fix(ci): show-pr-change-note not working with prs from forks by @akayiz in https://github.com/synfig/synfig/pull/3453
refactor: minor cleanup on Plant layer by @rodolforg in https://github.com/synfig/synfig/pull/3452
fix: regression: couldn’t edit color or gradient of multiple layers by @rodolforg in https://github.com/synfig/synfig/pull/3470
chore: update .gitignore to exclude build files by @veermetri05 in https://github.com/synfig/synfig/pull/3466
fix: julia Set used to ignore Bailout parameter by @rodolforg in https://github.com/synfig/synfig/pull/3465
fix: make
FileSystem::write_block()return the number of bytes actually written by @rodolforg in https://github.com/synfig/synfig/pull/3478fix: resolve issue with toolbar space remaining visible after hiding by @rodolforg in https://github.com/synfig/synfig/pull/3459
fix: prevent potential null pointer dereference in ValueDescDisconnect action by @rodolforg in https://github.com/synfig/synfig/pull/3458
refactor: cleanup Layer::get_sub_renddesc*() methods by @rodolforg in https://github.com/synfig/synfig/pull/3455
fix(mod_ffmpeg): resolve missing audio export and incorrect error message display by @rodolforg in https://github.com/synfig/synfig/pull/3483
build(MSYS2): add missing libraries to archive by @ice0 in https://github.com/synfig/synfig/pull/3491
refactor: minor changes on Freetype layer by @rodolforg in https://github.com/synfig/synfig/pull/3489
refactor: remove unused CanvasInterface::auto_export() method by @rodolforg in https://github.com/synfig/synfig/pull/3492
fix: crash when trying to link to polygon instead of spline by @rodolforg in https://github.com/synfig/synfig/pull/3482
fix: crash with positive sound delay for MLT >= 7.20 by @rodolforg in https://github.com/synfig/synfig/pull/3495
fix: possible double free due to multithreading with Contour by @rodolforg in https://github.com/synfig/synfig/pull/3496
fix: importing image sequence failed when there was no duplicates by @rodolforg in https://github.com/synfig/synfig/pull/3499
refactor(Action): avoid direct use of etl::handle by @rodolforg in https://github.com/synfig/synfig/pull/3497
fix: prevent crash due to null pointer dereference in
Action::LayerEncapsulateSwitchby @rodolforg in https://github.com/synfig/synfig/pull/3501ci(Github Actions): bump Ubuntu version by @ice0 in https://github.com/synfig/synfig/pull/3505
fix: some Coverity Scan reports by @rodolforg in https://github.com/synfig/synfig/pull/3507
fix(lottie): Prevent SameFileError when exporting assets already in the images directory by @Stargazer10101 in https://github.com/synfig/synfig/pull/3506
refactor: reduce visibility of internal variable members of Layer_Bitmap by @rodolforg in https://github.com/synfig/synfig/pull/3504
build(ETL): cleanup dismissed ETL dependencies by @rodolforg in https://github.com/synfig/synfig/pull/3523
fix: History panel didn’t show sub-actions anymore by @rodolforg in https://github.com/synfig/synfig/pull/3522
feat(dialog): add Enter key support to accept user choice by @Abdelhadi-Wael in https://github.com/synfig/synfig/pull/3520
refactor: make code for importing image sequence more readable by @rodolforg in https://github.com/synfig/synfig/pull/3503
fix(lottie): add missing import for Advanced Outline by @WhatDidIDoWrong in https://github.com/synfig/synfig/pull/3508
refactor: port more layers to Cobra renderer: HalfTone2 & 3 by @rodolforg in https://github.com/synfig/synfig/pull/3300
fix(ui): refresh Parameters panel after undo/redo by @Abdelhadi-Wael in https://github.com/synfig/synfig/pull/3525
fix: FileSystem::remove_recursive() removes the directory itself too by @rodolforg in https://github.com/synfig/synfig/pull/3529
fix: couldn’t create converter to spline tangent or spline width (regression) by @Stargazer10101 in https://github.com/synfig/synfig/pull/3534
fix(audio): add length check for MLT track loading by @Abdelhadi-Wael in https://github.com/synfig/synfig/pull/3512
fix(ui): rectify wayland window icon by @Integral-Tech in https://github.com/synfig/synfig/pull/3561
fix: modifying waypoints for a group layer no longer modifies sibling layers by @mosasauridae in https://github.com/synfig/synfig/pull/3312
fix: fix shift in gradient layers by @rodolforg in https://github.com/synfig/synfig/pull/3567
fix: bump HalfTone2 and HalfTone3 layer versions after porting to Cobra by @rodolforg in https://github.com/synfig/synfig/pull/3566
fix: Fix bug displaying “Unable to resolve
” on project load by @shreyaspranav in https://github.com/synfig/synfig/pull/3540 refactor: port XORPattern layer to Cobra renderer by @rodolforg in https://github.com/synfig/synfig/pull/3485
feat: added support for setting playback interval through movable buttons by @mohamedAdhamc in https://github.com/synfig/synfig/pull/2765
fix(GUI): add missing icon for type transformation by @Svarov-RZM in https://github.com/synfig/synfig/pull/3578
chore: bump year to 2025 by @BobSynfig in https://github.com/synfig/synfig/pull/3581
feat: “Angle” converter for real -> angle conversions by @Stargazer10101 in https://github.com/synfig/synfig/pull/3560
refactor: remove commented-out code in HalfTone3 layer by @rodolforg in https://github.com/synfig/synfig/pull/3565
chore: fix internal error message for TaskFilterPixelSW by @rodolforg in https://github.com/synfig/synfig/pull/3569
fix: prevent crash due to null devices in DeviceManager from libgtkmm by @rodolforg in https://github.com/synfig/synfig/pull/3576
refactor: rename pre_run() parameters of TaskPaintPixelSW and TaskFilterPixelSW and fix code style by @rodolforg in https://github.com/synfig/synfig/pull/3568
fix: missing template argument : compiler in FreeBSD complained by @rodolforg in https://github.com/synfig/synfig/pull/3559
feat(lottie): add support for Text Layer by @saurabh-ramola in https://github.com/synfig/synfig/pull/1469
fix: avoid buffer overflow in Widget_SoundWave by @rodolforg in https://github.com/synfig/synfig/pull/3564
refactor: make
debugvariableconstin ValueNode_Bone by @rodolforg in https://github.com/synfig/synfig/pull/3586fix(lottie): allow to export SolidColor layer from old sif files by @rodolforg in https://github.com/synfig/synfig/pull/3583
refactor: remove the optional “group” property of layer parameters by @rodolforg in https://github.com/synfig/synfig/pull/3587
fix: new ValueNode_Angle couldn’t be loaded because of tag name clash by @rodolforg in https://github.com/synfig/synfig/pull/3589
fix(advanced outline layer): the outline on the last vertex of spline by @rodolforg in https://github.com/synfig/synfig/pull/3596
fix(GUI): add missing icons for various bone types by @Svarov-RZM in https://github.com/synfig/synfig/pull/3599
fix(bline tool): couldn’t create the spline right after user drags the first vertex by @rodolforg in https://github.com/synfig/synfig/pull/3595
fix(text tool): some fonts render corrupted text by @mosasauridae in https://github.com/synfig/synfig/pull/3611
fix: border computation for raster image with Transformation task by @rodolforg in https://github.com/synfig/synfig/pull/3603
feat: add new Map Range valuenode by @rodolforg in https://github.com/synfig/synfig/pull/3597
fix(advanced outline): fix rendering of width point in non-homogeneous position by @rodolforg in https://github.com/synfig/synfig/pull/3555
fix(bline tool): ignores double-clicking if without any created point by @rodolforg in https://github.com/synfig/synfig/pull/3594
fix: SVG importer kept two vertices on closing (Z) a SVG path by @rodolforg in https://github.com/synfig/synfig/pull/3558
chore: bump synfig versions for issue template & appveyor files by @rodolforg in https://github.com/synfig/synfig/pull/3625
fix(SVG importer): tangents were merged if curve exists after straight line by @rodolforg in https://github.com/synfig/synfig/pull/3624
refactor: port layer to Cobra renderer: Noise gradient by @rodolforg in https://github.com/synfig/synfig/pull/3306
perf(Shade layer): do not insert blur task if none specified by @Svarov-RZM in https://github.com/synfig/synfig/pull/3635
feat: palette clipboard functionality by @Kemosalamy in https://github.com/synfig/synfig/pull/2597
feat(blend method): new blending mode: Alpha Intersection by @rodolforg in https://github.com/synfig/synfig/pull/2304
refactor: prefer passing by reference instead of copy by @rodolforg in https://github.com/synfig/synfig/pull/3637
fix: prevent negative bline/brush width in rectangle state and constrain the range by @mohamedAdhamc in https://github.com/synfig/synfig/pull/3640
fix(mod_png): prevent crash when importing malformed png files by @Abdelhadi-Wael in https://github.com/synfig/synfig/pull/3643
refactor: port layer to Cobra renderer: Curve Gradient by @rodolforg in https://github.com/synfig/synfig/pull/3307
refactor: port Bevel layer to Cobra engine by @rodolforg in https://github.com/synfig/synfig/pull/3457
fix(advanced_outline): incorrect width rendering on open outlines by @Abdelhadi-Wael in https://github.com/synfig/synfig/pull/3646
feat: added a way to easily access the rendered file by @rodolforg in https://github.com/synfig/synfig/pull/3642
ci(Github Actions): bump macOS version (13 Ventura -> 14 Sonoma) by @rodolforg in https://github.com/synfig/synfig/pull/3651
ci(Github Actions): bump macOS version (14 Sonoma -> 26 Tahoe) by @ice0 in https://github.com/synfig/synfig/pull/3652
fix: undefined behavior when user convert a value, change it, undo tw… by @rodolforg in https://github.com/synfig/synfig/pull/3570
feat: add hotkeys for locking/unlocking past & future keyframes (Fixes #3638) by @omda777 in https://github.com/synfig/synfig/pull/3648
feat: angle converter can now be used for integers by @rodolforg in https://github.com/synfig/synfig/pull/3650
fix(rendering): remove artifacts in rendering outlines by increasing sampling resolution by @Abdelhadi-Wael in https://github.com/synfig/synfig/pull/3649
chore: Bump year to 2026 by @BobSynfig in https://github.com/synfig/synfig/pull/3669
chore: Update CLI help (seconds to synfig time) by @BobSynfig in https://github.com/synfig/synfig/pull/3670
chore: Release version 1.5.4 by @Zloi-KoteikA in https://github.com/synfig/synfig/pull/3672