Skip to content

LCUI 1.1.0 Beta

Pre-release
Pre-release
Compare
Choose a tag to compare
@lc-soft lc-soft released this 10 Mar 06:41
· 452 commits to develop since this 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)