Skip to content

Commit 00d9928

Browse files
committed
Update changelog
1 parent 7158504 commit 00d9928

File tree

1 file changed

+30
-15
lines changed

1 file changed

+30
-15
lines changed

changelog.md

Lines changed: 30 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
* [RmlUi 6.1](#rmlui-61)
12
* [RmlUi 6.0](#rmlui-60)
23
* [RmlUi 5.1](#rmlui-51)
34
* [RmlUi 5.0](#rmlui-50)
@@ -12,19 +13,19 @@
1213
* [RmlUi 3.0](#rmlui-30)
1314
* [RmlUi 2.0](#rmlui-20)
1415

15-
## RmlUi 6.1 (WIP)
16+
## RmlUi 6.1
1617

1718
### Prevent single pixel gaps between elements
1819

1920
This release addresses the issue of 1px gaps appearing between fractionally sized elements when placed border-to-border. This was particularly pronounced in DPI-scaled layouts, as that often leads to fractionally sized elements.
2021

21-
The solution involves rounding the rendered sizes of elements based on their absolute positions to ensure that the bottom/right of one element matches the top/left of the next element. This implies that the rendered size of a fractional element may vary by up to one pixel. This generally matches how web browsers behave. Floating-point precision issues may still cause rare gaps, but the improvements should cover almost all cases. See the [commit message](https://github.com/mikke89/RmlUi/commit/b197f985b328d5493af3190e27d4290bb496ff1d) for details. Resolves #438, thanks to @mwl4 for the extensive initiative and proof of concept.
22+
The solution involves rounding the rendered size of elements based on their absolute positions to ensure that the bottom/right of one element matches the top/left of the next element. This implies that the rendered size of a fractional element may vary by up to one pixel. This generally matches how web browsers behave. Floating-point precision issues may still cause rare gaps, but the improvements should cover almost all cases. See the [commit message](https://github.com/mikke89/RmlUi/commit/b197f985b328d5493af3190e27d4290bb496ff1d) for details. Resolves #438, thanks to @mwl4 for the extensive initiative and proof of concept.
2223

23-
Fixes several situations with single pixel gaps and overlaps:
24+
In particular, this fixes several situations with single pixel gaps and overlaps:
2425

2526
- Gap of 1px between border or backgrounds of neighboring elements.
2627
- Overlap of 1px between border or backgrounds of neighboring elements.
27-
- Table cell backgrounds overlaps the table border by 1px.
28+
- Table cell backgrounds overlap the table border by 1px.
2829
- Gap between nested elements in a flex container.
2930
- Clipping area offset by 1px compared to the border area.
3031

@@ -36,7 +37,7 @@ The `<handle>` element has received several major improvements.
3637

3738
- The handle now retains the anchoring that applies to the target element, even after moving or sizing it. #637
3839
- If an element has all of its inset (top/right/bottom/left) properties set, this determines the size, and anchors to all edges. Previously, we would break the anchoring and just declare its new position or size. Now, positioning and sizing is performed in a way that retains this anchoring. Similarly, this applies to every combination of anchoring.
39-
- Thus, when first sizing and moving the target, and then resizing its container, the element can now still resize itself to match the new dimensions.
40+
- Thus, when first sizing and moving the target and then resizing its container, the element can now still resize itself to match the new dimensions.
4041
- The `edge_margin` attribute is introduced to constrain the target placement to the edges of its containing block. #631
4142
- Applies to both position and size targets.
4243
- This attribute can take any length or percentage, which specifies the minimum distance between the target and the edges of its containing block. Each side can be specified individually, and negative values are allowed. See the [documentation](https://mikke89.github.io/RmlUiDoc/pages/rml/controls.html#handle) for details.
@@ -47,7 +48,7 @@ The `<handle>` element has received several major improvements.
4748

4849
### New decorator: `text`
4950

50-
Added a new decorator to render text as a background on elements. This can be particularly helpful when using icon fonts, and even allows using such fonts for generated elements. #348 #655 #679
51+
Implement a new decorator to render text as a background on elements. This can be particularly helpful when using icon fonts, and even allows using such fonts for generated elements. #348 #655 #679
5152

5253
```
5354
decorator: text("Hello 🌎 world!" blue bottom right);
@@ -59,12 +60,13 @@ The font face will be inherited from the element it is being applied to. However
5960

6061
- Apply automatic minimum size of flex items in column mode with auto size. #658
6162
- Performance improvement: Skip calculating hypothetical cross size when not needed. Avoids a potentially expensive formatting step in some situations. #658
62-
- Fix hypothetical width of replaced elements (such as images) in column direction layout. #666
63-
- Fix hitting an assertion due to negative flex item size in some situations when edge size is fractional. #657
63+
- Fix the hypothetical width of replaced elements (such as images) in column direction layout. #666
64+
- Fix hitting an assertion due to negative flex item size in some situations when the edge size is fractional. #657
6465

6566
### Data binding
6667

6768
- Allow custom getter/setter on scoped enum. #693 #699 (thanks @AmaiKinono)
69+
- Ternary expressions are now implemented with jumps so that only one branch is evaluated. This makes it possible to e.g. avoid invalid array access in case of an empty array. #740 (thanks @rminderhoud and @exjam)
6870
- Fix an issue where the `FamilyId` would have the same value for different types across shared library boundaries, which could lead to a crash or other unexpected behavior.
6971

7072
### Animations
@@ -78,32 +80,42 @@ The font face will be inherited from the element it is being applied to. However
7880

7981
### Input elements
8082

83+
- Implement the ability to style the progress of a `range` input. #736 (thanks @viseztrance)
84+
- A new [`sliderprogress` child element](https://mikke89.github.io/RmlUiDoc/pages/style_guide.html) is added for this purpose.\
85+
![Range input with styled progress bar](https://github.com/user-attachments/assets/aa1ecea7-6fc1-4bc5-99a0-5bbc969e190e)
8186
- Improve navigation of `<select>` elements when using controller/keyboard navigation. #565 #566 (thanks @Paril)
8287
- Scroll to the selected options as one is moving up or down the list.
8388
- Scroll to the selected option when opening up the selection box.
84-
- Add ability to programmatically [show or hide](https://mikke89.github.io/RmlUiDoc/pages/cpp_manual/element_packages/form.html#drop-down-select-box) the selection box.
89+
- Add the ability to programmatically [show or hide](https://mikke89.github.io/RmlUiDoc/pages/cpp_manual/element_packages/form.html#drop-down-select-box) the selection box.
8590
- Fix some layout and behavior issues of the `<select>` element.
8691
- Fix issues related to specifying the height of the select arrow element.
8792
- Fix an issue where the selection box would scroll to the top-left corner when the document layout is updated.
88-
- Fix an issue where the contents of the `<input type="text">` and `<textarea>` elements could sometimes unintentionally scroll to a new place after a layout update.
93+
- Fix an issue where wrapping a `<select>` element inside a `<label>` element would prevent mouse clicks from being able to select a new option. #494
94+
- Fix an issue where the contents of the `<input type="text">` and `<textarea>` elements could sometimes inadvertently scroll to a new place after a layout update.
95+
- Handle multi-byte characters in `<input type="password">` fields. #735
8996

9097
### Elements
9198

99+
- Add support for the [`:scope` pseudo selector](https://mikke89.github.io/RmlUiDoc/pages/rcss/selectors.html#pseudo-selectors) when calling into the `Element` DOM query methods, i.e. `Element::QuerySelector[All]`, `Element::Matches`, and `Element::Closest`. #578 (thanks @Paril)
100+
- Add [`Element::Contains` DOM method](https://mikke89.github.io/RmlUiDoc/pages/cpp_manual/elements.html#dom-interface).
92101
- Allow `Element::ScrollIntoView` to only scroll in the nearest scroll container, instead of all ancestor scroll containers, by using the new `ScrollParentage::Closest` scroll option.
93102
- Fix an issue where scrollbars could appear or disappear one frame after they should have changed visibility.
94103

95104
### Documents
96105

97106
- Expose `ElementDocument::FindNextTabElement` publicly.
107+
- Disallow focusing into an unloaded document to prevent a potential situation with dangling pointers. #730
98108

99109
### Font engine
100110

101111
- Add the ability to select a font face from a font collection, using its face index passed to `Rml::LoadFontFace`. #720 (thanks @leduyquang753)
102112
- Fix rare placement of glyphs appearing below the baseline in some fonts, by using the bitmap bearing instead of the glyph metrics.
113+
- The [HarfBuzz font engine](./Samples/basic/harfbuzz) now uses kerning from HarfBuzz instead of FreeType. #639 (thanks @TriangulumDesire)
103114

104-
### RML Parsing
115+
### RML Parsing and layouting
105116

106117
- Fix RML parsing of extra hyphen in closing comment, i.e. `--->` instead of `-->`. #681
118+
- Fix a crash during layouting with word break enabled, when the first character of a token is multi-byte and does not fit on the line. #753 (thanks @and3md)
107119

108120
### Rendering
109121

@@ -137,7 +149,7 @@ The font face will be inherited from the element it is being applied to. However
137149

138150
### Unit testing
139151

140-
- Enable shell renderer with environment variable `RMLUI_TESTS_USE_SHELL=1` instead of compile definition.
152+
- Enable shell renderer with environment variable `RMLUI_TESTS_USE_SHELL=1` instead of a compile definition.
141153

142154
### Resource management
143155

@@ -146,17 +158,20 @@ The font face will be inherited from the element it is being applied to. However
146158
- Thus, there should no longer be any memory allocations occurring before `main()` when linking to RmlUi.
147159
- We now give a warning if there are objects in user space that refer to any RmlUi resources at the end of `Rml::Shutdown`, as this prevents the library from cleaning up memory pools.
148160
- We make an exemption for `Rml::EventListener` as those are commonly kept around until after `Rml::Shutdown` which is considered reasonable.
149-
- Add manual release of render managers, `Rml::ReleaseRenderManagers`, to allow render interface to be destroyed before `Rml::Shutdown`. #703
161+
- Add manual release of render managers, `Rml::ReleaseRenderManagers`, to allow the render interface to be destroyed before `Rml::Shutdown`. #703
150162

151163
### Building
152164

153165
- Remove `OpenGL::GL` dependency for GL3 backends. #684 (thanks @std-microblock)
154166
- Fix dependency check signature in RmlUiConfig causing failure to find dependencies. #721 #722 (thanks @mpersano)
155-
- Fix missing header in the GL3 renderer, causing a compilation error on Visual Studio 17.12.
167+
- Log to console by default when building on MinGW. #757 (thanks @trexxet)
168+
- Fix a missing header include in the GL3 renderer, causing a compilation error on Visual Studio 17.12.
169+
- Fix a build issue on certain Visual Studio 2017 setups by using `std::enable_if_t` consistently. #734
170+
- Fix a build issue on Android with C++ 23 enabled due to mismatching std-namespace usage and C vs. C++ math headers.
156171
- Fix unit tests and missing sample data when building with Emscripten.
157172
- Libraries and archives will now be placed in the top-level binary directory, unless overridden by users or parent projects. This matches the existing runtime output directory.
158173

159-
### Documentation
174+
### Readme
160175

161176
- Improve readme code examples. #683 (thanks @std-microblock)
162177

0 commit comments

Comments
 (0)