Change Log

v9.3.0 3 June 2025

Summary

This is a significant release packed with exciting updates from both our community and internal team.

One of the most notable additions is XML support, enabling you to describe your UI in a declarative manner. This way LVGL UI can be loaded at runtime without recompiling and deploying the application. This feature is also a key requirement for the upcoming UI Editor we're developing.

The documentation has been thoroughly reorganized and proofread.

We've also laid the groundwork to support 3D textures as LVGL widgets.

To support our partners, we've added numerous new drivers and documentation:

Text rendering has become much more advanced:

  • Our FreeType binding now supports colored glyphs and glyph outlines

  • Text recoloring is back (e.g., "A #ff0000 red# word")

  • Improved GPU integration to render A1/A2/A4 bitmaps directly

And finally, some other important additions: - New color formats: RGB565_SWAPPED (commonly used with SPI-based display controllers) and ARGB8888_REMULTIPLED (required for Wayland and Lottie animations) - SVG support - Double and triple click detection - Tiled rendering to better utilize multiple CPU cores - Multi-touch gestures (swipe, pinch, rotate) - Global recolor style property (tint all widgets and images) - Triple buffer support

Architectural

  • arch(font_manager): add multiple font backend support 8038

  • arch(demos): move new demos to lv_demos 8022

  • arch(cmake): add native Kconfig support to cmake 7934

