RmlUi 4.3
Time for a new release now that we are approaching the end of the year. This release comes with a widely requested feature, flexbox support! This feature has been in the works for a few months now, hope it comes handy when designing your layouts. In addition, we have many smaller improvements and bug fixes for some quality-of-life enhancements.
Again we have several contributions from the community helping out with pull requests. Special thanks to all of you, and keep up the good work!
Flexbox layout
Support for flexible box layout. #182 #257
display: flex;
See usage examples, differences from CSS, performance tips, and all the details in the flexbox documentation.
Elements
select
element:- Emit
change
event even when the value of the newly selected option is the same. - Do not wrap around when using up/down keys on options.
- Fix unintentional clipping of the scrollbar.
- Emit
tabset
element: Fix index parameter having no effect in ElementTabSet::SetPanel and ElementTabSet::SetTab. #237 #246 (thanks @nimble0)
RCSS
- Add (non-standard) property value
clip: always
to force clipping to the element, seeclip
documentation. #235 #251 (thanks @MatthiasJFM) - Escape character changed from forward slash to backslash
\
to align with CSS.
Layout improvements
- See flexbox layout support above.
- Fix an issue where some elements could end up rendered at the wrong offset after scrolling. #230
- Improve behavior for collapsing negative vertical margins.
- Pixel rounding improvements to the clip region.
- Performance improvement: Avoid unnecesssary extra layouting step in some situations when scrollbars are added.
Samples
- Add clipboard support to X11 samples. #231 (thanks @barotto)
- Windows shell: Fix OpenGL error on startup.
Tests
- Visual tests suite: Add ability to overlay the previous reference capture of the test using the shortcut Ctrl+Q.
- Add support for CSS flexbox tests to the CSS tests converter.
Lua plugin
- Make Lua plugin API consistently one-indexed instead of zero-indexed. #237 #247 (thanks @nimble0)
- Fix crash due to double delete in the Lua plugin. #216
Dependencies
- Update LunaSVG plugin for compatibility with v2.3.0. #232
- Warn when using FreeType 2.11.0 with the MSVC compiler, as this version introduced an issue leading to crashes.
Build improvements
- Fix log message format string when compiling in debug mode. #234 (thanks @barotto)
- Avoid enum name collisions with Windows header macros. #258
Breaking changes
- The
clip
property is now non-inherited. Users may need to update their RCSS selectors to achieve the same clipping behavior as previously when using this property. - Minor changes to the clipping behavior when explicitly using the
clip
property, may lead to different results in some circumstances. - RCSS escape character is now
\
instead of/
. - Lua plugin: Some scripts may need to be changed from using zero-based indexing to one-indexing.