* Consider SDL.TextEditingEvent as an action event
* When a frame requires rendering, make sure the next one is also rendered to avoid artifacts. It still does not render every frame
* Fix lint
* Fix typo
* Update Changelog
* Import popup widget
* Add popupOffset configuration option
* Add popupDisableClose config option
* Add alignment options to popup widget
* Improve Haddocks
* Add window compensation offset directly to node; remove related code, simplify
* Improve Haddocks
* Add popup unit tests
* Generate onChange events when opened/closed status changes
* Replace fdescribe with describe
* Update Changelog
* Delegate visibility check to each widget
* Consider scroll offset when aligning to widget
* Request a non zero size to avoid having an invisible node
* Add note to Container's init and merge documentation
* Add support for an anchor widget
* Do not apply active style if widget is not in the active overlay
* Add popupAlignToOuter option
* Add separate horizontal/vertical alignToOuter options
* Make sure BtnReleased is sent to overlay in case findWidgetByPoint returns Nothing
* Block events happening at the same instant the popup is closed, to avoid widgets below it being activated accidentally
* Use cursor location when validating if popup should be closed
* Increase timestamp on each group of events for nodeHandleEvents_. Add helper
* Fix unit tests
* Add anchor alignment options
* Attempt to position popup in the opposite border when using outer, if it does not fit in the main border
* Always Attempt to position popup in the opposite border, both for inner and outer border alignment
* Compensate offset when calculating border alignment
* Fix regression in window alignment. Haddock fixes
* Call widgetResize on children of widget which requested resize, even if viewport did not change
* Simplify makeResizeCheckFn
* Request ResizeWidgets from SelectList when items change
* Always use newTextLines when resizing label
* Do not ignore parent requests when containerMergeChildrenReq returns True
* Restore previous logic in Handlers and SelectList
* Reorganize merge lines to reflect dependency order. Resize new widgets remaining after merge exhausted old versions
* Keep requests made in previous steps during SelectList's postMerge
* Update Changelog
* Export mergeRequired from dropdown. Improve related documentation in selectList and dropdown
* Add pointToLineDistance utility function
* Force the option type in ToggleButtonCfg to be the Bool implied by the asssociated Lens
* Do not draw borders when width == 0
* Improve BaseTheme's tooltip styles
* Update tooltip's Haddock
* Update Changelog
* Initialize new images with count = 1; they were not released if extra references were added
* Dispose previous version of an image if it was not memory based
* Use strict versions of Map
* Update unit tests
* Update Changelog
* Make optionButton's onChange trigger only once if value did not change. Add onClick to keep previous behavior
* Make radios's onChange trigger only once if value did not change. Add onClick to keep previous behavior
* Update Changelog
* Attempt to recover from SDL_GL_MakeCurrent error, and fallback to rendering on the main thread
* Check if -threaded flag was used before setting up rendering thread. Add notes to appRenderingOnMainThread
* Remove reference to the error from Setup page
* Update Changelog
* Fix typo
* Fix issues with RunInRenderThread when running on single threaded mode. Improve handling of initialization, simplify Core's state variables
* Update Changelog
* Add note about threaded rendering in 'Running the examples' section. Fix typo.
* Allow disabling scale factor detection. Do not use factors higher than 2 on Linux
* Add note about window size
* Move scale detection comment to appDisableAutoScale
* Attempt to use SDL_GetDisplayDPI when detecting scale factor on Linux
* Minor changes to appDisableAutoScale documentation
* Update Changelog
* Remove duplicate documentation related to Linux scale factor detection
* Add safeguard to Windows dpi detection
* Remove scaling logic from FontManager (rely on also existing one in .c file). This fixes the weird positioning issues also seen previously
* Store x coordinate of the glyph, which should be used for rendering operations instead of posMinX
* Do not reset glyph position size
* Set correct field in inputField/textArea when calculating selection
* Fix unit tests
* Update Changelog
* Add D_ option to button without the requirement of an explicit event
* Add ignoreParentEvts to button widget
* Add new note to keystroke widget
* Add unit tests for keystroke's/button's options for ignoring child/parent events respectively
* Update Changelog
* Allow using symbols for keystroke definitions. Add Dash to allow using the - character as part of a combination
* Log when an invalid sequence is provided
* Revert test changes to Tutorial02
* Be more explicit about restrictions
* Add missing keyCode definitions
* Handle Dash as text and add support for KpEnter
* Update Changelog
* Use ignored dpr argument in makeFontManager
* Add scaling factor to FontManager initialization to attempt to match that of nanovg's nvg__getFontScale
* Set adjustedDpr to 4; it was the only possible outcome from the previous formula
* Update Changelog
* Adds style...Set family of functions for replacing a Style/WidgetNode StyleState. The existing style... family of functions now merge with the previous StyleState
* Add style...Set to tutorials and improve styling section. Make several small improvements
* Improve StyleState documentation
* Improve naming of Core's utility function
* Update Changelog
* Add _weAppStartTs to WidgetEnv, indicating the time in ms when the application started
* Use Timestamp type instead of Int to make signatures clearer
* Retrieve correct startup timestamp
* Use newtype instead of type for Timestamp
* Update Changelog
* Add utility function currentTimeMs, returning the absolute current timestamp (not from app start)
* Use currentTimeMs in examples
* Replace SDL.ticks call with utcTimeToPOSIXSeconds
* Restore nodeKey of description field in Tutorial 03
* Remove unneded liftIO calls from Ticker example
* Allow setting minimum thumb size in scroll widget. Improve thumb handling.
* Consider secondary axis' thumb width when calculating thumb size ratio if both vertical and horizontal bars need to be shown
* Add test cases for thumb drag
* Update Changelog
* Remove unneeded variables
* Send Composite's onChange event to its own handleEvent, not to its parent. Widgets can use Report/RequestParent if needed (check ColorPicker)
* Update Changelog
* Generalize onInit and onDispose to also support WidgetRequests
* Add Composite's onInit and onDispose unit tests
* Pass oldModel to Composite's onChange event
* Update Changelog
* Append underlying type name to widgetType in polymorphic widgets to allow switching to different model types
* Add tests for polymorphic widgetTypes
* Make the widgetType of selectList and dropdown consider the contained type
* Update Changelog.md
* Add optionButton and toggleButton widgets
* Improve colors for buttons in base themes
* Update themes for new widgets
* Highlight focused row buttons on Todo and Ticker examples
* Add missing docs
* Use previous model version when calling dispose (current model may make prisms/indexed invalid, causing issues when using singular)
* Only replace composite model with user model on init and merge
* Add new unit test to composite
* Update/improve Changelog
* Bump version
* Do not force scroll direction based on Wheel direction argument (axis movement arguments already have that information applied)
* Bump version
* Handle wheel movement at event conversion level. Apply adjustments based on platform
* Restore old naming convention
* Update changelog