New Features

  • feat(wayland): add dmabuf support with g2d 8122

  • feat(draw_sw): add RGB565_SWAPPED support 8227

  • feat: add new lvgl examples 8225

  • feat(barcode): support raw code 128 8287

  • feat(draw_opengles): add getter fn for glfw_window and fix freeing non allocated textures 8257

  • feat(draw): add configurable thread priority for all drawing units 8162

  • feat(test): add Dockerfile support with CI env 8209

  • feat(image): support symbol images with inner alignment 8182

  • feat(disp): allow rotation with `FULL` render mode 8107

  • feat(display): add triple buffer support 8158

  • feat(svg): add API for getting original width and height 8180

  • feat(cache): add new `lv_cache_lru_ll` module 8155

  • feat(cmake): disable PCPP by default 8126

  • feat(animimage): support set source interfaces with or without parameter of reverse play 8164

  • feat(drivers): add ft81x framebuffer driver 7815

  • feat(animimage): support images play in a reversed order 8085

  • feat(font): Replace SimSun font with SourceHanSansSC 8006

  • feat(widget): Add `lv_3dtexture` widget and 3D draw task type 8033

  • feat(nuttx): auto enable display matrix rotation 8119

  • feat(refr): use transform matrix to realize display rotation 6911

  • feat(image): add LV_IMAGE_ALIGN_CONTAIN & LV_IMAGE_ALIGN_COVER to scale images without changing aspect ratio 7955

  • feat(sdl): add window icon settings 7808

  • feat(sw_blend) : add argb8888-premultiplied support 7979

  • feat(linux/fbdev): support non-mmappable frame buffers 8058

  • feat(disp): support subscription and unsubscription of vsync event 7487

  • feat(demos): add WiFi credentials input to the high res demo 7953

  • feat(scale): add id1 id2 for tick line draw descriptors. fix zero division 7695

  • feat(scripts): Add –name parameter to LVGLImage.py 7996

  • feat(draw/sw): add support for vector fonts 7560

  • feat(draw): add comments and unify struct names 7878

  • feat(refr): add global recolor 7855

  • feat(lz4): update lz4 to 0.10.0 7869

  • feat(test): add test cases for indev_gesture pinch 7947

  • feat(chart): implement get_index_from_x() for LV_CHART_TYPE_SCATTER 7824

  • feat(demo): New smartwatch demo 7883

  • feat(indev): Add rotation and two fingers swipe gestures support 7865

  • feat(obj_tree): indent printed object data according to its depth 7852

  • feat(draw_sw): have only one SW draw unit with multiple threads internally 7899

  • feat(dma2d): add support for DMA2D on STM32H7RS 7850

  • feat(benchmark): add on benchmark end callback 7814

  • feat(tests): add draw 8bpp font test 7895

  • feat(spangroup): add some testcases for span rtl mode. 7870

  • feat(examples): add looping scroll example 7714

  • feat(draw/sw): allow custom handlers 7531

  • feat(nxp): add G2D support 7625

  • feat(lv_bin_decoder): improve error logging in file reading 7826

  • feat(blend): add blend difference mode 7796

  • feat(thorvg): use LVGL's malloc/realloc/zalloc/free 7772

  • feat(nuttx_image_cache): add configuration to use image cache heap for default heap 7653

  • feat(vg_lite): optimize resource reference count management 7809

  • feat(mem): add lv_reallocf 7780

  • feat(span): support bidi for span 7717

  • feat(draw_vector): add fill units support 7774

  • feat(docs): new docs-build paradigm... 7597

  • feat(docs): upgrade presentation of display.rst 7478

  • feat(decoder): add svg image decoder for image widget 7141

  • feat(osal): add lv_os_get_idle_percent for linux 7632

  • feat(fs): clarify rest of docs on driver-identifier letters. 7710

  • feat(vg_lite): enhanced the automatic diagnosis function of GPU errors 7751

  • feat(demos): add new card to high resolution demo 7699

  • feat(observer): add bind_XXX ge/gt/le/lt and notify only when value changes 7678

  • feat(drm): add support for GBM buffer object to increase performance 7464

  • feat(draw/sw): make I1 luminance threshold configurable 7616

  • feat(drivers): add evdev discovery 7481

  • feat(docs): proofread/edit obj_property.rst. 7621

  • feat(demo): add smartwatch demo 7429

  • feat(scripts/LVGLImage.py): adds RGB565 dithering support 7582

  • feat(draw): add lv_draw_letter support 7490

  • feat(anim): add a pause method 7583

  • feat(docs): batch 14 of proofread/edited docs 7477

  • feat(docs): add short bit about include pattern to CODING_STYLE.rst 7563

  • feat(docs): batch 12 of proofread/edited docs 7440

  • feat(dma2d): add support for ARGB1555 color on top of RGB565 format 7555

  • feat(drivers): add UEFI driver 7069

  • feat(demos): High Resolution Demo Improvements 7566

  • feat(xml): add support for more properties and add more examples 7417

  • feat(libinput): map LV_KEY_{ESC} 7544

  • feat(docs): batch 11 of proofread/edited docs 7361

  • feat(docs): batch 10 of proofread/edited docs 7357

  • feat(docs): batch 13 of proofread docs 7458

  • feat(dropdown): add lv_anim_enable_t parameter to lv_dropddown_set_selected 7310

  • feat(demos): add high resolution demo 7308

  • feat(draw/sw): added support for 3 bpp font rendering 7350

  • feat(gen_json): adds option to gen_json to build without docstrings 7471

  • feat(docs): make docs development practical 7414

  • feat(osal): add SDL2 based threading and OS support 7457

  • feat(anim): clarify reverse play in animation API 7338

  • feat(draw): add layer memory allocation config support 7038

  • feat(NemaGFX): add freetype vector font support 7346

  • feat(refr): improve performance measurement 7430

  • feat(display): add draw buffer size getter 7332

  • feat(docs): proofread/edit batch 9 7324

  • feat(docs): widget proofread wrap-up 7405

  • feat(docs): update threading details in answer to #7313 7342

  • feat(profiler_builtin): support nanosecond accuracy 7415

  • feat(vg_lite): reduce unnecessary path quality settings 7398

  • feat(examples): add infinite scroll example 7388

  • feat(docs): batch 8 of proofread/edited docs 7295

  • feat(docs): document LV_DPX(n) 7374

  • feat(file_explorer): remove '.' and rename '..' to '< Back' 7270

  • feat(sdl): add I1 color format render support 7036

  • feat(drivers/st_ltdc): add rotation support to LTDC driver 7254

  • feat(chart,calendar): two grammar corrections 7340

  • feat(scroll): user-defined scrollbar length using LV_STYLE_LENGTH 7306

  • feat(draw_sw): add image clip_radius and mask before transformation 7244

  • feat(doc): add documentation on Torizon OS 7280

  • feat(docs): batch 6 of proofread/edited docs 7277

  • feat(scroll): adjust scroll behavior for non-elastic objects 7336

  • feat(code-format): minor enhancements 7311

  • feat(font): allow using A1,2,4 bitmaps + handle byte aligned fonts 7234

  • feat(fsdrv): set the working directory 7272

  • feat(observer): add subject snprintf 7250

  • feat(indev): add multi touch gestures 7078

  • feat(docs): batch 7 of proofread/edited docs 7281

  • feat(png): add support for files without extension 7289

  • feat(docs): scrolling doc proofread, edited and clarified... 7170

  • feat(issue): add platform description to bug-report 7273

  • feat(dropdown): add animations on rotary event 7271

  • feat(docs): batch 5 of proofread/edited docs 7218

  • feat(indev): add setter for long press repeat time 7235

  • feat(docs): buttonmatrix proofread/edit 7194

  • feat(obj): add transform matrix attribute 7187

  • feat(sdl): use SDL_Delay for delay callback 7243

  • feat(docs): batch 4 of proofread/edited docs 7207

  • feat(observer): add null pointer check 7183

  • feat(docs): plea for proper word-wrapping in `.rst` files. 7189

  • feat(thorvg): update thorvg to 0.15.3 7103

  • feat(docs): batch 3 of proofread/edited docs 7180

  • feat(sw): Add method to convert a htiled I1 buffer to vtiled 7129

  • feat(fs_posix): add error code conversion 7166

  • feat(roller): set roller option with a string 7143

  • feat(docs): proofread and edited docs 7144

  • feat(draw_label): Support simultaneous text selection and recolor 7116

  • feat(font): support 8 bpp font bitmaps 7100

  • feat(vg_lite): add more detailed error dump information 7104

  • feat(ffmpeg): add playback complete event trigger 7119

  • feat(docs): reorganize docs 7136

  • feat(scale): add additional style properties 6649

  • feat(vg_lite): add ARGB1555 ARGB4444 ARGB2222 support 7028

  • feat(sdl): add float zoom window support 7089

  • feat(scripts/gdb): add draw unit debug info support 7095

  • feat(tests): add log print callback 7076

  • feat(nuttx): add indev cursor display 7021

  • feat(libs): add SVG rendering support 6845

  • feat(drivers): add STM32 LTDC support 7059

  • feat(demo): add an ebike demo 7019

  • feat(opengl): texture caching 6861

  • feat(draw): add NemaGFX rendering backend 7002

  • feat(text): add text recolor back 6966

  • feat(vg_lite): add profiler for vg_lite_set_scissor 7023

  • feat(vg_lite_tvg): add vg_lite_set_scissor function support 6959

  • feat(nxp): Release/nxp patches for LVGL master 6978

  • feat(render): basic of tiled rendering 6761

  • feat(sdl): speed up rotation 6835

  • feat(nuttx): move static var index to global for gdb diagnostic 6890

  • feat(style): add a "set all" function for margin 6904

  • feat(gif): add loop count control 6839

  • feat(snapshot): add argb8565 support 6899

  • feat(array): add an empty element when element is NULL 6893

  • feat(vg_lite): add A8 and L8 dest buffer support 6884

  • feat(animimg): add getter function for underlying animation 6838

  • feat(vg_lite): add yuy2 color format support 6882

  • feat(profiler): support different module divisions 6834

  • feat(switch): add vertical switch function 6786

  • feat(spangroup): add `lv_spangroup_get_span_by_point` in spangroup 6579

  • feat(indev): detect double and triple click (closes #6020) 6187

  • feat(dma2d): add basic support 6691

  • feat(nuttx): add memory dump for image cache heap 6807

  • feat(vg_lite): optimize check_image_is_supported 6802

  • feat(vg_lite): add draw border side support 6796

  • feat(freetype): add colored glyphs support 6686

  • feat(event): event supports delayed deletion ability 6655

  • feat(libs): add freetype font manager 6482

  • feat(stdlib): add lv_calloc function 6743

  • feat(fonts) add aligned fonts for demo benchmark 157ee6a

  • feat(xml): add the basics of declarative XML support fc5939d

  • feat(test): make LVGL's test utilities public 8d04466

  • feat(xml): add support scale, span, roller and bar a535063

  • feat(circle_buff): add lv_circle_buf_t component d08d545

  • feat(xml): add subject and global/local scoping support 2ca425c

  • feat(xml): add buttonmatrix 299e31b

  • feat(obj_name): add auto-indexing with names like 'mybtn_#' e4bbc4f

  • feat(xml): add gradient support b78a9b4

  • feat(gdb): add lvgl GDB plugin d460edb

  • feat(xml): add basic callback event support 1c9c9f6

  • feat(xml): add canvas and calendar support 79381cc

  • feat(xml): add support for textarea and keyboard b63472d

  • feat(xml): add arc and chechkbox 3095b63

  • feat(xml): add obj, roller, dropdown, and arc bind_* properties 82996a5

  • feat(iter): add lv_iter_t module 4d7f577

  • feat(xml): load fonts and images from XML 670845e

  • feat(xml): add test for a complex view 052d908

  • feat(xml): add the first version of property updater b23a228

  • feat(image_cache): add dump info ability for image_cache 30f0d6c

  • feat(property): support second value in property 133b6fc

  • feat(xml): support removing style properties ed60b20

  • feat(freetype): add font kerning support 0414c78

  • feat(slider): add property interface 4eacf15

  • feat(vglite) draw_vglite_border add support for legacy scissor 2e75bbd

  • feat(animimage): add property support f5b00f5

  • feat(draw_sw): draw A8 static fonts directly in SW render 102b633

  • feat(test/freetype): add vg-lite outline font test feee9ae

  • feat(xml): handle registering assets multiple times 910cf08

  • feat(NemaGFX): add TSC color formats 07854b1

  • feat(slider): add orientation support (based on bar) f23b42b

  • feat(vglite) add LV_USE_VGLITE_STATIC_BITMAP option to use static glyphs for text rendering 7ba6cf2

  • feat(chart): add lv_chart_set_cursor_pos_x/pos_y() 8d0a519

  • feat(nuttx_fbdev): support for complete non-/consecutive fbdev mmap processing 340482d

  • feat(label_xml): support the format string in bind_text c5022ce

  • feat(xml): support styles with the same name 7f45e2f

  • feat(observer): support simple int binding to label c23636c

  • feat(observer): rename arg to clarify correct use... 82034cb

  • feat(xml): use LVGL's malloc for parsing 717301a

  • feat(obj): add state processing in XML parser 81eb192

  • feat(xml): add support for ext_click_area d91bdc5

  • feat(label_xml): support the format string in bind_text 3d1beab

  • feat(obj): add obj name support 626d6b5

  • feat(observer): Make `lv_obj_remove_from_subject()` legal for Widget Binding. 9b3c365

  • feat(lv_subject_t): re-sequence fields to reduce size from 32 => 28 bytes e0dfe80

  • feat(indev): detect double and triple click (closes #6020) (#6187) 651f69f

Performance

  • perf(blend): fix loop unrolling condition 8306

  • perf(vg_lite): relaxing the matrix transform judgment criteria 8219

  • perf(label): reduce the time of calling lv_text_get_size when drawing 8129

  • perf(vg_lite): switch gradient cache lru_rb -> lru_ll 8188

  • perf(vg_lite): add gradient pool to optimize memory allocation 8149

  • perf(refr): reduce refr_children call by check layer->opa 8133

  • perf(draw): support draw task dsc alloc together to reduce the malloc call times 8070

  • perf(draw): reduce empty dispatch 8073

  • perf(vg_lite): add font cache reference counting support 7407

  • perf(array): make short functions inline to reduce function jumps 7890

  • perf(vg_lite): reduce ineffective D-cache flushing operations 7817

  • perf(draw): optimize lv_draw_label() with text_length for text_local 7673

  • perf(obj): use layer to cache the current opa stack 7523

  • perf(nxp/vglite): do not recreate identity matrix at runtime 7595

  • perf(vg_lite): optimize matrix and rectangle conversion 7537

  • perf(refr): reduce matrix conversion 7536

  • perf(vg_lite): improve path append data performance 7504

  • perf(bin_decoder): improve the decoding performance of a8 7494

  • perf(vg_lite): improve path data conversion performance 7470

  • perf(os): optimize OS API calls without OS mode 7420

  • perf(span): optimize span render performance up by 50% 7290

  • perf(draw): improve execute time of obj's transforming 6638

  • perf(vg_lite): reduce redundant matrix calculations 7163

  • perf(label): simplify handling of bytes overwritten with dots 7001

  • perf(benchmark): use XRGB8888 image withn 32bit color depth 6914

  • perf(vg_lite): optimize label drawing efficiency 6853

  • perf(draw): skip area independence tests with one draw unit 6825

  • perf(obj): skip repeated flag setting operations 6859

  • perf(obj): reduce unnecessary border post drawing 6852

  • perf(vg_lite): reduce matrix and radius calculations 6800

  • perf(vg_lite): balancing performance and memory consumption 6823

  • perf(demo): use set_text_static in demos to cache them ins SDL and OpenGL renderers 926e3df

Fixes

  • fix(nema_gfx): fix STM32U5 compilation with NEMAGFX enabled and NEMAVG disabled 8291

  • fix(vg_lite): add nullptr check for vg_dash_pattern 8352

  • fix(example): fix params to lv_rand call 8324

  • fix(NemaGFX): get the static bitmap even if bpp is not 8 8347

  • fix(NemaGFX): new label static bitmap handling and fix area move bug 8332

  • fix(esp/nuttx): add missing include 8344

  • fix(display): fix divide by stride of zero value 8308

  • fix(calendar): allow setting years in ascending order 8315

  • fix(calendar): fixed macro comparing unsigned value to 0 8316

  • fix(sysmon): define perf monitor log mode when perf monitor is not enabled 8329

  • fix(themes): Fix mono theme init 8343

  • fix(chart): fix variable overflow 8318

  • fix(evdev): mark unused variable as unused 8330

  • fix(span): fix dereference obj before checking for null 8317

  • fix(draw_img): pass correct variable to LV_DRAW_SW_IMAGE 8314

  • fix(draw_sw): in ARGB8888_PREMULTIPLIED fix rounding error and add RGB888 image blending support 8264

  • fix(xml): fix tabview XML definition 8309

  • fix(freetype_image): dereference null pointer 8307

  • fix(theme): fix judgment logic error. 8303

  • fix(pxp): sync rotation direction with SW render 7063

  • fix(draw_vector): draw vector not calc draw_buf offset 8262

  • fix(svg): correctly parse header 8281

  • fix(vg_lite): fix strict alias warning with higher optimization levels 8136

  • fix(tiny_ttf): fix GPOS lookup list table address 8251

  • fix(layout): size in cross direction was not updated when layout on parent was changed from grid to flex 8053

  • fix(wayland): prevent wayland reinitialization to support multiple windows 8273

  • fix(wayland): assert surface is configured after creating window 8271

  • fix(bar): fix bar indicator length error 8200

  • fix(vg_lite): fix access to uninitialized members 8256

  • fix(SW) build with LV_DRAW_SW_COMPLEX disabled 8246

  • fix(vg_lite): enable box shadow by default 8242

  • fix(dave2d): fix evaluate callback 8253

  • fix: format specifier in lv_obj_tree.c 8244

  • fix(refr): add missing area intersect check 8240

  • fix(refr): fix matrix rotation precision loss 8221

  • fix(bin_decoder): fix build warnings when decompressing LZ4 compressed images 8234

  • fix(vg_lite): reset the scissor area when rendering with vg_lite. 8232

  • fix(pinyin): update candidates on the second letter too 8105

  • fix(wayland): support version 2 of the XDG protocol 8201

  • fix(log): fix possible level out of bounds 8216

  • fix(nxp/g2d): remove useless g2d_search_buf_map() when free buf 8072

  • fix(wayland): Remove the XDG_RUNTIME_DIR check 8041

  • fix(span): replace deprecated spangroup_set_mode fn from examples 8192

  • fix(thorvg): fix incompatibility with c++20 (#8042) 8043

  • fix(lottie): smooth edges on lottie animation 8189

  • fix(roller): don't send click event when scrolled 8101

  • fix(span): add assertion for bidi text buffer allocation 8168

  • fix(display/renesas_glcdc): stride of the framebuffer can be different to the width 8177

  • fix(dave2d): fix compilation error 8175

  • fix(circle_buf): don't clear array on reset 8157

  • fix(refr): change clip area don't take effect on children and draw post 8117

  • fix(examples): fix #warning causing examples build to fail. 8135

  • fix(list): check that LV_USE_FLEX is enabled when using LV_LIST 8139

  • fix(opa): corrected incorrect usage of LV_OPA_MIN 8161

  • fix(nuttx_image_cache): fix compilation issues 8165

  • fix(NemaGFX): update STM32U5 nema lib to revC 8138

  • fix(drivers/evdev): process pointer coordinates in unrotated frame 8061

  • fix(vg_lite): fix vector draw pattern matrix error 8134

  • fix(arc): handle clicks on a full circle 8106

  • fix(cache): prevent resource leaks in cache entry creation failure 8144

  • fix(indev): fix indev gesture occasional crash 8146

  • fix(ffmpeg): fix ffmpeg decoder assert 8128

  • fix(makefile): Extend component.mk with missing elements 8118

  • fix(tabview):fix example lv_example_tabview_2 8084

  • fix(vg_lite): fix vector drawing not handling global matrix 8115

  • fix: var redeclaration 8109

  • fix(cmake): fix LV_CONF_PATH quoting consistency issue 8079

  • fix(sdl): fix access fb2 NULL pointer 8096

  • fix: table get cell area error 8047

  • fix(test): do not enable test_bg_image with || 1 8081

  • fix(makefile): Path fixes in component.mk 8068

  • fix(area): test and fix lv_area_diff edge case 7907

  • fix(font): allow non-constant LV_FONT_DEFAULT again (fixes #7788) 8059

  • fix(draw asm): replace attribute syntax for asm arm files 8076

  • fix(matrix): use homogeneous coordinates to transform point 7960

  • fix(draw): fix "blend_non_normal_pixel: Not supported blend mode" issue when using lv_demo_smartwatch which compiled by MSVC 8017

  • fix(draw_chart): remove raw_end setting in draw_series_line 8024

  • fix(draw_sw): fix rotation typos 8050

  • fix(lottie): revert example 8054

  • fix(draw asm): fix GCC linker error 8055

  • fix(tree): add NULL check 7972

  • fix(draw_sw): make the images invisible on full recolor to the background color 7868

  • fix(text): handle recolor in lv_text_get_size 8026

  • fix(observer): check if observer is associated with obj on remove fn 7727

  • fix(example_anim): remove scrollable flag 8008

  • fix(lv_image): fix touch area calculation 8027

  • fix(vg_lite): check for better draw unit 8040

  • fix(draw_sw): fix letter outline multi-threading issues 8003

  • fix(docs): fix Riverdi & Viewe links 8031

  • fix(draw_nema_gfx_triangle): use correct field names for lv_draw_triangle_dsc_t 8005

  • fix(getcwd): capture return value #7991 7992

  • fix(label): fix long mode clip #7922 7957

  • fix(svg): adjust svg render node object for reduce memory usage. 8013

  • fix(micropython): lvgl module deinit 7973

  • fix(draw/sw): draw outline span wrong init. 8011

  • fix(tests): explicitly install libudev dependency #7983 7985

  • fix(scripts): initialize reserved fields of lv_image_dsc_t and lv_image_header_t to prevent compiler warnings 7799

  • fix(demo): add LV_USE_LOTTIE check for demo smartwatch 8002

  • fix(gif): free memory on error 7950

  • fix(draw_sw_vector): fix thorvg canvas colorspace 7975

  • fix(thorvg.h): ensure can use standard ints #7988 7989

  • fix(color): add cast to LV_OPA_MIX macros 7956

  • fix(Widgets): Optimise widget event callbacks to remove unnecessary calls to the event handler. 7954

  • fix(vg_lite): modify recolor image behavior 7977

  • fix(wayland): Ensure variable is initialized before use #7986 7987

  • fix(bin_decoder): fix the crash when decoder A8 images and flush cache 7952

  • fix(image_decoder): enhance code robustness 7969

  • fix(anim): fix the crash caused by delete anim in cb 7926

  • fix(obj): remove all events from the object 7811

  • fix(buttonmatrix): initialize auto_free_map in constructor 7966

  • fix(draw_sw): fix memory leaks 7964

  • fix(nxp/g2d): fix memory management error in G2D buffer mapping 7875

  • fix(thorvg): fix internal types of rasterXYFlip 7782

  • fix(port_releaser): always use remote when pushing and add token 7856

  • fix(X11): call XCloseDisplay in delete 7904

  • fix(refr): make lv_display_refr_timer public again 7925

  • fix(scale): remove dangling reference to stack buffer 7915

  • fix(examples): add casts and change int types to fix checker warnings 7933

  • fix(observer): fix lv_subject_notify_if_changed not defined when LV_USE_DROPDOWN = 0 7783

  • fix(decoder): missing log_trace when decoders are not found. 7790

  • fix(indev): remove redundant zero-initialization operations 7929

  • fix(scale): change return type of lv_scale_get_rotation to int32_t and update documentation 7862

  • fix(obj): style opa of other part is not effective 7905

  • fix(nuttx): incorrect draw buffer size for I1 color and bpp=1 7885

  • fix(label): fix behavior when set to `LV_LABEL_LONG_MODE_SCROLL_CIRCULAR` with BIDI 7886

  • fix(svg): fix SVG draw rect off by 1px bug 7902

  • fix(dave2d): LV to D2 colour format conversion for I8 format 7896

  • fix(dave2d): fix build break 7882

  • fix(thorvg): add missing include 7877

  • fix(nuttx): fix nuttx lcd release assert 7840

  • fix(refr): fix invalidate area calc error 7871

  • fix(vg_lite): fix missed reference count release 7889

  • fix(freetype): add missing error handling for glyph bitmap lookup failure 7887

  • fix(vg_lite): fix pending swap sequence error 7849

  • fix(indev): fix lv_indev_gesture write access error 7843

  • fix(SDL): error if color depth is 1 and render mode is not partial 7846

  • fix(draw): fix 'lv_vector_path_append_arc' not starting with a 'move to' operation. 7854

  • fix(release_updater): push: if branch is specified, remote must be specified too 7863

  • fix(obj): cover check should consider both grad opa-s 7813

  • fix(indev): fix platform-specific printf format for int32_t 7844

  • fix(profiler_builtin): fix uint32_t storage nanosecond time overflow 7818

  • fix(demos/smartwatch): fix image color format error 7819

  • fix(nema): Broken build after draw unit refactoring, draw_label changes 7759

  • fix(release_updater): minor fixes and addition of new boards 7726

  • fix(examples): add casts 7831

  • fix(indev): fix scroll_obj not send LV_EVENT_INDEV_RESET 7767

  • fix(kconfig): add LIBUV dependency to prevent missing configurations 7798

  • fix(indev): modify calculation delta_y use p_delta_y, not p_delta_x 7791

  • fix(example_grad): return value from lv_style_get_prop not checked 7793

  • fix(indev): fix platform-specific printf format for int32_t 7784

  • fix(draw_letter): fix draw letter bg_coords behaviour when it's NULL 7773

  • fix(text): fix oob read for utf8-next 7602

  • fix(bin_decoder): check divisor is zero 7610

  • fix(nema): fix indexed image error 7744

  • fix(DMA2D): build issue after the draw_unit to draw_task refactor 7749

  • fix(vg_lite): alleviate the loss of precision in obtaining path bound 7731

  • fix(indev): add the missing wait_until_release flag to clean up 7638

  • fix(draw): fix wrong LV_PROFILER tag 7737

  • fix(test_anim): fix stack-use-after-return 7730

  • fix(flex): don't count item gap for leading hidden items 7720

  • fix(drivers): generic MIPI add missing lv_display_flush_ready 7693

  • fix(file_explorer): fix navigation when using a keypad indev 7181

  • fix(area): lv_area_diff remove overlap 7696

  • fix(indev.rst): handle lv_obj_is_focused no longer exists. 7711

  • fix(sysmon): disable all performance banners from screen with serial redirect 7593

  • fix(draw_sw_mask): add ASSERT_MALLOC check 7692

  • fix(memcpy): ensure volatile qualifier for destination pointer in lv_… 7573

  • fix: warn user about deprecated LV_DEFAULT_DRIVE_LETTER 7620

  • fix(chart): fix last point not drawn in scatter chart 7665

  • fix(canvas): initialize layer before return 7677

  • fix(indev): skip press event on new object release 7612

  • fix(xml): Fixed small typo 7684

  • fix(docs): clarify obj hierarchy after `lv_menu_page_create()` 7604

  • fix(refr): lv_obj_invalidate_area invalidates whole obj 7598

  • fix(gif): fix bounds check 7675

  • fix(docs): fix minor issues with alif.rst 7676

  • fix(chart): avoid divide by zero 7609

  • fix(docs): several minor doc fixes 7652

  • fix(cmake): installation with custom LV_CONF_PATH 7624

  • fix(fs_win32): fix inconsistency using LV_FS_WIN32_PATH... 7608

  • fix(layout): always recalculate the layout if HIDDEN changes 7607

  • fix(draw_vector): alleviate the loss of precision in obtaining path bound 7635

  • fix(refr): lv_refr_get_top_obj not check style opa 7643

  • fix(vg_lite_math): initialize all variables to avoid error of uninitialized variables on some compilers. 7628

  • fix(nuttx_image_cache): fix incorrect code order 7644

  • fix(span): fix align text to center and right layout issues. 7615

  • fix(vg_lite): remove pattern color fill 7613

  • fix(nxp): allow vglite build when LV_USE_DRAW_SW is disabled 7596

  • fix(wayland): use premultiplied alpha for transparent backgrounds #7543 7580

  • fix(os): add support for thread names 7579

  • fix(menu): add missing LV_ASSERT_OBJ 7605

  • fix(dave2d): handle LV_COLOR_FORMAT_RGB888 correctly 7594

  • fix(scroll): scrolling animation and finger dragging conflict during continuous sliding, causing flickering 7522

  • fix(pxp,vglite): extend base structure to create vglite and pxp draw units 7578

  • fix(label): add assignment to uninitialized variable 7587

  • fix(xml): return if XMLs can't be saved 7588

  • fix(sysmon): fix heap memory overflow 7576

  • fix(scroll): handle scroll chain with snapping too 7491

  • fix(widgets): fix an incorrect text replacement 7548

  • fix(label): limit self size by max_height style 7542

  • fix(widget_chart): add assignment to uninitialized variable 7561

  • fix(label): fix updating scrolling label text 7533

  • fix(style): fix conditional jump or move depends on uninitialised value 7571

  • fix(wayland): delete the allocated display and buffers 7572

  • fix(docs): clarify how to pass color index... 7554

  • fix(lv_canvas.c): fix use of uninitialized variable 7556

  • fix(draw_buf): flush D-Cache after clear buffer 7550

  • fix(circle_buff): replace a none ASCII character 7538

  • fix(lv_freetype): clean up includes 7524

  • fix(tree): add NULL check 7526

  • fix(anim): remove the redefinition of lv_anim_set_time 7500

  • fix(roller): Adjust the position of the lv_roller_set_str function in lv_roller. c and lv_roller. h 7506

  • fix(font): fix get glyph id bug. 7404

  • fix(ap): fix ap unicode 0622+0644 7482

  • fix(sysmon): fix crash when enable LV_USE_PERF_MONITOR and nuttx backend 7483

  • fix(event): remove preprocess flag when get name 7468

  • fix(table): mark clicks as 'Invalid' when clicking on empty spaces 7153

  • fix(examples): fix infinite scroll crash 7459

  • fix(draw_sw_img): avoid divide by zero 7447

  • fix(vg_lite): fix path memory reallocation error 7466

  • fix(dma2d): Add return value to DMA2d conversion functions 7456

  • fix(draw_sw_arc): add ASSERT_MALLOC check 7448

  • fix(draw_rect): refactor to insure header is initialized 7446

  • fix(draw_sw_triangle): add null check 7449

  • fix(vg_lite): remove unnecessary grad image checks 7443

  • fix(vg_lite): fix corner case of bar drawing 7441

  • fix(osal/pthread): add missing pthread_attr_destroy call 7434

  • fix(vg_lite): fix stroke crash when update failed 7399

  • fix(docs): adjust colors to address accessibility issues 7409

  • fix(cmake): fix msvc building error 7401

  • fix(ebike-demo): make it compile with Arduino 7397

  • fix(test_calendar.c): fix function name change from PR #7340 7375

  • fix(draw_sw_fill): add NULL checks on grad 7355

  • fix(arduino): allow including lvgl_private.h even if the examples and demos are in the src folder 7366

  • fix(draw_sw): wrong image buffer calculation 7387

  • fix(scripts): fix image conversion was scrambling palette data 7367

  • fix(scale): fix angle calculation error 7362

  • fix(draw_sw_box_shadow): add ASSERT_MALLOC check 7344

  • fix(docs): add missing quotes 7359

  • fix(theme_default): fix omitted style for selected text in `lv_textarea` 7322

  • fix(draw): fix minor maintenance issue in lv_draw_label.c 7296

  • fix(imagebutton): warn if middle image is not set 7224

  • fix(init): adjust the freetype initial order 7363

  • fix(indev): prevent division by zero 7354

  • fix(nxp-vglite): add missing '{' 7365

  • fix(file_explorer): quick access prototype outside guard 7356

  • fix(lv_conf): get rid of the LV_CONF path building macros 7335

  • fix(event): record rendering done moment after rendering finished 7228

  • fix(draw_sw): in lv_draw_sw_rotate enable ARGB8888 functions for XRGB8888 too 7185

  • fix(obj): use LV_ASSERT_NULL if LV_ASSERT_OBJ not enabled 7339

  • fix(docs): stray space in style_api_gen.py and generated doc... 7309

  • fix(issue): fix the platform input box not displaying fully 7316

  • fix(style): missing (void*) cast in macro LV_STYLE_CONST_INIT 7304

  • fix(flex): make min-width, grow, and wrap work together 7168

  • fix(dave2d): required when using LVGL with LV_COLOR_DEPTH 32 7323

  • fix(dave2d): fix implicit function definitions 7320

  • fix(ffmpeg): add native filesystem API support for FFmpeg image decoder 7253

  • fix(drivers/x11): fix unknown typename lv_img_dsc_t 7294

  • fix(ebike): add guards to the ebike demo translations 7319

  • fix(vg_lite): fix vector rendering missing image opa processing 7293

  • fix(script): add ending for raw loader of ThorVG 7186

  • fix(draw): fix incorrect clip area computation when clearing transparent framebuffers 7269

  • fix(file_exploer): fix path issues when returning to open other folders after opening a certain folder 7258

  • fix(demo): resolve include when repository name is not 'lvgl' 7261

  • fix(file_explorer): table cell use after free 7239

  • fix(roller): fix typo in scaling; prevent division by zero 7263

  • fix(init): remove double call to lv_draw_sw_deinit 7266

  • fix(indev): don't reset all indevs if an object is set disabled 7216

  • fix(obj): fix crash with LV_SIZE_CONTENT parent and % positioned child 7041

  • fix(draw): fix bug introduced by PR #6638 7264

  • fix(sw_blend): add null pointer check for mask_area 7251

  • fix(lv_draw_sw_line): fix lv_draw_line function causes a crash. 7248

  • fix(buttonmatrix): add check for indev POINTER | BUTTON type 7125

  • fix(freertos): compilation warning in non-IDF environments 7221

  • fix(event) remove redundant last check 7227

  • fix(cmake): fix installation with cmake –install 7161

  • fix(chart): fix divide-by-zero and cursor error 7211

  • fix(windows): Update document for Windows backend to clarify some features 7197

  • fix(docs): fix bad highlight color 7199

  • fix(chart): `lv_malloc()` was allocating double size needed 7200

  • fix(refr): avoid division by zero 7205

  • fix(buttonmatrix): fix 1-off error in `lv_buttonmatrix_get_button_text()` 7193

  • fix(scale): correct scale_set_arc_properties function 7113

  • fix(anim): fix user after free if the anim. is delete in the exec_cb 7173

  • fix(cmake): generate lvgl.pc in CMAKE_CURRENT_BINARY_DIR 7127

  • fix(demo): fix ebike demo header file inclusion issue 7133

  • fix(table): fixed NULL pointer reference 7042

  • fix(docs): trailing underscore looked like hyperlink to Sphinx 7172

  • fix(docs): link in /lvgl/README.md to supported display types 7167

  • fix(docs): fix broken links in ./lvgl/README.md 7146

  • fix(file_explorer): fix navigation handling 7124

  • fix(neon): use conventional macro syntax 6887

  • fix(docs): fix incorrect title and filename change for vg_lite.rst 7148

  • fix(draw): add assertion checks for malloc return values 7149

  • fix(script): do not add pad if 'araw_data_len' can divide 'bblk_size' evenly. 7109

  • fix(tile) set minimum tiles to 1 if there is no SW render unit 7130

  • fix(ebike): make it work without lottie too 7135

  • fix(dma2d): add missing include for descriptor structs 7122

  • fix(vg_lite): fix linear gradient matrix error 7110

  • fix(vg_lite): fix arc drawing boundary case drawing error 7107

  • fix(bin_decoder): fix bug in handling premultiplied alpha flag 7106

  • fix(tests): fix vg-lite buf address not aligned 7049

  • fix(gdb): fix style prop getting 7088

  • fix(obj_scroll): include handle throwing animation in scrolling judment 7011

  • fix(tests): fix svg test assert and add missing ref images 7079

  • fix(examples): fix font manager example build error in docs 7085

  • fix(docs/README.md): reworked to handle several things 6992

  • fix(codespace): use lv_conf.defaults to generate lv_conf.h 7075

  • fix(vg_lite): fix thorvg 32bit rendering test coordinate calculation overflow 7052

  • fix(independent_heap): add independent heap enable option 6953

  • fix(anim_timeline): run animations which do not have an exec cb 7043

  • fix(vg_lite): fix path bonding box coordinate overflow 7037

  • fix(vg_lite_tvg): fix shape_set_stroke calling order error 7039

  • fix(dave2d): fix dave2d private include issue 7016

  • fix(anim): compensate over time 6989

  • fix(docs): fix error blocking API-doc generation under Windows 6990

  • fix(scale): horizontal scale sections not visible 6982

  • fix(vg_lite_tvg): fix int32 type mismatch 7022

  • fix(png): move png_image_free to just before return NULL 7020

  • fix(png): fix mem leak in libpng decoder 6952

  • fix(drivers): add missing includes 6905

  • fix(benchmark): improve responsiveness and use the LVGL logo instead of the cogwheel 6980

  • fix(drivers): calculate stride align correctly 6976

  • fix(rt-thread): fix compile error 6938

  • fix(grid): fix naming conflicts 6963

  • fix(thorvg): fix clipped clippers 6956

  • fix(docs): restore missing on-line examples 6927

  • fix(docs): fix most sphinx warnings 6916

  • fix(layout): calculate content width using x alignment 6948

  • fix(style): remove transitions when a local style property is set 6941

  • fix(docs): eliminate 2 types of sphinx warnings: 6928

  • fix: eliminate misc sphinx warnings... 6929

  • fix(calendar): fix lv_calendar_gregorian_to_chinese compile error 6894

  • fix(fs): add lv_fs_dir_t to lv_fs.h 6925

  • fix(indev): fix hovering disabled obj resets indev 6855

  • fix(gif): added bounds check in gif decoder 6863

  • fix(freertos): sync signal from isr fixed 6793

  • fix(freertos): use xSemaphoreTakeRecursive 6803

  • fix(dropdown): automatically center dropdown content 6881

  • fix(draw): fix sw compile error when disable LV_DRAW_SW_COMPLEX 6895

  • fix(textarea): fix placeholder text cannot be centered (#6879) 6917

  • fix(libinput): private headers 6869

  • fix(color): add missing ARGB8565 alpha check 6891

  • fix(Kconfig): Fix non existent LV_STDLIB_BUILTIN 6851

  • fix(display): remove the unused sw_rotate field 6866

  • fix(image): lv_image_set_inner_align() behaviour with LV_IMAGE_ALIGN_STRETCH 6864

  • fix(bar): fix bit overflow 6841

  • fix(indev): don't wait until release when a new object is found 6831

  • fix(cmake): fix install 6787

  • fix(docbuild): update style doc to reflect Doxygen needs 6705

  • fix(vg_lite): fix image transform clipping area error 6810

  • fix(glfw/opengles): fix buf_size calculation error 6830

  • fix(roller): fix stringop overflow 6826

  • fix(perf): perf monitor FPS 6798

  • fix(micropython): missing bidi private header feature guard 6801

  • fix(draw): fix artifact when rotating ARGB8888 images 6794

  • fix(sdl): check against NULL before using the driver data of a display 6799

  • fix(assets): add missing strides 6790

  • fix(arc): ignore hits that are outside drawn background arc 6753

  • fix(vg_lite): fixed clip_radius image cropping error 6780

  • fix(vg_lite/vector): convert gradient matrix to global matrix 6577

  • fix(spangroup): fix height calculation error 6775

  • fix(buttonmatrix): use const arrays 6765

  • fix(ime): fix ime crash when input_char is too long 6767

  • fix(script): follow lv_conf_template.h changes in generate_lv_conf.py 6769

  • fix(vg_lite): select blend mode based on premultiplication 6766

  • fix(docbuild): reformat comments for Doxygen in `lv_conf_template.h` 6673

  • fix(draw): cast color_format in LV_DRAW_BUF_INIT_STATIC 6729

  • fix(sdl): nested comment is not allowed 6748

  • fix(ime_pinyin): fix letter count wrong when using some dictionary 6752

  • fix(anim): use correct variable `repeat_cnt` 6757

  • fix(xml): add missing style properties d2ed41d

  • fix(font): impore static bitmap handling with stride ccbbfcc

  • fix(vglite) upstream comments a2b687c

  • fix(label): use LV_LABEL_LONG_MODE_* instead of LV_LABEL_LONG_* db11e7b

  • fix(vglite) do not apply scissor cut if border is complete 29e3da2

  • fix(refr): if tile_cnt == 1 don't create new layers. d5b02fe

  • fix(sdl): fix caching with absolute coordinates d469d65

  • fix(xml): use opa type for opacity reapted style props 21e3350

  • fix(nxp) coverity issues a107090

  • fix(xml): handle nested 'extends' handling with components 1964dfe

  • fix(xml): minor fixes of typos and cleanups c0a7eff

  • fix(vglite) add VGLITE_CHECK_ERROR for all vg_lite functions 69f7599

  • fix(label): improve the position keeping of updated scrolling texts aff9ad3

  • fix(xml): fix xml property propagation issues 5652914

  • fix(chart): fix saving the address of a local variable in lv_example_chart_3() 37ea110

  • fix(xml_style): add min/max_width/height and recolor 4518d34

  • fix(event): allow using components without registering events 22e0ebb

  • fix(vglite) Do not dispatch any task if draw unit is busy with "wait_for_finish". b89958a

  • fix(vglite) update triangle and line dsc to align with upstream changes 0a0fad4

  • fix(vglite) add checks for alignment, stride and static bitmap 5564b5b

  • fix(xml): handle not existing subjects gracefully 0b44606

  • fix(NemaGFX): arc angles 6492096

  • fix(xml): fix typos in lv_bar.xml and lv_slider.xml 59bc690

  • fix(draw): do not dispatch if no unit took the task 3c07bd9

  • fix(font): add the missing flush cache operation dcf934d

  • fix(xml): make the XML parser work on MCUs too 2e7d17f

  • fix(nuttx_fbdev): fix memory buffer handling b662802

  • fix(xml): fix enum type for lv_obj bind_state_if 859b2e8

  • fix(chart): add more error handling in XML 7256ba0

  • fix(xml): add missing align and layout values fc4f8fa

  • fix(nxp) solve all build warnings be9b6a2

  • fix(xml): support <view .../> 1d71728

  • fix(ffmpeg): clear the first image data eecebd2

  • fix(anim): make sure the resumed animtion doesn't skip the first update eeb1fef

  • fix(vglite) ARGB8565 color format support 284e7a4

  • fix(benchmark): better handle font dependencies 0bbded7

  • fix(nuttx/cache): add invalidate_cache and flush_cache into image_cache_draw_buf_handlers ea538de

  • fix(pxp) disable pxp draw tile image d6850a8

  • fix(vglite) initialize the paths empty 890cec7

  • fix(observer): fix 2 warnings emitted by VS C compiler... bae25ad

  • fix(vglite) run without DRAW_THREAD 5426204

  • fix(xml): fix roller's XML to reflect better on the C API b27fe9d

  • fix(observer.c): fix inconsistency of whitespace around conditional directives c28c7e8

  • fix(scale): fix typo in XML ea18026

  • fix(xml): chart and slider minor fixes ed7c3be

  • fix(xml): fix widget xmls ecfe334

  • fix(vglite) fix stride calculation 9e5039c

  • fix(vglite) skip VG_LITE_PATTERN_REPEAT tasks on GC255 655f744

  • fix(pxp) draw_img src_area parameter 33de407

  • fix(demo): Add missing Kconfig symbols for ebike and high res 7d088e2

  • fix(sdl): make it work with canvas rendering too 5d9064c

  • fix(draw): fix not reallocating draw_buf-s for glyphs 2d0f6be

  • fix(vglite) do not draw tiled images when using blit split 9e9d821

  • fix(vglite) draw_pattern starts the GPU after setting the command buffer a23bdbd

  • fix(sw_blend) make sure mask_stride is initialized 86d4385

  • fix(core):fix overflow_const issue 1dc4096

  • fix(vglite) update get_glyph function for static bitmaps 18cdb6a

  • fix(obj_tree): support NULL parent in lv_obj_find_by_name 2e5931b

  • fix(test): print n-s in logs correctly f317067

  • fix(span): fix the type of the span element 9b061e8

  • fix(vglite) vglite draw thread stack size increase for gcFEATURE_VG_SIMPLIFIED_BEZIER b67bfee

  • fix(ebike): fix include path 255352b

  • fix(draw): init mask_stride when sw draw triangle 15db6f0

  • fix(table): refresh cell size after ctrl change 47f3c65

  • fix(obj_style): fix transition anim of style_recolor f63b275

  • fix(style): skip figma_node_id attribute 4b23bae

  • fix(ffmpeg): free packet 3605c32

  • fix(observer): protect against possible negative arg value 43b3234

  • fix(font): allow non-constant LV_FONT_DEFAULT again (fixes #7788) (#8059) 9f090d2

  • feat(obj): add obj name support 626d6b5

  • fix(observer): fix bug in `lv_obj_bind_checked()` function 02c3d7c

  • fix(event): consider NULL as a wildcard for callback arg in lv_obj_remove_event_cb_with_user_data() 0ae888b

  • fix: add +1 but for enum bitfields to avoid overflow to negative 253981a

  • fix(sdl): add static_text flag to to lv_draw_label_dsc_t 7808070

Examples

  • example(keyboard): add draw event example to customize each button 8172

  • example(freetype): fix docs build error 8001

  • example(checkbox): Correct checkbox enable comment 7763

Docs

  • docs(coordinates.rst): fix erroneous function... 8283

  • docs(Renesas): add docs for Renesas RZ/A3M 8285

  • docs(XML): proofread XML docs (batch 2 of 2) 8185

  • docs(NuttX): Add more NuttX docs 8235

  • docs(ft81x.rst): move under ./docs/src/ directory 8231

  • docs(Renesas): make "Supported Boards" table cells narrower 8214

  • docs(misc fixes): fix misc items (details below)... 8186

  • docs(Renesas): Renesas G2UL docs change video link 8183

  • docs(XML): proofread XML docs (batch 1 of 2) 8184

  • docs: fix Doxygen parsing of attribute prefixes 8179

  • docs(doxygen): exclude deprecated CJK fonts for Doxygen. 8141

  • docs(table css): fix table formatting... 8196

  • docs(stm32): Fix errors in FreeRTOS Example Code 8163

  • docs(conf.py): fix URL path to viewing doc source on GitHub 8167

  • docs(Renesas): Reorganize Renesas docs 8153

  • docs(3dtexture.rst): get this doc into TOC and proofread 8143

  • docs(viewe): Update docs 8103

  • docs(gdb_plugin): add missing info draw_unit command 8078

  • docs: add missing pcpp dependency 8069

  • docs(introduction.rst): fix bug in API links... 8049

  • docs(observer.rst): remove now-unnecessary warnings 8048

  • docs(build.py): enhance build-output readability 8028

  • docs(doc-gen): eliminate several breathe errors 8036

  • docs(misc): misc clean-up... 8016

  • docs(draw_layers): combine draw-layers topics... 8034

  • docs(doc-gen): eliminate all non-API-page errors 8035

  • docs(sdl): Add SDL docs 8023

  • docs(draw.rst): restructure and proofread from PR #7241 7976

  • docs(timer): document LV_NO_TIMER_READY 7920

  • docs(README_zh.md): add missing examples section 7897

  • docs: remove non-ASCII bytes – batch 1 7974

  • docs: fix erroneous api links 7967

  • docs(getting_started.rst): fix typos (replaces PR #7829) 7970

  • docs: fix previously-broken api links 7971

  • docs(readme): fix broken links 7961

  • docs(doc_builder.py): overhaul, remove bugs, clean up, modularize 7913

  • docs(test.rst): proofread test doc, minor edits 7906

  • docs(viewe): add Viewe docs 7916

  • docs(test): fix the location of test.rst 7900

  • docs: fix doc-build failure 7879

  • docs(restructure): restructure TOC and contents for ease of use 7847

  • docs(introduction): update active state of v8.3 7867

  • docs(boards): proofread batch 21 7769

  • docs: convert 4 `.rst` files back to `.md` files since not part of doc-gen 7839

  • docs(misc): pre-re-org wrap-up... 7804

  • docs(bindings): proofread batch 20 7764

  • docs(xml): fix Sphinx errors in XML-component docs 7820

  • docs(libs): proofread docs batch 19 7709

  • docs(intro): fix typo 7812

  • docs(libs): proofread docs batch18 7688

  • docs(roller): fix roller API-docs spelling error 7735

  • docs(xml): fix not using the docs 7785

  • docs(event): add warning not to modify Widgets during draw events. 7685

  • docs(licenses): add the missing license files 7668

  • docs(fbdev): add information about resolution issue 7025

  • docs(Alif): add docs for Alif chip vendor 7622

  • docs: general typo fix on the NXP related docs. 7626

  • docs(Riverdi): Add Riverdi board docs 7629

  • docs(fs): pin diagram dependency version 7453

  • docs: clarify what C functions are used in storage operations 7627

  • docs(timer): fix usage of timer user data 7575

  • docs(arduino): add Arduino Giga Display Shield reference 7584

  • docs(layer): fix layer rst function error 7541

  • docs(label): add documentation and example for text recolor 7460

  • docs(intro): fix typos 7485

  • docs(details): fix typos 7484

  • docs(profiler): remove tick unit 7433

  • docs(disp): add rotation examples 7314

  • docs: chinese translation link only on the homepage 7370

  • docs(buildroot): add guide to build and embed lvgl on br image 7084

  • docs(font): add a typesetting section 7351

  • docs: update LV_OBJ_FLAG_OVERFLOW_VISIBLE usage 7101

  • docs: update api_json.rst 7318

  • docs(display): correct spelling 7225

  • docs: fix typo in Introduction: "similator" to "simulator" 7162

  • docs(driver): fix link to example code in gen_mipi.rst 7128

  • docs(font_manager): add documentation and test cases 7058

  • docs(scale): fix rst 7045

  • docs(license): add font license files 6971

  • docs(yocto): add guide to integrate lvgl recipe in Yocto 7024

  • docs: fix broken links 6910

  • docs: update macro LV_TA_CURSOR_LAST => LV_TEXTAREA_CURSOR_LAST 6995

  • docs(display): mention how to manipulate the invalidated area 6836

  • docs(event): minor naming fixes 6939

  • docs: fix typo in introduction 6871

  • docs(os): fix formatting 6829

  • docs(arm): add to index and update Arm2D docs 6768

  • docs(xml): reorganize and extend the XML docs ad8a9d9

  • docs(observer): proofread/edit/clarify `observer.rst` efcdff7

  • docs(observer): re-work API (and some internal) documentation a0e37a3

  • docs(index): sort the index links alphabetically 032c2c3

  • docs(iter): add docstrings for lv_iter_t 189102d

  • docs(xml): document events 4dfdd18

  • docs(observer.rst): break up so internal TOC is... 0944979

  • docs(API): make API TOCs easier to use b5dc041

  • docs(ffmpeg): images always loaded with lvgl fs 850426b

  • docs(index): complete the missing link in the index 4d929f3

CI and tests

  • test(screenshot): use lodepng instead of libpng 8275

  • ci: build examples with c++ compiler 8261

  • ci: move docs build config to main repo 8137

  • ci(release_updater): Add bi-weekly schedule. Only update master branches on schedule 8074

  • ci(docs): remove concurrency clause 8102

  • ci(docs): fix commit ref when workflow is triggered by master push 8100

  • ci: build docs on pr 8089

  • ci(micropython): fix MicroPython github build action 7945

  • ci(Windows): vcpkg url patch 7948

  • ci(ubuntu): ci use ubuntu24.04 6241

  • ci: add 8bit build option 7574

  • ci: fix port release branch updater git config command 7722

  • ci: Port release updater update master as well 7650

  • ci: cancel previous workflow run on new commit 7619

  • ci: add port release updater 7590

  • ci(esp): add esp32s3 build workflow 7242

  • ci(ref_imgs): make the CI fail if there not all ref. images are added 7086

  • ci(Kconfig): error on leading spaces (should be tabs) 92d424e

  • ci(ccpp): add –auto-clean flag to lower disk space usage 970ca51

  • ci: fix a reference image 1506779

Others

  • chore(cmsis-pack): update cmsis-pack for v9.3.0 release 8113

  • revert(dropdown): add lv_anim_enable_t parameter to lv_dropddown_set_selected (#7310) 8304

  • chore: use keyword arguments in regex calls to avoid warnings 8288

  • chore: remove extraneous file from repository 8284

  • build(makefile): add class, instance and xml 8233

  • build: restructure cmake 8210

  • chore(draw/sw): minor cleanup 8083

  • refactor(cache): rename and restructure cache-related files 8148

  • chore(profiler): add built-in profiler default enable config 8120

  • doc(freetype) add ftstroke.c to example Makefile 8114

  • Update basics.rst to fix wrong variable name 8112

  • arch(font_manager): add multiple font backend support 8038

  • build: remove pcpp dependency 8090

  • chore(uefi): fix typos 8094

  • arch(demos): move new demos to lv_demos 8022

  • build(custom): fix include path of lv_conf.cmake 8052

  • arch(cmake): add native Kconfig support to cmake 7934

  • Bugfix and improvement for the logging 8025

  • chore(.gitignore): move tests directory ignores to ./tests/.gitignore 7995

  • chore(bin_decoder): add check for image source type in `decode_compressed` 7980

  • refact(vg_lite): refactoring vector rendering 7928

  • chore(Kconfig): set vg_lite stroke default cache size to 8 7939

  • chore(deps): bump JamesIves/github-pages-deploy-action from 4.7.2 to 4.7.3 7873

  • chore(deps): bump espressif/upload-components-ci-action from 1 to 2 7874

  • Dont's squash - gradient updates 7646

  • chore(lv_conf_template): replace tab with space 7736

  • chore(obj): make lv_obj_get_scroll_{left,right,top,bottom}() const 7674

  • Feat(docs): proofread docs batch17 7680

  • refactor(draw): use task instead of draw_unit as argument to draw functions 7240

  • chore(draw): fix unused function warning 7611

  • chore(deps): bump JamesIves/github-pages-deploy-action from 4.7.1 to 4.7.2 7534

  • chore(deps): bump carlosperate/arm-none-eabi-gcc-action from 1.9.1 to 1.10.0 7535

  • chore: fix typos in libs 7516

  • chore(pr-template): add 'Fixes' to the template 7462

  • chore: fix typos in lv_draw_label.h 7511

  • chore: fix typos in lv_display.h 7512

  • chore: fix typos in lv_text.c 7513

  • chore: fix typos in others 7514

  • chore: fix typos in drivers 7517

  • chore: fix typos in some header files 7518

  • chore: fix typos in nema_gfx 7519

  • chore: fix typos in core 7510

  • chore(tests): assert array size with LV_ARRAY_DEFAULT_CAPACITY 7497

  • chore(demos): fix spelling error in demos 7479

  • chore(indev_gesture): add missing config and fix warning 7461

  • chore(deps): bump JamesIves/github-pages-deploy-action from 4.6.8 to 4.7.1 7392

  • chore(display.rst): fix typo 7376

  • chore(example_tabview): fix typo 7377

  • chore: removes BOM 6961

  • chore(draw_sw): add warning if the required color format is not enabled during image transformations 7315

  • chore(nema): fix build warning 7301

  • refactor(draw): extract function to improve readability 7229

  • chore(api): prevent API leaks (cache and thread) 7220

  • Feature/nema updates 7245

  • chore(NemaGFX): add missing header, correct the docs, provided HAL is optional 7174

  • chore(deps): bump arduino/arduino-lint-action from 1 to 2 7209

  • chore(deps): bump actions/upload-artifact from 3 to 4 7210

  • chore(cmsis-pack): ensure the v9.2.2 cmsis-pack is visible on keil.arm.com 7201

  • chore(fs): treat '/' as valid driver letter 6986

  • chore(obj_scroll): improve function documentation 7150

  • chore(svg): LV_USE_SVG: document and enforce dependency on LV_USE_VECTOR_GRAPHIC 7120

  • refactor(gdb): refactor gdb Debugger to be a gdb command 7140

  • chore(vg_lite): fix path bounding_box typo 7134

  • refactor(gdb): refactor gdb script 7123

  • chore(demos/ebike): fixed chinese translation errors 7102

  • chore(cmsis-pack): update cmsis pack for v9.3.0-dev 7080

  • chore(qrcode): replaced libc includes 7077

  • chore(docs): fix font manager example index typo 7083

  • chore: fix minor compile warnings 6987

  • chore(test): add missing label_recolor ref images 7064

  • chore: remove UTF-8 BOMs 6942

  • chore(stale): use the correct labels 7017

  • chore(deps): bump JamesIves/github-pages-deploy-action from 4.6.3 to 4.6.8 6984

  • chore: use the new labels in GitHub actions and docs 6940

  • chore(lv_conf_internal): avoid LV_CONF_SKIP redefinition warning 6960

  • chore: fix compile warnings 6817

  • chore(widgets): add comments to the tileview and win 6856

  • chore(vg_lite): remove unnecessary buffer checks 6921

  • chore(Kconfig): add version info to Kconfig file to check mismatch 6789

  • chore(array): move array typedef to lv_types.h 6850

  • chore: add underscore prefix for names after struct and enum 6688

  • chore(scripts): allow to run update_version.py with python3.8 6788

  • chore(font_manager): update to v9.1 API 6776

  • chore(deps): bump carlosperate/arm-none-eabi-gcc-action from 1.9.0 to 1.9.1 6779

  • chore(tests): fix build break on macOS 6773

  • chore: bump version to v9.3.0-dev 6764

  • Revert "perf(draw): skip empty draw tasks (#6720)" 6758

  • chore(NemaGFX): update library 7232ad7

  • refactor(xml): rename ctx to scope as it better describes its meaning 8e19bb4

  • refactor(vglite) use dynamic paths for drawing e1ccefa

  • refactor(chart): add 'series' keyword in value setters/getters for consistency 5f2888d

  • refactor(obj): use lv_obj_set_flag instead of lv_obj_update_flag 3b394ac

  • refactor(vglite) use dynamic path_data for drawing 4fab9de

  • refactor(vglite) remove vg from variable names 90fa702

  • chore(class): use lv_ prefixed s to avoied naming conflicts with the user widgets 6d99933

  • refactor(vglite) remove unnecessary arguments of draw functions 696693b

  • refactor(iter): use circle_buf to simplify codes b3bf2ab

  • refactor(objid): rename lv_obj_get_child_by_id to lv_obj_find_by_id for consistency 56c44bf

  • chore(iter): add more safe checker and const qualifier 23addd0

  • refactor(vglite) use dynamic gradients for drawing fc43e07

  • chore(doc): add new debugging folder a0d3efe

  • refactor(table): convert lv_table_add_cell_ctrl to a setter 39c4011

  • refactor(pxp) remove unnecessary arguments of draw functions 7a7edb5

  • revert(xml): revert the accidentally modified view.xml 09d0d10

  • refactor(vglite) fix NON ASYNC mode 8b56df4

  • chore(xml): minor fixes 3523270

  • chore(anim): define anim on/off as true/false 2d8ff35

  • chore(obj): deprecate lv_obj_find_by_id in favor of lv_obj_find_by_name 346395d

  • chore(xml): fix warning 868d7b5

  • chore(obj): add style_border_side XML support c65eaf2

  • refactor(chart): add 'series' keyword in value setters/getters for consistency e90cfb7

  • chore(tests): Enable -Wunused-function b6adc8f