LCUI 1.1.0 Beta
Pre-release
Pre-release
Changelog
Bug Fixes
- builder: widget should be initialized before appending (f12e00b)
- gui: event target should be initialized (ebbd128)
- gui: focus event and "focusable" property parsing bug (d9a39a5)
- gui: mouse events should be ignored when pointer-events is none (fc54a64)
- gui: TextEdit should reset the caret position after blur (8de4e71)
- gui: TextEdit_SetTextW() does not clear the previous content (51eef68)
- gui: the button height is different from the textedit (5a918da)
- gui: widget width with margin is incorrectly calculated (#167) (d14023e)
- thread: LCUIThread_Join() has not waited for the thread to exit (4ddb833)
- util: decoded string length should not include terminator (93f3d77)
- worker: task queue should not be blocked when running a task (2b41f54)
Features
- gui: add rule for allow widget updates only when visible (93049c4)
- gui: add rule for cache children style (50cc6b2)
- gui: add rule for first update visible children (4cd6fdc)
- gui: add rule for limit the number of children rendered (ec5e0d6)
- gui: add support for custom widget update rules (bdd1d1c)
- gui: add widget border helper (e8d52df)
- gui: add Widget_GetClosest() (e740138)
- gui: add Widget_SetHashList() (f466dee)
- gui: auto assign an id to the event name (fee31b0)
- gui: Widget_SetAttribute() will call proto->setattr() (19992d1)
- add LCUI_Profile for profiling performance (f715a08)
- textview: add TextView_SetColor() (3a7b53f)
- util: add return value for LCUIRect_ValidateArea() (2fa6cf3)
- util: add strhash() (ebf843f)
- util: add strpool (c843df1)
- util: add strreplace() (409395d)
- util: default using OutputDebugString() to output log on Windows (79ec21b)
Performance Improvements
- css: change the stylesheet store struct to reduce memory usage (9cc2957)
- css: reduce duplicate memory alloc for DictType (01fd3f6)
- gui: improve widget destruction performance (87aff87)
- gui: improve Widget_Empty() performance (1654963)
- gui: reduce memory usage for widget style sheets (3790fbd)
- gui: remove the mutex in the textview widget (6340d60)
- gui: save classes and status with strlist (f611936)
- gui: update the sort method of the widget list (e9dbcea)
- gui: use LCUI_STYPE_INT instead of LCUI_STYPE_VALUE (23090eb)
- renderer: improve the selection of the rendering target (1df08b6)
更新日志
问题修复
- builder: 在追加部件前应该将其初始化 (f12e00b)
- gui: focus 事件和 "focusable" 属性解析问题 (d9a39a5)
- gui: 当 pointer-events 为 none 时应该忽略鼠标事件 (fc54a64)
- gui: TextEdit 应该在失去焦点后重置光标的位置 (8de4e71)
- gui: TextEdit_SetTextW() 未清空之前的内容 (51eef68)
- gui: Button 的高度与 TextEdit 不一致 (5a918da)
- gui: 设置部件外边距时会导致宽度计算错误 (#167) (d14023e)
- thread: LCUIThread_Join() 未等待线程退出 (4ddb833)
- util: 解码后的字符串长度不应将结束符计算在内 (93f3d77)
- worker: 运行任务时不应阻塞任务队列 (2b41f54)
新功能
- gui: 添加支持自定义部件更新规则 (bdd1d1c)
- gui: 添加支持限制最大的子部件渲染数量 (ec5e0d6)
- gui: 添加
only_on_visible
规则,用于允许仅在部件可见时更新它 (93049c4) - gui: 添加
cache_children_style
规则,用于缓存子部件样式 (50cc6b2) - gui: 添加
first_update_visible_children
规则,用于优先更新可见的子部件 (4cd6fdc) - gui: 添加部件边框样式相关操作接口 (e8d52df)
- gui: 添加 Widget_GetClosest() (e740138)
- gui: 添加 Widget_SetHashList() (f466dee)
- gui: 自动为事件名生成 id (fee31b0)
- gui: Widget_SetAttribute() 将会调用 proto->setattr() (19992d1)
- textview: 添加 TextView_SetColor() (3a7b53f)
- util: 为 LCUIRect_ValidateArea() 添加返回值 (2fa6cf3)
- util: 添加 strhash() (ebf843f)
- util: 添加 strpool (c843df1)
- util: 添加 strreplace() (409395d)
- util: 在 Windows 上默认使用 OutputDebugString() 输出日志 (79ec21b)
性能改进
- css: 更改样式表存储结构以减少内存占用 (9cc2957)
- css: 减少重复的 DictType 内存分配 (01fd3f6)
- gui: 改进部件销毁性能 (87aff87)
- gui: 改进 Widget_Empty() 性能 (1654963)
- gui: 减少部件的样式表的内存占用 (3790fbd)
- gui: 移除 TextView 部件中的互斥锁 (6340d60)
- gui: 使用 strlist 保存 classes 和 status (f611936)
- gui: 更新部件列表的排序方法 (e9dbcea)
- gui: 改用 LCUI_STYPE_INT 代替 LCUI_STYPE_VALUE (23090eb)
- renderer: 改进渲染目标的选择方法 (1df08b6)