Skip to content

Releases: rafern/lazy-widgets

0.23.2: Bugfix

11 Nov 15:54
ca9f0d7

Choose a tag to compare

Fixes

  • Fixed SystemTextInputHandler on iPhone (#11)
  • Fixed excessive listener calls in ConcurrentCollection

0.23.1: Hotfix

10 Jun 08:55
f7a108a

Choose a tag to compare

Fixes

  • Fixed keyboard focus-stealing caused by TextInputHandler

0.23.0: Easier and wider media support

06 Jun 14:19
4777e4b

Choose a tag to compare

Changes

  • Added Notifier class (base class for notification-dispatching classes)
  • Improved and renamed AsyncImageBitmap to AsyncMedia, as well as derivates
    • TextImageBitmap is now named TextMedia
    • EffectImageBitmap is now named EffectMedia
    • AsyncMedia now dispatches load, resize and dirty events, although presentation hashes are still available (and necessary for some edge-cases)
    • AsyncMedia.bitmap was renamed to AsyncMedia.currentFrame, and now uses the FastCanvasImageSource type (which includes types which are fast to paint, such as ImageBitmap and VideoFrame)
  • Added BackingMediaWrapper
    • A helper class that wraps any BackingMediaSource and processes it in an easy-to-use way similar to AsyncMedia
    • This should make it easy for widgets to accept any media type, including video, as there is a single implementation for all media types
  • Added BackingMediaSourceType.ImageBitmap (ImageBitmap is no longer resolved to the BackingMediaSourceType.Immediate type)

Fixes

  • Fixed theoretical issues caused by very long-running animations in AsyncMedia, where presentation hashes would not wrap around to 0 on large values; presentation hashes are now 31-bit unsigned integers that wrap around to 0 via the incrementUint31 helper function

0.22.3: Hotfix

02 Jun 14:32
483fde2

Choose a tag to compare

Fixes

  • Fixed ClickProxy not resetting click state on deactivate
  • Fixed CompoundClickHelper not updating click state on first reference

0.22.2: Hotfix

29 May 16:08
b380db6

Choose a tag to compare

Fixes

  • Fixed ClickProxy not getting focused, causing clicks when dragging the pointer
  • Fixed ClickProxy not being exported in concrete-widgets.ts, causing auto-XML registration to fail

0.22.1: Hotfix

29 May 14:47
edaaf50

Choose a tag to compare

Fixes

  • Fixed enums not being exported properly

0.22.0: Improved ClickHelper system

29 May 14:22
bce20c2

Choose a tag to compare

Changes

  • Turn ClickHelper-related classes into an event-based system, instead of the old flag-based system
    • Removed BaseClickHelper.lastClickState, clickStateChanged, wasClick, and doneProcessing
    • BaseClickHelper is now a base class instead of an interface, due to the new common event listener methods
    • ButtonClickHelper.handleEvent now returns just a boolean (captured)
  • CompoundClickHelper and derivate classes are now reference-counted (CompoundClickHelper.ref and unref need to be called now)
  • Added ComplementaryClickHelper and ClickProxy
    • This allows you to implement clickable widgets that act as a proxy for another clickable widget (e.g. checkbox labels)
  • Added ConcurrentCollection
    • This is a collection class which can be modified while being iterated
    • Useful for implementing event listener lists

0.21.1: Letter spacing

27 May 16:20
493f258

Choose a tag to compare

Changes

  • Added TextHelper.letterSpacing
    • For widgets, this is controllable via the bodyTextLetterSpacing and inputTextLetterSpacing theme properties
  • Refactored measureTextDims' CacheEntry

0.21.0: Remove ObservableTransformer.destroy

23 May 16:51
c43c40a

Choose a tag to compare

Changes

  • Removed ObservableTransformer.destroy
    • Now you just have to watch the transformer for it to start watching the inputs. When nothing is watching the transformer anymore, the inputs will be unwatched
    • Note that this is technically backwards incompatible, since you might be using transformers without watching them. That use-case is no longer supported, as it necessitates manually cleaning up the transformer

0.20.0: BackingCanvas

13 May 18:54
8ec6831

Choose a tag to compare

Changes

  • All canvas-based rendering is now backed by a BackingCanvas
    • A BackingCanvas is an OffscreenCanvas (or an HTMLCanvasElement if OffscreenCanvas is not available)
    • You can create it via the createBackingCanvas method

Fixes

  • Fixed validateImageSource not accepting OffscreenCanvas or HTMLCanvasElement