|
1 |
| -# 1.2.0 - 2022-03-22 |
| 1 | +# 1.3.0 - 2022-11-20 |
2 | 2 |
|
3 | 3 | ## New Features
|
4 | 4 |
|
5 |
| -* `rtk.Window` now supports automatic sizing when based on its contents when `rtk.Window.w` and/or `rtk.Window.h` are nil at the time `rtk.Window:open()` is called, which is now the default behavior |
6 |
| -* Introduced a new slider widget `rtk.Slider`, which currently in beta and will be promoted in the next minor release |
7 |
| -* Added a new window attribute `rtk.Window.resizable` which controls the resizability of undocked windows |
| 5 | +* Added a new experimental `xml` module, which can be used to parse a subset of XML. The API is in preview and is not considered stable. Feedback appreciated. |
| 6 | +* `rtk.Slider`'s API has been promoted to stable (however vertical orientiation is not yet implemented) |
| 7 | +* Added a new mode `auto` for `rtk.Viewport.vscrollbar` that will reserve space for the scrollbar if scrolling is required to see all content |
| 8 | +* `rtk.Window` now supports relative values (i.e. between 0 and 1.0 inclusive) for `minw`, `minh`, `maxw`, and `maxh` attributes |
| 9 | +* Implemented customizable widget "hot zones" controlled via the `rtk.Widget.hotzone` attribute, which allows adjusting the area around the widget's normal boundary where mouse interactions will register. This can be useful to allow a widget to be clickable even if the user inadvertently clicks within the margin or spacing in a box, for example, which in particular can improve UX on touch screens |
| 10 | + |
8 | 11 |
|
9 | 12 | ## Minor Enhancements
|
10 | 13 |
|
11 |
| -* The `update` callback passed to `rtk.queue_animation()` now receives the animation table as the 4th argument |
12 |
| -* The `rtk.Entry`'s value attribute can be be received as the first positional argument |
13 |
| -* Full reflow is avoided when setting `rtk.Text.value` on a fixed-width text widget (optimization) |
14 |
| -* Remove js_ReaScriptAPI requirement for `rtk.Window:get_normalized_y()` |
| 14 | +* Containers now receive `onkeypress` events when any descendant of the container is focused |
| 15 | +* When `rtk.Viewport.vscrollbar` is set to `hover` (default) the scrollbar now becomes visible when the mouse enters anywhere within the viewport, rather than only when near the scrollbar gutter |
| 16 | +* Improved `rtk.Window` autosizing (i.e. when width or height is not set) when the window contains "greedy" widgets that want to fill their parent containers as much as possible |
| 17 | +* `rtk.Window:open()` now defaults to center alignment |
| 18 | +* `rtk.Widget.onclick`, `rtk.Widget.ondoubleclick`, and `rtk.Widget.onlongpress` no longer require `rtk.Widget.autofocus` to be explicitly set or have a custom `rtk.Widget.onmousedown` handler to fire. They will be invoked on all widgets unless `rtk.Widget.onmousedown` explicitly returns false to disable this behavior |
| 19 | +* `rtk.Widget.autofocus` now defaults to true if an `onclick` is set on the widget, but it can be explicitly set to `false` to never autofocus |
| 20 | +* Allow newlines in `rtk.Application.status` text |
| 21 | +* Expand the number of scenarios in which a full reflow is avoided when setting `rtk.Text.text` |
| 22 | +* Icons created by `rtk.Image.icon()` are no longer automatically recolored when the image is found in an image path that was registered without an explicit icon style |
| 23 | +* Allow passing the file extension to `rtk.Image.icon()` |
| 24 | +* Added `rtk.Popup.onopen` and `rtk.Popup.onclose` event handlers |
| 25 | +* Enhanced `rtk.Popup.autoclose` to be able to distinguish between clicks that occur outside the popup but still within the ReaScript window, or outside the window entirely |
| 26 | +* Allow `rtk.Popup.overlay` to be themed |
| 27 | +* Added support for alpha channels in named colors in the form `colorname#aa` where `colorname` is the name of the color and `aa` is the hex code of the alpha channel. For example, `bg='chartreuse#7f'` |
| 28 | +* Implemented luma-adaptive color for `rtk.Text.color` which is now default. Unless the attribute is explicitly set, the text color will use `rtk.themes.text` from either the dark theme or the light theme, depending on the luminance of the background the text will be rendered over |
| 29 | +* Improved luminance detection for adaptive coloring (for example `rtk.Entry.icon`) to take into account parent's background when the widget has a translucent background such that it that would blend with the parent's background color |
| 30 | +* Avoid recalculating layout (full reflow) if `rtk.Widget.bg` or `rtk.Widget.ghost` are set as these do not affect geometry |
| 31 | +* Added a new field `rtk.tick` that increments with each gfx update cycle, and add `rtk.Event.tick` to reflect the tick at which the event occurred |
| 32 | +* Improved handling of the case where a widget defines `minw`/`minh` but the minimum size would exceed the allowed cell size in a box |
| 33 | +* Optimized overhead of instantiating new widgets |
| 34 | + |
15 | 35 |
|
16 | 36 | ## Bug Fixes
|
17 | 37 |
|
18 |
| -* Fixed center/right/bottom cell alignments for `rtk.Container` when `rtk.Container.padding` is nonzero |
19 |
| -* Ensure redraw occurs when `rtk.Entry.value` changes |
20 |
| -* Account for `rtk.Entry.placeholder` when calculating the entry widget's intrinsic size |
21 |
| -* Respect the `alpha` attribute for `rtk.Window` |
22 |
| -* Avoid updating attributes' surface values during animations |
23 |
| -* Don't fire `rtk.OptionMenu:onchange()` when explicitly passing false to the trigger argument of `rtk.OptionMenu:select()` even if the selected item changed |
| 38 | +* Fixed a bug where key press events could be missed/dropped if there were other non-keyboard events (such as mouse move events) that occurred during the same gfx update cycle |
| 39 | +* Properly respect the `maxw` cell attribute for expanded cells in `rtk.HBox` |
| 40 | +* Fixed a bug where the first expanded cell in a box would have a different size than other expanded cells when `rtk.Box.spacing` was non-zero |
| 41 | +* Fixed 1px tall scrollbar bug when `rtk.Viewport.vscrollbar` was set to `always` |
| 42 | +* Ensure `rtk.ImageBox` borders and background color is drawn even if `rtk.ImageBox.image` is nil |
| 43 | +* Respect `rtk.ImageBox.bg`, if set, when determining which luma-adaptive image variant to use |
| 44 | +* Fixed animating `rtk.Widget.w` and `rtk.Widget.h` to 0, or to `rtk.Attribute.NIL` (nil was already supported) |
| 45 | +* Fixed animating `rtk.Widget.bg` to nil |
| 46 | +* Fixed animating `rtk.Window.x` and `rtk.Window.y` with undocked windows |
| 47 | +* Apply `rtk.scale.value` to `rtk.Widget.minw`, `minh`, `maxw`, and `maxh` when `rtk.Widget.scalability` allows it |
| 48 | +* Fixed centered vertical alignment for `rtk.Button` when the button label wraps |
| 49 | +* Removed allowing passing `rtk.Window.title` as the first positional value during initialization. In principle this is a breaking change however it never actually worked properly, so this just removes a broken feature. |
| 50 | +* Fixed a bug where `rtk.Window.onclose` could fire multiple times when the window closes |
| 51 | +* Fixed flickering when resizing an `rtk.Window` when the border attribute was set |
| 52 | +* Fixed autosizing of `rtk.Window` when REAPER's native UI scaling was enabled |
| 53 | +* Fixed a minor visual flicker that could occur when setting certain `rtk.Window` attributes |
| 54 | +* `rtk.Window` padding is now accounted for by the resize grip when `rtk.Window.borderless` is true |
| 55 | +* Fixed a bug where `rtk.Button` would not always respect the parent container's bounding box |
| 56 | +* Fixed subtle misalignment of button labels on Mac |
| 57 | +* Fixed the `rtk.Popup.opened` attribute which wasn't being properly updated to reflect current state |
| 58 | +* Fixed a bug that calculates the popup width when `rtk.Popup.anchor` is defined and `rtk.scale.value` is > 1 |
| 59 | +* Fixed a bug where popups with `rtk.Popup.autoclose` enabled could inadvertently close when `rtk.touchscroll` was enabled |
| 60 | +* Fixed a visual flicker that occurred when fading out an `rtk.Popup` at the same time as its `rtk.Popup.anchor` widget is hidden |
| 61 | +* Fixed issue where the blinking cursor of `rtk.Entry` could be drawn outside its box |
| 62 | +* Still allow scrolling `rtk.Viewport` even when `rtk.Viewport.vscrollbar` is set to `never` |
| 63 | +* Fixed scroll offsets when `rtk.Viewport` has non-zero padding |
| 64 | +* Fixed a bug where `rtk.FlowBox` would only ever use a single column if it contained any greedy children (e.g. those using relative dimensions, or belonging to a box container with `expand` or `fillw` cell attributes set) |
| 65 | +* Fixed an edge case where `rtk.FlowBox` could layout with zero columns |
| 66 | +* Fixed `rtk.Spacer` failing to take into account padding when calculating its size |
| 67 | +* Perform a redraw when the mouse cursor leaves the `rtk.Window` to ensure widget draw functions that reference `rtk.Window.in_window` reflect the proper state visually |
| 68 | +* Fixed a bug where `rtk.Widget.cursor` was not being respected when long-pressing over a widget with `rtk.touchscroll` enabled |
| 69 | +* `rtk.Widget.onclick` no longer fires if `rtk.Widget.onlongpress` fires and its handler returns true to mark the event as handled |
| 70 | +* Fixed incorrect rendering of `rtk.Entry` background when its parent container's background changes |
| 71 | +* The `targetidx` parameter for `rtk.Container:reorder()` previously required offseting the index by 1 of the target was after the widget's current cell position, which is now fixed. Technically this is a breaking API change, but the previous semantics were extremely counterintuitive and this API was not widely used by scripts so this is being slipped in as a bug fix. |
| 72 | +* Fixed millisecond precision in `rtk.log` timestamps |
| 73 | +* Fixed some janky behavior that could occur during mouse cursor position restoration when `rtk.touchscroll` is enabled |
24 | 74 |
|
25 | 75 |
|
0 commit comments