# Change Log (/CHANGELOG)



[v9.5.0](https://github.com/lvgl/lvgl/compare/v9.4.0...v9.5.0) 18 February 2026 [#v950-18-february-2026]

LVGL v9.5.0 continues expanding MPU capabilities while maintaining the lightness and efficiency that make LVGL viable on resource-constrained MCUs. This release adds native blur and drop shadow rendering, a rewritten Wayland driver with EGL support, complete OpenGL rendering via NanoVG, and significant 3D rendering improvements.

Main Features [#main-features]

* **Blur and Drop Shadow**. Native software blur and drop shadow support work on all targets without requiring a GPU. Drop shadows add depth to overlays and cards; blur enables frosted-glass effects and background dimming. [Learn more](/common-widget-features/styles/style-properties).
* **Wayland Driver Rewrite**. Complete rewrite with SHM backend supporting double-buffered direct mode rendering and a new EGL backend for hardware-accelerated OpenGL. [Learn more](/integration/embedded_linux/drivers/wayland).
* **NanoVG Rendering Backend**. Complete OpenGL draw unit providing GPU-accelerated vector rendering, anti-aliased shapes, and compositing. Auto-initializes when OpenGL context is available. [Learn more](/integration/embedded_linux/nanovg).
* **Bézier Curved Charts**. New `LV_CHART_TYPE_CURVE` draws smooth Bézier curves between data points. Requires `LV_USE_VECTOR_GRAPHICS` and a compatible draw unit (VGLite, NanoVG or Software with ThorVG). [Learn more](/widgets/chart).

GPU Acceleration & Performance [#gpu-acceleration--performance]

* **RISC-V Vector Extension Support**. SIMD acceleration for software rendering on RISC-V platforms with V extension support. Speeds up blending operations. Enable with `LV_USE_DRAW_SW_ASM` set to `LV_DRAW_SW_ASM_RISCV_V`.
* **SDL EGL Support**. SDL now supports EGL rendering backend, completing EGL coverage across SDL, Wayland, DRM, and GLFW for consistent hardware acceleration.
* **OpenGL Improvements**. Matrix transformations, RGBA-only texture format, GLSL 330 support, and scissor optimization for opaque fills.

3D Rendering [#3d-rendering]

* **Runtime glTF Manipulation**. Read and modify glTF model nodes at runtime including scale, rotation, translation, and animation state for dynamic 3D scenes.
* **Raycasting Utilities**. New API for 3D-to-2D coordinate conversion and ray-object intersection testing, enabling touch interaction with 3D objects.
* **Cross-Platform 3D Support**. With EGL now available across all major Linux backends (SDL, Wayland, DRM, GLFW), 3D rendering is fully supported on all platforms.

Style & Theme System [#style--theme-system]

* **LV\_STATE\_ALT**. New widget state for simple dark/light mode switching without managing separate theme trees.
* **Theme Management API**. New functions: `lv_obj_remove_theme`, `lv_obj_bind_style_prop`, and full theme create/copy/delete API for multi-theme applications and data-driven style binding.

Widgets & Property Interface [#widgets--property-interface]

* **Property Interface Rollout**. Arc, bar, switch, checkbox, LED, line, scale, spinbox, spinner, table, tabview, buttonmatrix, span, menu, and chart now expose uniform property interface for data binding.
* **Input Handling**. Key remapping at indev level, configurable gesture thresholds, `LV_OBJ_FLAG_RADIO_BUTTON` for radio groups, and keypad events emitted without assigned group.

Media Support [#media-support]

* **GStreamer Audio-Free Sources**. Supports video sources without audio tracks, enabling camera stream embedding in LVGL applications.
* **WebP Decoder**. Native WebP image decoding support added alongside existing JPEG, PNG, and GIF support.

Breaking Changes [#breaking-changes]

* **Wayland Client-Side Decorations Removed**. Rewritten driver no longer supports client-side window decorations. Use LVGL widgets (e.g., `lv_win`) for window chrome.
* **XML Engine Removed**. XML UI engine development continues outside the main repository. Separate announcement forthcoming.

Deprecations [#deprecations]

* **lv\_fragment deprecated**. Will be removed in a future release. Plan migration for view lifecycle management.
* **lv\_wayland\_display\_close\_cb\_t deprecated**. Use `LV_EVENT_DELETE` on display returned by `lv_wayland_window_create` instead.

New Features [#new-features]

* **feat(opengl): throw error if both draw nanovg and opengles draw units are enabled** [9719](https://github.com/lvgl/lvgl/pull/9719)
* **feat(gltf): upgrade fastgltf with latest fixes** [9727](https://github.com/lvgl/lvgl/pull/9727)
* **feat(obj): add back support for user flags** [9711](https://github.com/lvgl/lvgl/pull/9711)
* **feat(style): add lv\_obj\_remove\_theme** [9692](https://github.com/lvgl/lvgl/pull/9692)
* **feat(text): skip leading spaces after line wrap** [9639](https://github.com/lvgl/lvgl/pull/9639)
* **feat(draw/opengl): support dynamic video textures in OpenGLES** [9704](https://github.com/lvgl/lvgl/pull/9704)
* **feat(drm/egl): auto infer drm egl config from use\_opengles** [9671](https://github.com/lvgl/lvgl/pull/9671)
* **feat(gstreamer): send event on end of stream** [9634](https://github.com/lvgl/lvgl/pull/9634)
* **feat(display): send screen load events to display** [9600](https://github.com/lvgl/lvgl/pull/9600)
* **feat(chart): add curved type** [9564](https://github.com/lvgl/lvgl/pull/9564)
* **feat(indev): emit events for keypad without assigned group** [9656](https://github.com/lvgl/lvgl/pull/9656)
* **feat(style): add LV\_STATE\_ALT for simple dark/light switching** [9691](https://github.com/lvgl/lvgl/pull/9691)
* **feat(svg): simplify node attributes inheritance introduce in #9424** [9690](https://github.com/lvgl/lvgl/pull/9690)
* **feat(NemaGFX): Add nema libs for cortex M7 and M55** [9374](https://github.com/lvgl/lvgl/pull/9374)
* **feat(ibl\_sampler): fallback to default env image and remove unnecessary allocation** [9675](https://github.com/lvgl/lvgl/pull/9675)
* **feat(msgbox): add support for formatted text** [9583](https://github.com/lvgl/lvgl/pull/9583)
* **feat(obj): allow null class names if obj\_name isn't set** [9653](https://github.com/lvgl/lvgl/pull/9653)
* **feat(opengl): add matrix transformations to opengles rendering** [9654](https://github.com/lvgl/lvgl/pull/9654)
* **feat(ppa): make the PPA burst length configurable** [9612](https://github.com/lvgl/lvgl/pull/9612)
* **feat(nanovg): add draw 3D support** [9571](https://github.com/lvgl/lvgl/pull/9571)
* **feat(xml): remove the XML parser and loader** [9565](https://github.com/lvgl/lvgl/pull/9565)
* **feat(indev): add api to set gesture thresholds** [9641](https://github.com/lvgl/lvgl/pull/9641)
* **feat(sdl): add EGL support** [9462](https://github.com/lvgl/lvgl/pull/9462)
* **feat(calendar): add 2026 to header** [9630](https://github.com/lvgl/lvgl/pull/9630)
* **feat(draw): make lv\_draw\_mask\_rect\_dsc\_t public** [9454](https://github.com/lvgl/lvgl/pull/9454)
* **feat(line): allow defining an array of point in the draw task** [9269](https://github.com/lvgl/lvgl/pull/9269)
* **feat(svg): support inheriting node attributes** [9424](https://github.com/lvgl/lvgl/pull/9424)
* **feat(wayland): add display rotation support for the shm backend** [9386](https://github.com/lvgl/lvgl/pull/9386)
* **feat(svg): support inline styles** [9423](https://github.com/lvgl/lvgl/pull/9423)
* **feat(draw): add RISCV V extension for software draw** [9504](https://github.com/lvgl/lvgl/pull/9504)
* **feat(canvas): add api to skip canvas invalidation when setting pixel** [9592](https://github.com/lvgl/lvgl/pull/9592)
* **feat(wayland): add egl support** [9398](https://github.com/lvgl/lvgl/pull/9398)
* **feat(gstreamer): add support for sources with no audio** [9551](https://github.com/lvgl/lvgl/pull/9551)
* **feat(drm/egl): add nanovg support** [9542](https://github.com/lvgl/lvgl/pull/9542)
* **feat(arclabel): support lv\_arclabel\_get\_text\_angle to get real rendered text size in degree** [9546](https://github.com/lvgl/lvgl/pull/9546)
* **feat(opengl): auto initialize nanovg draw unit** [9543](https://github.com/lvgl/lvgl/pull/9543)
* **feat(vg\_lite): add support for special format** [9464](https://github.com/lvgl/lvgl/pull/9464)
* **feat(dropshadow): add drop shadow support** [9331](https://github.com/lvgl/lvgl/pull/9331)
* **feat(draw): add nanovg rendering backend** [8865](https://github.com/lvgl/lvgl/pull/8865)
* **feat(vg\_lite\_tvg): add VG\_LITE\_BLEND\_DST\_IN emulation support** [9528](https://github.com/lvgl/lvgl/pull/9528)
* **feat(display): add rotate point method** [9513](https://github.com/lvgl/lvgl/pull/9513)
* **feat(arclabel): support overflow mode** [9484](https://github.com/lvgl/lvgl/pull/9484)
* **feat(demos): allow specifying parent for widgets and music demos** [9444](https://github.com/lvgl/lvgl/pull/9444)
* **feat(fragment): deprecate lv\_fragment** [9460](https://github.com/lvgl/lvgl/pull/9460)
* **feat(xml): add slot support** [9193](https://github.com/lvgl/lvgl/pull/9193)
* **feat(jpeg): add support for orientation and CMYK** [9296](https://github.com/lvgl/lvgl/pull/9296)
* **feat(opengl): add glsl version 330 support** [9384](https://github.com/lvgl/lvgl/pull/9384)
* **feat(group): add user\_data getter and setter** [9466](https://github.com/lvgl/lvgl/pull/9466)
* **feat(core): add external data and destructor feature** [9112](https://github.com/lvgl/lvgl/pull/9112)
* **feat(glfw): remove glew dependency and use glad instead** [9319](https://github.com/lvgl/lvgl/pull/9319)
* **feat(obj): add LV\_OBJ\_FLAG\_RADIO\_BUTTON to easily create radio buttons** [9328](https://github.com/lvgl/lvgl/pull/9328)
* **feat(obj): add scroll x and scroll y properties** [9346](https://github.com/lvgl/lvgl/pull/9346)
* **feat(slider): add min\_value and max\_value setter** [9433](https://github.com/lvgl/lvgl/pull/9433)
* **feat(scale): update needles when scale is transformed** [9340](https://github.com/lvgl/lvgl/pull/9340)
* **feat(opengl): use only rgba format textures** [9304](https://github.com/lvgl/lvgl/pull/9304)
* **feat(nuttx): add mock to the NuttX driver for compilation testing** [9419](https://github.com/lvgl/lvgl/pull/9419)
* **feat(xml): add imagebutton support to XML** [9381](https://github.com/lvgl/lvgl/pull/9381)
* **feat(gltf): make linear\_output optional to enable tonemapping and gamma adjustment** [9260](https://github.com/lvgl/lvgl/pull/9260)
* **feat(test): add lv\_xml\_test\_run\_to and lv\_test\_screenshot\_result\_t** [9189](https://github.com/lvgl/lvgl/pull/9189)
* **feat(file\_explorer): allow hiding the back button** [9202](https://github.com/lvgl/lvgl/pull/9202)
* **feat(obj): allow setting child size to LV\_PCT() of LV\_SIZE\_CONTENT parent by using the size of fixed/clamped children to set parent size** [9243](https://github.com/lvgl/lvgl/pull/9243)
* **feat(drm): add return type to set\_file** [9365](https://github.com/lvgl/lvgl/pull/9365)
* **feat(fbdev): add return type to set\_file** [9364](https://github.com/lvgl/lvgl/pull/9364)
* **feat(array): add remove\_unordered function** [9339](https://github.com/lvgl/lvgl/pull/9339)
* **feat(gltf): allow modifying model's nodes at runtime** [9142](https://github.com/lvgl/lvgl/pull/9142)
* **feat(wayland): rewrite driver** [9195](https://github.com/lvgl/lvgl/pull/9195)
* **feat(blur): add blur support** [9223](https://github.com/lvgl/lvgl/pull/9223)
* **feat(examples/ffmpeg\_player): specify default decoder** [9218](https://github.com/lvgl/lvgl/pull/9218)
* **feat(xml): support selector with local styles** [9184](https://github.com/lvgl/lvgl/pull/9184)
* **feat(fs): support multiple littlefs filesystems** [8868](https://github.com/lvgl/lvgl/pull/8868)
* \*\*feat(obj): support [LV\_SIZE\_CONTENT`and`LV\_PCT`min width/height in combination with flex grow**`8685](https://github.com/lvgl/lvgl/pull/8685)
* **feat(scripts/check\_gcov\_coverage): add analysis of specified file paths** [9264](https://github.com/lvgl/lvgl/pull/9264)
* **feat(gltf): support sharing the background environment across multiple objects** [9009](https://github.com/lvgl/lvgl/pull/9009)
* **feat(theme): add api to create, copy and delete themes** [9167](https://github.com/lvgl/lvgl/pull/9167)
* **feat(example/style): convert old transform demo to an example** [9050](https://github.com/lvgl/lvgl/pull/9050)
* **feat(xml): add color percentage support to animations** [9209](https://github.com/lvgl/lvgl/pull/9209)
* **feat(benchmark): show warnings for typical mistakes** [9171](https://github.com/lvgl/lvgl/pull/9171)
* **feat(style): add lv\_obj\_bind\_style\_prop** [9173](https://github.com/lvgl/lvgl/pull/9173)
* **feat(scripts): add automatic gcovr code coverage analysis** [9227](https://github.com/lvgl/lvgl/pull/9227)
* **feat(timer): resume timer handler after attribute changes** [9205](https://github.com/lvgl/lvgl/pull/9205)
* **feat(image\_decoder): add webp decoder** [9175](https://github.com/lvgl/lvgl/pull/9175)
* **feat(translate): support translation tags in tabview and list** [9079](https://github.com/lvgl/lvgl/pull/9079)
* **feat(libpng): optimize the details of performance measurement** [9179](https://github.com/lvgl/lvgl/pull/9179)
* **feat(image\_decoder): add performance measurement** [9178](https://github.com/lvgl/lvgl/pull/9178)
* **feat(vg\_lite): add dynamic input parameter printing control** [9180](https://github.com/lvgl/lvgl/pull/9180)
* **feat(indev): implement key remapping (#8455)** [8981](https://github.com/lvgl/lvgl/pull/8981)
* **feat(keyboard): add definitions for control mode buttons** [9101](https://github.com/lvgl/lvgl/pull/9101)
* **feat(gltf): gltf view raycasting and 3d point to screen point conversion** [9143](https://github.com/lvgl/lvgl/pull/9143)
* **feat(gltf): use alternate blending mode for glTF views** [9115](https://github.com/lvgl/lvgl/pull/9115)
* **feat(ffmpeg\_player): add set\_decoder** [9122](https://github.com/lvgl/lvgl/pull/9122)
* **feat(xml): add lv\_spinner** [9091](https://github.com/lvgl/lvgl/pull/9091)
* **feat(translation): const-correct arrays of strings** [9147](https://github.com/lvgl/lvgl/pull/9147)
* **feat(fs): add read file with alloc API** [9109](https://github.com/lvgl/lvgl/pull/9109)
* **feat(gif): use gif draw raw mode to support stride mode** [9121](https://github.com/lvgl/lvgl/pull/9121)
* **feat(class): ensure classes have names** [9097](https://github.com/lvgl/lvgl/pull/9097)
* **feat(example/scroll): convert old scroll demo to an example** [9049](https://github.com/lvgl/lvgl/pull/9049)
* **feat(spinbox): add property interface support** [0290020](https://github.com/lvgl/lvgl/commit/029002092ebf6b426a00e2f768de393eee422697)
* **feat(bar): add property interface support** [0bd6422](https://github.com/lvgl/lvgl/commit/0bd6422a5e863d54b0cdb953bbe95179d63e5744)
* **feat(arc): add property API support** [09b3143](https://github.com/lvgl/lvgl/commit/09b3143eb80850e140ead4d88a863abd42f8a648)
* **feat(chart): add property interface support** [7801fd2](https://github.com/lvgl/lvgl/commit/7801fd22e862e82a972f11418897ce6a725724ff)
* **feat(scale): add property interface support** [54487a9](https://github.com/lvgl/lvgl/commit/54487a9d50388c4abead176efd36ba6785819730)
* **feat(span): add property interface support** [8a2b610](https://github.com/lvgl/lvgl/commit/8a2b610f099c21880d09daa32915b6c2f2dafaa1)
* **feat(spinner): add property interface support** [bb76fd2](https://github.com/lvgl/lvgl/commit/bb76fd2129526e3d8863f842adbce9bb4205256c)
* **feat(tabview): add property interface support** [492770e](https://github.com/lvgl/lvgl/commit/492770e77fc080ecfea87f9d80f86c7762ce14cd)
* **feat(dropdown): static and non-static setter for text** [af5c3f1](https://github.com/lvgl/lvgl/commit/af5c3f12f6e9d8db2f7105b461d060615ca33f6d)
* **feat(table): add property interface support** [f66cc41](https://github.com/lvgl/lvgl/commit/f66cc4187c02051b39f54e755cbbd21536f26467)
* **feat(menu): add property interface support** [8bf6952](https://github.com/lvgl/lvgl/commit/8bf69520b1043b6253948554864328cb94175d6d)
* **feat(buttonmatrix): add property interface support** [847cc0c](https://github.com/lvgl/lvgl/commit/847cc0c8dea8abb9952e9248a50a6ed9833c4736)
* **feat(led): add property interface support** [43f35a2](https://github.com/lvgl/lvgl/commit/43f35a2f3ccc5fb64f873e9f223e41bd77c76660)
* **feat(line): add property interface support** [5ac2ca4](https://github.com/lvgl/lvgl/commit/5ac2ca44fff8b82d442ed2bdbcdc4a5a87855f39)
* **feat(switch): add property interface support** [0fb0f37](https://github.com/lvgl/lvgl/commit/0fb0f37fa44b8621b98bba69010ecace88142811)
* **feat(checkbox): add property interface support** [7f924a3](https://github.com/lvgl/lvgl/commit/7f924a3a7240c8220e06112282cb20b819567786)
* **feat(textarea): static and non-static setter for accepted\_chars** [e20517a](https://github.com/lvgl/lvgl/commit/e20517aa70f9c4e804f9db7ce8959cfcfb23d540)
* **feat(dave2d): always invalidate cache when using Renesas RZA** [9d14a04](https://github.com/lvgl/lvgl/commit/9d14a04e8a112a859b7acdc416dd90db717cb3c3)
* **feat(draw\_buf): add missing D-Cache flush** [d703c3a](https://github.com/lvgl/lvgl/commit/d703c3a90b3f1d69e3615777a3384a0f987f6552)
* **feat(draw\_buf\_convert): add missing profiler** [4016f35](https://github.com/lvgl/lvgl/commit/4016f35235912c7582f06f3234dbb8c061275fbb)

Performance [#performance]

* **perf(draw/opengl): use glScissor for opaque fills** [9222](https://github.com/lvgl/lvgl/pull/9222)
* **perf(label): make LAYOUT\_COMPLETED a display event** [9215](https://github.com/lvgl/lvgl/pull/9215)
* **perf(vg\_lite): add bitmap font cache for non-aligned fonts** [9343](https://github.com/lvgl/lvgl/pull/9343)
* **perf(line): check that line has at least 2 points before drawing** [9185](https://github.com/lvgl/lvgl/pull/9185)
* **perf(gltf): optimize gltf material negotiation** [9038](https://github.com/lvgl/lvgl/pull/9038)
* **perf(opengl): remove long delay when destroying shader programs** [9037](https://github.com/lvgl/lvgl/pull/9037)
* **perf(label): reduce lv\_label\_refr\_text calls** [9041](https://github.com/lvgl/lvgl/pull/9041)

Fixes [#fixes]

* **fix(blur): render non-backdrop blur when the main rendering is done** [9752](https://github.com/lvgl/lvgl/pull/9752)
* **fix(refr): flag when all tasks are added to screen layers** [9739](https://github.com/lvgl/lvgl/pull/9739)
* \*\*fix(cmake): declare [fatfs`as private dependencies**`9742](https://github.com/lvgl/lvgl/pull/9742)
* **fix(wayland/g2d): fix busy buffer warnings** [9730](https://github.com/lvgl/lvgl/pull/9730)
* **fix(draw/g2d): disable image rendering** [9729](https://github.com/lvgl/lvgl/pull/9729)
* **fix(NemaGFX): Add back support for indexed images** [9714](https://github.com/lvgl/lvgl/pull/9714)
* **fix(core): add missing includes for external data feature** [9715](https://github.com/lvgl/lvgl/pull/9715)
* **fix(freetype): check if ctx is null before deleting font** [9728](https://github.com/lvgl/lvgl/pull/9728)
* **fix(opengl): correctly apply matrix transforms** [9726](https://github.com/lvgl/lvgl/pull/9726)
* **fix(wayland): read and flush compositor events on a timer** [9720](https://github.com/lvgl/lvgl/pull/9720)
* **fix(wayland/shm): damage surface before returning if not last flush** [9721](https://github.com/lvgl/lvgl/pull/9721)
* **fix(thorvg): ensure height is always positive** [9712](https://github.com/lvgl/lvgl/pull/9712)
* **fix(indev): only reset last point and it's movement only if no previous object existed** [9707](https://github.com/lvgl/lvgl/pull/9707)
* **fix(uefi): add missing trailing newline to driver headers** [9710](https://github.com/lvgl/lvgl/pull/9710)
* **fix(gles): transpose lv\_matrix\_t before uploading to shader** [9703](https://github.com/lvgl/lvgl/pull/9703)
* **fix(flex): use min size when item is set to grow and parent is LV\_SIZE\_CONTENT** [8806](https://github.com/lvgl/lvgl/pull/8806)
* **fix(gltf): flip vertically by default** [9694](https://github.com/lvgl/lvgl/pull/9694)
* **fix(draw/opengles): red/blue channel swap in fill operations** [9693](https://github.com/lvgl/lvgl/pull/9693)
* **fix(LTDC): warn when rotating and DRAW\_SW is disabled** [9670](https://github.com/lvgl/lvgl/pull/9670)
* **fix(arc): handle indicator padding for knob position and arc invalidation area** [9302](https://github.com/lvgl/lvgl/pull/9302)
* **fix(dave2d): fix several rendering issues (mostly restore the original alpha)** [9566](https://github.com/lvgl/lvgl/pull/9566)
* **fix(draw/helium): include lv\_conf\_internal to avoid C declarations** [9658](https://github.com/lvgl/lvgl/pull/9658)
* **fix(fbdev): use display offset and clip area to display area** [9668](https://github.com/lvgl/lvgl/pull/9668)
* **fix(draw/line): fix buffer overflow when point is outside display area** [9669](https://github.com/lvgl/lvgl/pull/9669)
* **fix(gltf): avoid resetting value\_changed node attribute** [9674](https://github.com/lvgl/lvgl/pull/9674)
* **fix(gltf): remove designated initializers causing warnings** [9676](https://github.com/lvgl/lvgl/pull/9676)
* **fix(gltf/data): add missing extern "C" to header file** [9679](https://github.com/lvgl/lvgl/pull/9679)
* **fix(ibl\_sampler): restore gl state and add missing ressources deletion** [9678](https://github.com/lvgl/lvgl/pull/9678)
* **fix(stdlib): wrong variable name when mem\_add\_junk is enabled** [9677](https://github.com/lvgl/lvgl/pull/9677)
* **fix(fbdev): add missing errno.h include** [9673](https://github.com/lvgl/lvgl/pull/9673)
* **fix(image): add transform support for AL88 color format images** [9627](https://github.com/lvgl/lvgl/pull/9627)
* **fix(svg): set stride in decoder info to prevent warning** [9657](https://github.com/lvgl/lvgl/pull/9657)
* **fix(g2d): fix hardware version check with LV\_USE\_PXP** [9644](https://github.com/lvgl/lvgl/pull/9644)
* **fix(run\_tests.sh): fix gcov versions mismatch issue** [9652](https://github.com/lvgl/lvgl/pull/9652)
* **fix(image): incorrect L8 image alpha channel to ARGB8888 blend** [9645](https://github.com/lvgl/lvgl/pull/9645)
* **fix(draw/arc): add missing lv\_draw\.h include** [9640](https://github.com/lvgl/lvgl/pull/9640)
* **fix(gstreamer): empty frame queue on destruction** [9633](https://github.com/lvgl/lvgl/pull/9633)
* **fix(lovyan\_gfx): resolve double rotation in touch coordinates** [9628](https://github.com/lvgl/lvgl/pull/9628)
* **fix(property): remove LV\_PROPERTY\_TEXTAREA\_INSERT\_REPLACE (#9606)** [9625](https://github.com/lvgl/lvgl/pull/9625)
* **fix(property): fix reading style property returns uninitialized if non-local** [9234](https://github.com/lvgl/lvgl/pull/9234)
* **fix(blur): fix regression causing VS compiler error** [9620](https://github.com/lvgl/lvgl/pull/9620)
* **fix(obj\_pos): alignment is not reversed when switching from LTR to RTL** [9616](https://github.com/lvgl/lvgl/pull/9616)
* **fix(dropdown): symbol property behaves like IMGSRC instead of TEXT** [9608](https://github.com/lvgl/lvgl/pull/9608)
* **fix(drm): set stride for draw buffers** [9609](https://github.com/lvgl/lvgl/pull/9609)
* **fix(textarea): scroll to position when style changes** [9407](https://github.com/lvgl/lvgl/pull/9407)
* **fix(grid): negative width of the object with column span in the grid using RTL** [9596](https://github.com/lvgl/lvgl/pull/9596)
* **fix(obj\_pos): incorrect x coordinate in rtl mode** [9598](https://github.com/lvgl/lvgl/pull/9598)
* **fix(draw/sw): add missing LV\_PROFILER\_DRAW\_END** [9601](https://github.com/lvgl/lvgl/pull/9601)
* **fix(wayland/egl): fix config selector for nanovg** [9603](https://github.com/lvgl/lvgl/pull/9603)
* **fix(opengl): fallback to RGB for desktop GL** [9588](https://github.com/lvgl/lvgl/pull/9588)
* **fix(gltf): add missing LV\_RESULT\_INVALID check** [9580](https://github.com/lvgl/lvgl/pull/9580)
* **fix(gltf): fix memory leaks caused by incomplete resource cleanup** [9579](https://github.com/lvgl/lvgl/pull/9579)
* **fix(opengles\_shader): fix index out of bounds** [9573](https://github.com/lvgl/lvgl/pull/9573)
* **fix(gltf): fix unused-function warning** [9576](https://github.com/lvgl/lvgl/pull/9576)
* **fix(gltf): fix heap use after free caused by timer not being deleted** [9574](https://github.com/lvgl/lvgl/pull/9574)
* **fix(widget/span): undefined lv\_subject\_t if LV\_USE\_OBSERVER undefined** [9577](https://github.com/lvgl/lvgl/pull/9577)
* **fix(glfw): add gl\_rgb565 fallback definition** [9575](https://github.com/lvgl/lvgl/pull/9575)
* **fix(egl): add missing ctx null check** [9572](https://github.com/lvgl/lvgl/pull/9572)
* **fix: remove unused code and fix code signature warning** [9570](https://github.com/lvgl/lvgl/pull/9570)
* **fix(lodepng): fix memory leak when cache addition fails** [9569](https://github.com/lvgl/lvgl/pull/9569)
* \*\*fix(draw\_sw): remove unused code in  [lv\_draw\_sw\_blend\_to\_a8.c`** `9567](https://github.com/lvgl/lvgl/pull/9567)
* **fix: format specifier warning in font manager** [9549](https://github.com/lvgl/lvgl/pull/9549)
* **fix(test): add missing malloc check to screenshot compare** [9541](https://github.com/lvgl/lvgl/pull/9541)
* **fix(xml): pass raw # if there's no constant name** [9418](https://github.com/lvgl/lvgl/pull/9418)
* **fix(drm/egl): red and blue channel swap with RGB565** [9461](https://github.com/lvgl/lvgl/pull/9461)
* **fix(arclabel): fix arclabel opa set** [9483](https://github.com/lvgl/lvgl/pull/9483)
* **fix(refr): restore layer opacity and recolor properties when layer area retrieval fails** [9521](https://github.com/lvgl/lvgl/pull/9521)
* **fix(vg\_lite): fix the missing handling of rotated vector fonts g->ofs\_x** [9519](https://github.com/lvgl/lvgl/pull/9519)
* **fix(vg\_lite): workaround vg\_lite\_blit\_rect offset x/y hardware bug** [9522](https://github.com/lvgl/lvgl/pull/9522)
* **fix(draw\_sw\_line): fix horizontal line incorrect dash length** [9501](https://github.com/lvgl/lvgl/pull/9501)
* **fix(draw): support RGB565\_SWAPPED in software blur** [9512](https://github.com/lvgl/lvgl/pull/9512)
* **fix(wayland): fix touch support by correctly setting driver data** [9486](https://github.com/lvgl/lvgl/pull/9486)
* **fix(vg\_lite): fix incomplete coordinate calculation when converting scissor\_area to bounding\_box\_area** [9511](https://github.com/lvgl/lvgl/pull/9511)
* **fix(vg\_lite): wait for vg\_lite\_tvg finish before drawing the mask** [9489](https://github.com/lvgl/lvgl/pull/9489)
* **fix(anim): ignore large apparent animation duration** [9280](https://github.com/lvgl/lvgl/pull/9280)
* **fix(arclabel): fix arclabel arc length calc in recolor mode** [9467](https://github.com/lvgl/lvgl/pull/9467)
* **fix(image\_header\_cache): fix dump iter selection error** [9465](https://github.com/lvgl/lvgl/pull/9465)
* **fix(arclabel): fix arc length calculating precise** [9457](https://github.com/lvgl/lvgl/pull/9457)
* **fix(opengl): compilation error when using glfw** [9459](https://github.com/lvgl/lvgl/pull/9459)
* **fix(image\_cache): fix image cache dump memory leaks** [9448](https://github.com/lvgl/lvgl/pull/9448)
* **fix(conf\_internal): explicitly disable the glTF demo when build\_demo is disabled** [9408](https://github.com/lvgl/lvgl/pull/9408)
* **fix(gltf): remove fastgltf memory mapped file feature check** [9422](https://github.com/lvgl/lvgl/pull/9422)
* **fix(gltf): correct argument type to match declaration** [9421](https://github.com/lvgl/lvgl/pull/9421)
* **fix(gltf): add declaration for loading model from bytes** [9420](https://github.com/lvgl/lvgl/pull/9420)
* **fix(demo): fix compiler warning of unused variable c** [9370](https://github.com/lvgl/lvgl/pull/9370)
* **fix(flex): fix rounding may leave unused space on track with flex\_grow** [9217](https://github.com/lvgl/lvgl/pull/9217)
* **fix(gstreamer): fix buffer map memory leak** [9378](https://github.com/lvgl/lvgl/pull/9378)
* **fix(draw/dma2d): correct cache handling** [9366](https://github.com/lvgl/lvgl/pull/9366)
* **fix(gltf): stride mismatch issue** [9385](https://github.com/lvgl/lvgl/pull/9385)
* **fix(gltf): force depth mask for transparent items used with refractive materials** [9396](https://github.com/lvgl/lvgl/pull/9396)
* **fix(tabview): re-set tab bar size after changing its position** [9399](https://github.com/lvgl/lvgl/pull/9399)
* **fix(demo): fix compiler warnings regarding the use of LV\_UNUSED** [9403](https://github.com/lvgl/lvgl/pull/9403)
* **fix(tiny\_ttf): release entry for correct cache** [9429](https://github.com/lvgl/lvgl/pull/9429)
* **fix(cache): entry alloc** [9427](https://github.com/lvgl/lvgl/pull/9427)
* **fix(xml): allow animating bg\_image\_opa in XML timelines** [9425](https://github.com/lvgl/lvgl/pull/9425)
* **fix(opengles): fix the memory leak when the shader manager is destroyed (#9439)** [9440](https://github.com/lvgl/lvgl/pull/9440)
* **fix(rb): make compare result type a 32bit integer** [9442](https://github.com/lvgl/lvgl/pull/9442)
* **fix(draw\_buf)：change the align log level to INFO** [9428](https://github.com/lvgl/lvgl/pull/9428)
* **fix(gltf): correctly handle matrices for animation and cameras** [9273](https://github.com/lvgl/lvgl/pull/9273)
* **fix(nuttx): fix profiler build break** [9417](https://github.com/lvgl/lvgl/pull/9417)
* **fix(blur):  fix VS compiler error** [9391](https://github.com/lvgl/lvgl/pull/9391)
* **fix(freetype): set pixel size before kerning calculation (#9367)** [9388](https://github.com/lvgl/lvgl/pull/9388)
* **fix(xml): fix compile warning of uninitialized value** [9368](https://github.com/lvgl/lvgl/pull/9368)
* **fix(gif): compatibility issue when logging uint32\_t variables** [9349](https://github.com/lvgl/lvgl/pull/9349)
* **fix(display): always have a solid background with non-alpha color formats** [9380](https://github.com/lvgl/lvgl/pull/9380)
* **fix(demo): make the Log out and Invite button not overlap on 480 hor. res.** [9383](https://github.com/lvgl/lvgl/pull/9383)
* **fix(roller): transformed roller click location** [9212](https://github.com/lvgl/lvgl/pull/9212)
* **fix(screen): double free when loading screens** [9276](https://github.com/lvgl/lvgl/pull/9276)
* **fix(ime): restrict to lowercase input to avoid overflow** [9320](https://github.com/lvgl/lvgl/pull/9320)
* **fix(spinbox): fix stack corruption** [9256](https://github.com/lvgl/lvgl/pull/9256)
* **fix(binfont\_loader): add include to include missing function from API page** [9344](https://github.com/lvgl/lvgl/pull/9344)
* **fix(ESP): fix esp toolchain format specifier edge case** [9336](https://github.com/lvgl/lvgl/pull/9336)
* **fix(EVE): update lv\_font\_fmt\_txt.h include path** [9337](https://github.com/lvgl/lvgl/pull/9337)
* **fix(gif): fix negative loop count handling** [9241](https://github.com/lvgl/lvgl/pull/9241)
* **fix(sdl): do not dereferencing nullptr in lv\_sdl\_mouse\_handler if an invalid windows id (0) has been received** [9299](https://github.com/lvgl/lvgl/pull/9299)
* **fix(label): skip label draw if width is negative** [9297](https://github.com/lvgl/lvgl/pull/9297)
* **fix(indev): send LV\_EVENT\_KEY as indev event** [9208](https://github.com/lvgl/lvgl/pull/9208)
* **fix(glfw): fix deinitialization order to prevent segfault** [9220](https://github.com/lvgl/lvgl/pull/9220)
* **fix(draw/sw): remove param from draw\_sw\_mask\_rect** [9288](https://github.com/lvgl/lvgl/pull/9288)
* **fix(property): fix return type of LV\_PROPERTY\_OBJ\_SCROLL\_END** [9203](https://github.com/lvgl/lvgl/pull/9203)
* **fix(property): fix some non-integer style property types** [9245](https://github.com/lvgl/lvgl/pull/9245)
* **fix(indev): ensure timer triggers when elapsed time meets threshold** [9275](https://github.com/lvgl/lvgl/pull/9275)
* **fix(gif): add disposal handle to fix gif display error** [9213](https://github.com/lvgl/lvgl/pull/9213)
* **fix(scripts/check\_gcov\_coverage): skip statistics for non-executable lines** [9239](https://github.com/lvgl/lvgl/pull/9239)
* **fix(vg\_lite): add a path print length limit** [9248](https://github.com/lvgl/lvgl/pull/9248)
* **fix(NemaGFX): update lv\_font\_fmt\_txt.h include path** [9235](https://github.com/lvgl/lvgl/pull/9235)
* **fix(draw/ppa): fix build and rendering issues** [9162](https://github.com/lvgl/lvgl/pull/9162)
* **fix(widgets): make animations on state change more consistent** [9174](https://github.com/lvgl/lvgl/pull/9174)
* **fix(workflows): fix commit ID error in push events mode** [9231](https://github.com/lvgl/lvgl/pull/9231)
* **fix(gif): add missing D-cache flush** [9228](https://github.com/lvgl/lvgl/pull/9228)
* **fix(label): lv\_label\_mark\_need\_refr\_text not invalidate area** [9176](https://github.com/lvgl/lvgl/pull/9176)
* **fix(ffmpeg\_player): increase align to 32** [9166](https://github.com/lvgl/lvgl/pull/9166)
* **fix(driver/st\_ltdc): Add missing lv\_os\_private.h include** [9191](https://github.com/lvgl/lvgl/pull/9191)
* **fix(LTDC): add cache cleaning** [9192](https://github.com/lvgl/lvgl/pull/9192)
* **fix(fbdev): Implement proper cleanup from deletion event in FBDEV** [9169](https://github.com/lvgl/lvgl/pull/9169)
* **fix(example): correct lv\_example\_chart\_5 display** [9177](https://github.com/lvgl/lvgl/pull/9177)
* **fix(canvas): correct RGB565 pixel offset in lv\_canvas\_get\_px** [9188](https://github.com/lvgl/lvgl/pull/9188)
* **fix(ffmpeg): for nv12 pix\_fmt** [9131](https://github.com/lvgl/lvgl/pull/9131)
* **fix(opengles): update fb address after reshaping texture** [9134](https://github.com/lvgl/lvgl/pull/9134)
* **fix(obj\_tree): fixes exact object name match** [9150](https://github.com/lvgl/lvgl/pull/9150)
* **fix(gltf): fix indexation of model binds and and a new uniform scale bind** [9102](https://github.com/lvgl/lvgl/pull/9102)
* **fix(fs): set data to NULL if read file failed** [9156](https://github.com/lvgl/lvgl/pull/9156)
* **fix(keyboard): remove and add state to text area instead of keyboard** [9105](https://github.com/lvgl/lvgl/pull/9105)
* **fix(indev): Abort sending Keypad INDEV\_ACT events following invalid return** [9135](https://github.com/lvgl/lvgl/pull/9135)
* **fix(xml): correclty use integer format specifier** [9133](https://github.com/lvgl/lvgl/pull/9133)
* **fix(test): fix memory leak on failed screenshot compare** [9088](https://github.com/lvgl/lvgl/pull/9088)
* **fix(scale): incorrect decrement in lv\_scale\_set\_line\_needle\_value loop** [9081](https://github.com/lvgl/lvgl/pull/9081)
* **fix(vg\_lite): fix warning if LV\_LOG option is closed** [9094](https://github.com/lvgl/lvgl/pull/9094)
* **fix(flex): fix crash with flex\_grow on screen** [9090](https://github.com/lvgl/lvgl/pull/9090)
* **fix(drm): fix drm driver memory leaks** [31e4138](https://github.com/lvgl/lvgl/commit/31e41380d19ae70392ffb59eb8041df5f3937978)
* **fix(gltf): convert baseColorFactor to sRGB for more accurate mid-range colors** [bdb7099](https://github.com/lvgl/lvgl/commit/bdb7099c3a65029a4399a566340b79e65b069986)
* **fix(workflows): skip the coverage analysis if it's not a pull request** [b9cdc4a](https://github.com/lvgl/lvgl/commit/b9cdc4a6100a85c01059e098da57d714362b3f93)
* **fix(dave2d): fix leftover typo from #8725** [abec5b7](https://github.com/lvgl/lvgl/commit/abec5b7c6ed6e1c24ffda6a0f297a874aea89dcf)

Examples [#examples]

Docs [#docs]

* **docs(draw\_descriptors): fix examples missing code** [9745](https://github.com/lvgl/lvgl/pull/9745)
* **docs(draw/sdl): add missing draw\_sw requirement** [9747](https://github.com/lvgl/lvgl/pull/9747)
* **docs(renesas): update link in docs to Renesas plugin v1.0.1** [9735](https://github.com/lvgl/lvgl/pull/9735)
* **docs(overview): remove conflict marker** [9733](https://github.com/lvgl/lvgl/pull/9733)
* **docs(wayland): remove server side window decorations promise** [9708](https://github.com/lvgl/lvgl/pull/9708)
* **docs(README):  document how to work with :c:macro: role limitation** [9700](https://github.com/lvgl/lvgl/pull/9700)
* **docs(integration): make the integration more effective and informative** [9507](https://github.com/lvgl/lvgl/pull/9507)
* **docs(win):  fix link list in API section** [9697](https://github.com/lvgl/lvgl/pull/9697)
* **docs(style\_api\_gen): add missing \* to style API documentation** [9684](https://github.com/lvgl/lvgl/pull/9684)
* **docs(animation): clarify constraint in animations** [9686](https://github.com/lvgl/lvgl/pull/9686)
* \*\*docs(style API):  add API documentation to [style\_api\_gen.py`** `9637](https://github.com/lvgl/lvgl/pull/9637)
* **docs(macros): fix many macro links to API docs** [9533](https://github.com/lvgl/lvgl/pull/9533)
* **docs(buttonmatrix): fix event name typo** [9635](https://github.com/lvgl/lvgl/pull/9635)
* **docs(rt-thread):  update BSP list and place the table and links in a form that is easier to maintain** [9611](https://github.com/lvgl/lvgl/pull/9611)
* **docs: add missing xml redirects** [9593](https://github.com/lvgl/lvgl/pull/9593)
* **docs(canvas): clarify buffer allocation details** [9563](https://github.com/lvgl/lvgl/pull/9563)
* **docs(links):  fixed broken external links** [9525](https://github.com/lvgl/lvgl/pull/9525)
* **docs(display): mention palette in example flush\_cb** [9534](https://github.com/lvgl/lvgl/pull/9534)
* **docs(API): link api pages to source code header files** [9456](https://github.com/lvgl/lvgl/pull/9456)
* **docs(clipping): document how clipping works in drawing** [9446](https://github.com/lvgl/lvgl/pull/9446)
* **docs(editor): Zephyr integration guide.** [9360](https://github.com/lvgl/lvgl/pull/9360)
* **docs(ICOP): add docs for board manufacturer ICOP** [9413](https://github.com/lvgl/lvgl/pull/9413)
* **docs(color):  fix unexpected API page links** [9338](https://github.com/lvgl/lvgl/pull/9338)
* **docs(layers):  clarify how to control Widget layering** [9379](https://github.com/lvgl/lvgl/pull/9379)
* **docs(display\_controllers):  fix erroneous doc cross-references** [9382](https://github.com/lvgl/lvgl/pull/9382)
* **docs(examples):  fix erroneous example headings** [9355](https://github.com/lvgl/lvgl/pull/9355)
* **docs(3dtexture):  fix web link with syntax error** [9357](https://github.com/lvgl/lvgl/pull/9357)
* \*\*docs(base\_widget.rst):  add [obj`example to docs**`9356](https://github.com/lvgl/lvgl/pull/9356)
* **docs(custom.css):  fix 2 CSS color issues** [9330](https://github.com/lvgl/lvgl/pull/9330)
* **docs(examples): add back show c code button in widget pages** [9354](https://github.com/lvgl/lvgl/pull/9354)
* **docs(redirects):  add redirect for renesas XML integration page** [9345](https://github.com/lvgl/lvgl/pull/9345)
* \*\*docs(examples):  make [example\_list.py`robust**`9317](https://github.com/lvgl/lvgl/pull/9317)
* **docs(wayland): remove mention of custom timer handler** [9329](https://github.com/lvgl/lvgl/pull/9329)
* **docs(redirects):  add redirects from URLs in prev READMEs** [9322](https://github.com/lvgl/lvgl/pull/9322)
* **docs(redirects):  add redirect for prev getting\_started page** [9321](https://github.com/lvgl/lvgl/pull/9321)
* **docs(build.py):  add changes needed with removal of details/ and intro/ dirs** [9315](https://github.com/lvgl/lvgl/pull/9315)
* **docs(color\_format): add rgb565 swapped format info** [9310](https://github.com/lvgl/lvgl/pull/9310)
* **docs(directory structure):  simplify by removing details/ and intro/ dirs** [9313](https://github.com/lvgl/lvgl/pull/9313)
* **docs(examples):  fix libs/, others/ and porting/ missing from examples page.** [9291](https://github.com/lvgl/lvgl/pull/9291)
* **docs(images): remove outdated information and reorganize image docs** [9221](https://github.com/lvgl/lvgl/pull/9221)
* **docs(config):  improve documentation in config template** [9251](https://github.com/lvgl/lvgl/pull/9251)
* **docs(examples):  make example pathing more robust** [9308](https://github.com/lvgl/lvgl/pull/9308)
* **docs(README):  fix typo** [9286](https://github.com/lvgl/lvgl/pull/9286)
* **docs(libpng):  fix documentation typo** [9290](https://github.com/lvgl/lvgl/pull/9290)
* **docs(examples/grad):  fix missing source code in gradient examples** [9289](https://github.com/lvgl/lvgl/pull/9289)
* **docs(Widget Tree): provide data lost from end of doc** [9158](https://github.com/lvgl/lvgl/pull/9158)
* **docs(README):  add instructions for new documentation features** [9149](https://github.com/lvgl/lvgl/pull/9149)
* **docs(editor): Arduino usage guide** [9104](https://github.com/lvgl/lvgl/pull/9104)
* **docs(torizon): update torizon os docs to work with latest LVGL** [9095](https://github.com/lvgl/lvgl/pull/9095)
* **docs(Guides):  add structure to TOC for Guides section** [9281](https://github.com/lvgl/lvgl/pull/9281)
* **docs(tinyttf): remove file loading in the examples** [9266](https://github.com/lvgl/lvgl/pull/9266)
* **docs(editor): Add brief section on installing e2 Studio plugin to the docs** [9257](https://github.com/lvgl/lvgl/pull/9257)
* **docs(Renesas): Add Renesas RZ/G3E and RA8D2 to docs** [9253](https://github.com/lvgl/lvgl/pull/9253)
* **docs(threading):  simplify and add work-queue concept to Threading doc** [9106](https://github.com/lvgl/lvgl/pull/9106)
* **docs(xml): add Renesas Eclipse / E2Studio docs** [9216](https://github.com/lvgl/lvgl/pull/9216)
* **docs(debugging):  proofread debugging section** [9163](https://github.com/lvgl/lvgl/pull/9163)
* **docs(style):  add table width enhancements and bold + italic + underline support** [9124](https://github.com/lvgl/lvgl/pull/9124)
* **docs:  factor out repeated substitution definitions** [9125](https://github.com/lvgl/lvgl/pull/9125)
* **docs(macro api links):  fix links to macros in API pages** [9161](https://github.com/lvgl/lvgl/pull/9161)
* **docs(mipi):  clarify generic MIPI with example code** [9099](https://github.com/lvgl/lvgl/pull/9099)
* **docs: move ext links to include dir** [9128](https://github.com/lvgl/lvgl/pull/9128)
* **docs:  fix enumerator expansion upon API page links** [9114](https://github.com/lvgl/lvgl/pull/9114)
* **docs(misc):  remove last warnings from doc-build with skip\_api argument** [9119](https://github.com/lvgl/lvgl/pull/9119)
* **docs(misc):  fix typos, grammar and add missing function links to api pages** [9126](https://github.com/lvgl/lvgl/pull/9126)
* **docs(gif):  fix outdated content about using GIFs as C arrays** [9093](https://github.com/lvgl/lvgl/pull/9093)

CI and tests [#ci-and-tests]

* **test(vector): add more draw vector test case** [9524](https://github.com/lvgl/lvgl/pull/9524)
* **test(pinyin): update ref images** [9610](https://github.com/lvgl/lvgl/pull/9610)
* **test: fix missing EOL warnings** [9548](https://github.com/lvgl/lvgl/pull/9548)
* **test(svg): add svg file testcase** [9535](https://github.com/lvgl/lvgl/pull/9535)
* **ci(release): add steps to prepare and upload lite package** [9443](https://github.com/lvgl/lvgl/pull/9443)
* **test(canvas): add RGB565 pixel read test** [9516](https://github.com/lvgl/lvgl/pull/9516)
* **test(canvas): add canvas test case and fix the null pointer access crash in the draw buffer** [9478](https://github.com/lvgl/lvgl/pull/9478)
* **test(slider): add slider test case** [9477](https://github.com/lvgl/lvgl/pull/9477)
* **test(async): add async test case** [9475](https://github.com/lvgl/lvgl/pull/9475)
* **test(utils): add utils test case** [9474](https://github.com/lvgl/lvgl/pull/9474)
* **test(palette): add palette test case** [9473](https://github.com/lvgl/lvgl/pull/9473)
* **test(ll): add ll test case** [9472](https://github.com/lvgl/lvgl/pull/9472)
* **test(color): add color test case** [9471](https://github.com/lvgl/lvgl/pull/9471)
* **test(circle\_buf): add circle buffer test case** [9470](https://github.com/lvgl/lvgl/pull/9470)
* **test(area): add area test case** [9469](https://github.com/lvgl/lvgl/pull/9469)
* **test(arc): add arc test case** [9476](https://github.com/lvgl/lvgl/pull/9476)
* **test(fs): add fs test case and add fs mock** [9479](https://github.com/lvgl/lvgl/pull/9479)
* **test(snapshot): add snapshot test case** [9481](https://github.com/lvgl/lvgl/pull/9481)
* **test(image): add image test case** [9480](https://github.com/lvgl/lvgl/pull/9480)
* **test(math): fix lv\_pow failure to handle negative numbers exp and add full-feature coverage test** [9450](https://github.com/lvgl/lvgl/pull/9450)
* **test(ime\_pinyin): fix crash and memory leak and add full-feature coverage test** [9434](https://github.com/lvgl/lvgl/pull/9434)
* **test(cache): add cache\_entry\_alloc** [9438](https://github.com/lvgl/lvgl/pull/9438)
* **test(menu): fix double free and add full-feature coverage test** [9432](https://github.com/lvgl/lvgl/pull/9432)
* **test(tick): add tick test case** [9416](https://github.com/lvgl/lvgl/pull/9416)
* **test: update demo widgets ref image** [9358](https://github.com/lvgl/lvgl/pull/9358)
* **ci: deploy doc builds to release folders** [9352](https://github.com/lvgl/lvgl/pull/9352)
* **ci(deps): bump actions/checkout from 5 to 6** [9334](https://github.com/lvgl/lvgl/pull/9334)
* **ci(deps): bump JamesIves/github-pages-deploy-action from 4.7.3 to 4.7.4** [9333](https://github.com/lvgl/lvgl/pull/9333)
* **ci(tests): retain the gcov report for coverage analysis** [9274](https://github.com/lvgl/lvgl/pull/9274)
* **test(draw\_buf): add draw buf premultiply test** [9259](https://github.com/lvgl/lvgl/pull/9259)
* **test(display): improve lv\_display test coverage** [9110](https://github.com/lvgl/lvgl/pull/9110)
* **test(demo\_widgets): add screenshot comparison** [9111](https://github.com/lvgl/lvgl/pull/9111)
* **test(theme): improve theme test coverage** [9116](https://github.com/lvgl/lvgl/pull/9116)
* **test(mem): improve memory test coverage** [9117](https://github.com/lvgl/lvgl/pull/9117)
* **test(vector): add demo vector graphic test** [9130](https://github.com/lvgl/lvgl/pull/9130)
* **test(array): improve lv\_array test coverage** [9108](https://github.com/lvgl/lvgl/pull/9108)
* **test(indev): merge indev testcase** [9071](https://github.com/lvgl/lvgl/pull/9071)

Others [#others]

* **feat(env): always use the C library when building for QNX** [9738](https://github.com/lvgl/lvgl/pull/9738)
* **revert(canvas): remove api to skip canvas invalidation when setting pixel** [9751](https://github.com/lvgl/lvgl/pull/9751)
* **chore(cmsis-pack): Prepare for v9.5.0** [9748](https://github.com/lvgl/lvgl/pull/9748)
* **build(esp): only add fatfs component if use\_fs\_fatfs is enabled** [9746](https://github.com/lvgl/lvgl/pull/9746)
* **chore(font\_gen): replace os.system with subprocess.run** [9689](https://github.com/lvgl/lvgl/pull/9689)
* **build(deps): bump dawidd6/action-download-artifact from 12 to 14** [9666](https://github.com/lvgl/lvgl/pull/9666)
* **build(deps): bump JamesIves/github-pages-deploy-action from 4.7.6 to 4.8.0** [9667](https://github.com/lvgl/lvgl/pull/9667)
* **chore(ppa): update cache alignment error message for 128-byte lines** [9526](https://github.com/lvgl/lvgl/pull/9526)
* **chore(gif):  move GIF Widget to widgets/ directory** [9617](https://github.com/lvgl/lvgl/pull/9617)
* **chore(docs): lock sphinx version to 8.2.3** [9626](https://github.com/lvgl/lvgl/pull/9626)
* **chore(msgbox): fix the incorrect return value docs** [9584](https://github.com/lvgl/lvgl/pull/9584)
* **chore: fix warning of span testcase** [9547](https://github.com/lvgl/lvgl/pull/9547)
* **refactor(opengles): set texture id to layer head on disp creation** [9397](https://github.com/lvgl/lvgl/pull/9397)
* **chore(CODEOWNERS): add @FASTSHIFT to default owners** [9531](https://github.com/lvgl/lvgl/pull/9531)
* **refactor(canvas): clarify parameter names for lv\_canvas\_copy\_buf** [9414](https://github.com/lvgl/lvgl/pull/9414)
* **build(cmake): check if demos and examples exist** [9510](https://github.com/lvgl/lvgl/pull/9510)
* **build(esp): add missing lv\_demos.c source file to esp build process** [9517](https://github.com/lvgl/lvgl/pull/9517)
* **chore(tests): clean up erroneously submitted temporary files** [9515](https://github.com/lvgl/lvgl/pull/9515)
* **refactor(gif): add new API and add full testcase** [9452](https://github.com/lvgl/lvgl/pull/9452)
* **chore: add codeowners** [9458](https://github.com/lvgl/lvgl/pull/9458)
* **build(deps): bump actions/upload-artifact from 5 to 6** [9495](https://github.com/lvgl/lvgl/pull/9495)
* **build(deps): bump JamesIves/github-pages-deploy-action from 4.7.4 to 4.7.6** [9496](https://github.com/lvgl/lvgl/pull/9496)
* **build(deps): bump dawidd6/action-download-artifact from 11 to 12** [9497](https://github.com/lvgl/lvgl/pull/9497)
* **build(deps): bump actions/cache from 4 to 5** [9498](https://github.com/lvgl/lvgl/pull/9498)
* **build(Kconfig): auto select LV\_USE\_GENERIC\_MIPI** [9491](https://github.com/lvgl/lvgl/pull/9491)
* **chore(image\_converter): add AL88 color format support** [9453](https://github.com/lvgl/lvgl/pull/9453)
* **build(kconfig): make log level selection more readable** [9409](https://github.com/lvgl/lvgl/pull/9409)
* **build(test): ffmpeg compile error on macOS** [9371](https://github.com/lvgl/lvgl/pull/9371)
* **chore: fix compile warnings** [9369](https://github.com/lvgl/lvgl/pull/9369)
* **refactor(obj\_property): use LV\_ARRAYLEN for LV\_OBJ\_SET\_PROPERTY\_ARRAY** [9395](https://github.com/lvgl/lvgl/pull/9395)
* **refactor(indev): remove the unused last\_obj field from lv\_indev\_t** [9219](https://github.com/lvgl/lvgl/pull/9219)
* **chore(lvglgdb): show classp name if lv\_class name is not set** [9376](https://github.com/lvgl/lvgl/pull/9376)
* **chore(vg\_lite): minimize the header file inclusion** [9361](https://github.com/lvgl/lvgl/pull/9361)
* **chore(lvglgdb): fix TypeError in lv\_obj.py while dump specify object** [9375](https://github.com/lvgl/lvgl/pull/9375)
* **chore: update version to v9.5.0-dev** [9350](https://github.com/lvgl/lvgl/pull/9350)
* **chore(lv\_conf\_internal): replace the tab and add automatic checks** [9323](https://github.com/lvgl/lvgl/pull/9323)
* **chore: update version to v9.4.0-dev** [9316](https://github.com/lvgl/lvgl/pull/9316)
* **chore(tests/unity): fix the case discrepancy in the size\_t comparison macro definition** [9318](https://github.com/lvgl/lvgl/pull/9318)
* **chore: fix changelog generator to be compatible with reST** [9168](https://github.com/lvgl/lvgl/pull/9168)
* **build(Kconfig): add missing support\_rgb565\_swapped config** [9282](https://github.com/lvgl/lvgl/pull/9282)
* **chore(scripts/run\_tests): remove redundant apt list commands** [9226](https://github.com/lvgl/lvgl/pull/9226)
* **refactor(draw\_buf): add inline tag for draw buffer flag functions** [9229](https://github.com/lvgl/lvgl/pull/9229)
* **chore(test\_conf): fix build break if webp library not installed** [9225](https://github.com/lvgl/lvgl/pull/9225)
* **refactor(canvas): remove draw\_sw include** [9204](https://github.com/lvgl/lvgl/pull/9204)
* **refactor(arc): remove redundant code** [9198](https://github.com/lvgl/lvgl/pull/9198)
* **refactor: reorganize the others folder** [9164](https://github.com/lvgl/lvgl/pull/9164)
* **build(deps): bump actions/upload-artifact from 4 to 5** [9182](https://github.com/lvgl/lvgl/pull/9182)
* **Make scroll animation timing configurable via defines** [9160](https://github.com/lvgl/lvgl/pull/9160)
* **build(kconfig): add 3d texture and gltf configs** [9132](https://github.com/lvgl/lvgl/pull/9132)
* **chore(gdb): add initial project configuration and installation instructions for lvglgdb** [9145](https://github.com/lvgl/lvgl/pull/9145)
* **chore(gdb): support rb/cache associate debug obj and commands** [9089](https://github.com/lvgl/lvgl/pull/9089)
* **chore(scripts): remove rz-g2l-evkit from port updater as it still uses v8.3** [9092](https://github.com/lvgl/lvgl/pull/9092)
* **chore(vg\_lite): correct spelling of 'high' in color key structure** [9087](https://github.com/lvgl/lvgl/pull/9087)
* **chore(gdb): add gdb cmd for nuttx drivers to support multi-instance** [9068](https://github.com/lvgl/lvgl/pull/9068)
* **chore(widgets): use helper for properties in class** [7193931](https://github.com/lvgl/lvgl/commit/71939310c2642af50483fa65baca3e77ddb021e9)
* **chore(property): add macro to help property definitions** [55aa15d](https://github.com/lvgl/lvgl/commit/55aa15dddd3495bd4eabe2bcbfd70c4aa2dc10d8)
* **Revert "fix(workflows): fix commit ID error in push events mode (#9231)"** [cafeb18](https://github.com/lvgl/lvgl/commit/cafeb18455fd3da679793654e55dbb57cff1f131)
