Changelog
v8.3.7 3 May 2023
New Features
feat(btnmatrix): review ctrl map and allow width values to be max 15 a150b15
Fixes
fix (spinbox): doubling characters entered from the keyboard 4190
fix(arm-2d): fix transform-chrome-keying issue 4178
fix(menu): prevent setting the current page again 4136
fix(esp): fix ESP-IDF pedantic builds (backport v8.3) 4135
fix: color mixing with LV_COLOR_SWAP == 1 4101
fix(indev): fix integer overflow in recursive zoom calculation a0795b4
fix(style): fix trasition on bg_grad color 48d7878
v8.3.6 3 April 2023
New Features
feat(msg): add lv_msg_unsubcribe_obj 6af0179
Performance
Fixes
fix(group): fix default_group becomes wild pointer when deleted 4076
fix(fs_posix): allow creating new file and set permission. 3976
fix(img): support negative angles 3846
fix(gif): synchronize with master 4003
fix(gpu): fix STM GPU drivers for some variants 4004
fix(img): possible divide by 0 exception (lvgl#3988) 3990
fix(arc): fix knob area invalidation d0e19eb
fix(slider): consider animations on pressing 0b7777f
fix(bar): delete running animations when a new value is set without animation aa31380
docs: use a fixed commit of lv_web_emscripten 501230e
Examples
Docs
CI and tests
Others
v8.3.5 7 February 2023
Performance
Fixes
fix(monkey): remove executable permissions from source files 3971
fix(ci): set Ubuntu version for MicroPython test 3865
fix(Kconfig): fix wrong type of LV_FS_STDIO_CACHE_SIZE (v8.3) 3906
docs(indev): fix the name of long_press_repeat_time (was long_press_rep_time) 34c545e
fix(roller): consider the recolor setting of the label 39f4247
Examples
Docs
docs(indev): fix the name of long_press_repeat_time (was long_press_rep_time) 34c545e
CI and tests
ci(esp): fix push to the component registry on tag e529230
Others
v8.3.4 15 December 2022
New Features
Fixes
fix(rt-thread): sync rt-thread v5.0.0 rt_align 3864
fix(draw): SDL2 gradient support #3848 3856
fix(esp.cmake): add demos and examples 3784
fix(indev): fix scrolling on transformed objects 84cf05d
fix(style): add the missing support for pct pivot in tranasform style properties c8e584f
fix(flex): be sure obj->w_layout and h_layout can't be set at the same time c4c4007
fix(chart): fix very dense bar charts bb2c2ac
fix(draw): handle LV_COLOR_DEPTH == 1 too in lv_draw_sw_transform bd11ad8
fix(example): fix warnings 1e3ca25
fix(benchmark): fix warnings 1ed026c
fix(draw): fix text color with sub pixel rendering and BGR order e050f5c
fix(meter): fix setting part_draw_dsc.id in needle img drawing 716e5e2
fix(gridnav): fix stucking in pressed state with encoder ad56dfa
fix(darw): add back the disappeared antialiasing=0 support 2c17b28
fix(msg): fix typos in API by adding wrappers 41fa416
fix(draw): fix transformation accuracy e06f03d
fix(style): remove the redundant define of LV_GRADIENT_MAX_STOPS 903e94b
demo(benchmark): fix lv_label_set_text_fmt format strings ae38258
demo(benchmark): fix warning 1173dcb
v8.3.3 06 October 2022
v8.3.3 is the same as v8.3.2. It was released only because the version number was set incorrectly in lvgl.h.
v8.3.2 27 September 2022
Fixes
fix(fragment): fixed child fragment event dispatch 3683
fix(sdl): clear streaming/target texture with FillRect 3682
fix(sdl): transformation with alpha (#3576) 3678
fix(draw_sw): fix image cache to access the freed stack space 3584
fix(style): use compile time prop_cnt for const styles 3609
fix(demo): can not found lvgl.h file 3477
fix(ci) checkout lv_micropython release/v8 branch 3524
fix(canvas): fix clipéping on transformation b884aba
fix(draw): allow drawing outline with LV_DRAW_COMPLEX == 0 too ece3495
fix(colorwheel): fix updating color when using lv_colorwheel_set_hsv d59bba1
fix(slider): find the nearest value on click instead of floor dfd14fa
fix(draw): fix border drawing with thick borders d5b2a9b
fix(refr): fix true double double buffering logic with transparent screens 8b605cc
fix(group): be sure obj is removed from its current group in lv_group_add_obj 5156ee0
fix(style): add missing invalidation in lv_obj_remove_local_style_prop a0515ba
Docs
CI and tests
ci: protect test.c with #if LV_BUILD_TEST be485d7
Others
v8.3.1 25 July 2022
Fixes
Examples
Docs
v8.3.0 6 July 2022
Overview
Layers Support transforming (zoom and rotate) any widgets and their children drawn by LVGL. To do this LVGL renders the transformed widgets into a layer and draws that layer as an image applying all the transformations. Layers are also used when opa (not bg_opa, border_opa, etc) and blend_mode are set. This way nested objects are blended as one layer to avoid color bleeding. See more here.
inherit and initial style properties Besides setting "normal values" for style properties now you can set them to inherit (inherit the parent's value) and initial (set the system default). See more here
NXP-PXP and VGLITE GPU support The support for NXP GPUs are added again
Color font support You can use emojis and images in texts with this great new features. See more here.
ARM2D GPU support Get support for Arm's Microcontroller 2D Graphics Acceleration, e.g. Helium based acceleration, DMA-350 based acceleration etc.
PubSub messaging A publisher-subscriber based messaging system is added to make communication between components easier. See more here.
Pinyin IME Add support for Pinyin IME Chinese input. See more here.
render_start_cb A new callback is added to lv_disp_drv_t to indicate when the rendering starts. It's useful to make synchronization, e.g. wait for a TE signal.
New Features
feat(ime_pinyin): add API to support 9-key input mode 3447
feat(font): add font placeholder drawing configuration 3446
feat(fsdrv): add posix lseek() error checking 3444
feat(misc): add asynchronous call function cancellation function 3439
feat(ime_pinyin): add API to use Pinyin IME(Chinese input) 3408
feat(style) add 'inherit' and 'initial' CSS properties 3390
feat(porting): add flushing control to the template 3384
feat(anim): add deleted callback (#3279) 3295
feat(cmsis-pack): monthly update for May 3394
feat(textarea): make it possible to customize the bullet character 3388
feat(disp): add a temporary invalidation disable interface 3378
feat(group): add edge callbacks when trying to move focus past beginning or end 3374
feat(benchmark): make lvgl render at the highest frame rate 3352
feat(rt-thread): allow users to control refresh period in the lvgl thread 3375
feat(cmsis-pack): Monthly update for May (alpha) 3359
feat(demos): add a callback for benchmark 3353
feat(gpu): Update lv_gpu_arm2d with new features 3340
feat(draw): improve acceleration for LV_IMG_CF_ALPHA_8BIT 3337
feat(anim): add the function of getting global animation refresher timer 3331
feat(demo): add Weighted FPS and Opa speed log output 3326
feat(gpu): Update gpu arm 2d 3320
feat(cmsis-pack): Monthly update for April 3300
feat(fsdrv) fix issues for win32 backends 3284
feat(cmake-build): Option to allow building shared libraries. 3278
feat(hal): add render_start_cb to disp_drv 3274
feat(cmsis-pack): monthly update for April (v1.0.3-alpha) 3271
feat(benchmark): add trace output for running a specific scenario 3245
feat(env_support): cmsis pack monthly update 3209
feat(tabview): support vertical scrolling 3184
feat(span): add an interface for setting the number of lines 3200
feat(indev): add possibility to enable/disable all input devices at once 3179
feat(font): add imgfont - can be used to add emojis to label/span 3160
feat(gpu): add gpu arm2d 3162
feat(dma2d): add lv_draw_stm32_dma2d_buffer_copy function 3147
feat(disp): add screen out animations 3081
feat(menu): make menu widget more compatible with encoder 3061
feat(label): added animation style property to apply it to circular scrolling animation of label widget 3128
feat(script): add pre-commit configuration for code formatting 3092
feat(refr): prevents dirty areas from being modified during rendering 3107
feat(log): improve lv_log and add log the result from lv_demo_benchmark 3084
feat(fragment): add fragment manager (a UI Controller concept) 2940
feat(porting): add a macro lv_run_timer_handler_in_period to simplify porting 3063
feat(gpu): reattach nxp pxp vglite accelerators(#3322) 029eef7
feat(draw): support transforming widgets and improfe sw transform 318146a
feat(msg): add publisher-subscriber messaging 79a29d7
feat(benchmark): add an API to run specific scene (#3089) 305ad00
feat(gpu): add SWM341 gpu support (synwit) 07b7eea
feat(arc): add lv_arc_align_obj_to_angle and lv_arc_rotate_obj_to_angle a76bb70
feat(draw): add draw_ctx->buffer_copy d034511
feat(dropdown): add lv_dropdown_get_option_index 9997fb0
feat(tabview) add API to rename tab. 2c9695a
feat(indev): send LV_EVENT_PRESS_LOST on release with wait_until_release cc18518
feat(style) add 'inherit' and 'initial' CSS properties (#3390) 9a48de0
feat(draw): improve acceleration for LV_IMG_CF_ALPHA_8BIT (#3337) 8d3c41d
feat(label): added animation style property to apply it to circular scrolling animation of label widget (#3128) 340d45c
feat(gridnav): add lv_gridnav_set_focused b6d2daa
Performance
Fixes
fix(draw): conflict with external ALIGN define 3336
fix(arc): fix bug with LV_ARC_MODE_REVERSE (#3417) 3418
fix(fragment): memory leak of fragments #3438 3442
fix(draw): solve memory leaking issue 3437
fix(gridnav) correct logic in find_last_focusable 3423
fix(examples) correct comment in slider example 3419
fix(sdl): add transformation support for the SDL backend 3403
fix(bmp): fix with LV_COLOR_16_SWAP 3412
fix(sdl): fix LRU, reported in #3402 3404
fix(draw) avoid use-after-free when drawing arcs 3399
fix(subpx): fix subpixel rendering font is not displaying bug 3387
fix(style): reset style lookup table after gc sweep/lv_deinit 3385
fix(benchmark): fix the issue that wrong scene number is used 3372
fix(draw): fix colour supports for indexed and alpha-only 3371
fix(mem): fix TLSF returning the wrong pointer when the requested size is too large 3325
fix(demo): fix warning. 3344
fix(config): add LV_GPU_SDL_LRU_SIZE 3348
feat(draw): improve acceleration for LV_IMG_CF_ALPHA_8BIT 3337
fix(txt): fix returned value of lv_txt_iso8859_1_next(…, NULL) 3338
fix(benchmark): remove redundant string for the small screens 3335
fix(chart): fix accessing uninitialized point_area 3327
fix(config): add LV_LAYER_SIMPLE_BUF_SIZE to Kconfig 3312
fix(config): Keep the sequence of widget in order 3314
fix(config): fix typo in LV_USE_PERF_MONITOR and LV_USE_MEM_MONITOR 3313
fix(refr): initializing row_cnt is to silence the warning 3309
fix(meter): fix typo 3308
fix(draw): update Makefiles 3303
fix(lodepng): fix NULL pointer access 3307
fix(Kconfig): change the type of LV_FS_STDIO_LETTER from string to int 3282
fix(demo): fix Wformat warning 3290
fix(snapshot): add missing ASSERT checks 3292
fix(Kconfig): Add LV_USE_GRIDNAV and LV_USE_FRAGMENT to Kconfig 3270
fix(msgbox): do not execute init obj when obj == NULL 3264
fix(menu): use LV_ASSERT_MALLOC check for new_node 3263
fix(canvas):image cache may expire after set canvas's buff 3267
fix(obj_style): prevent access to class null pointer 3252
fix(png): fix possible memory leak when decoding fails 3249
fix(libs): fix possible buffer underflow caused by extension matching 3250
fix(fs): track multiple directory handles with win32 backends 3243
fix(png): use LV_IMG_CF_TRUE_COLOR_ALPHA instead of LV_IMG_CF_RAW_ALPHA 3212
fix(Keil-AC5): slience warnings in Keil-AC5 3221
fix(meter): fix infinite loop caused by loop variable type mismatch 3232
fix(chart): remove invalid decision branches 3231
fix(gradient): assert before dividing by 0 3228
fix(calendar): fix infinite loop caused by loop variable type mismatch 3230
fix(flex): assert before dividing by 0 3237
fix(hal): fix LV_ASSERT_MALLOC wrong placement 3236
fix(disp): fix missing null pointer judgment 3238
fix(obj_class): fix possible memory leak when the default disp is NULL 3235
fix(draw_sw_letter): fix incorrect use of sizeof for a pointer 3234
fix(indev): fix null pointer access caused by typo 3229
fix(event): remove invalid decision branches 3233
fix(draw_mask): remove invalid decision branches 3225
fix(spinbox): remove invalid judgment 3227
fix(gradient): remove invalid decision branches 3226
fix(txt): return 0 if letter_uni is out of range 3224
fix(calendar): fix possible array access out of bounds 3223
fix(style): remove useless null pointer judgment 3222
fix(obj): scrolling exception when use lv_obj_set_parent() 3210
fix(libs): fix memcmp memory access overflow 3205
fix(png): fix possible file leaks 3204
fix(docs): rename task-handler.md to timer-handler.md 3203
fix(lru): Fix use of undefined variables 3181
fix(rt-thread): Sconscript use LOCAL_CFLAGS to replace LOCAL_CCFLAGS 3196
fix(make) make files under draw/gpu 3202
fix(docs-CN):fix broken links to docs in dir get-started 3195
fix broken links to docs in dir get-started 3190
fix(indev): fix warning about formatting uint32_t with %d 3193
fix(Kconfig): move LV_USE_IMGFONT to others menu 3176
fix(draw): src_buf_tmp will be NULL when LV_DRAW_COMPLEX is '0' 3163
fix(span): align the baselines 3164
fix(menu): fix crash on delete 3154
fix(Kconfig): add missing LV_USE_THEME_MONO 3146
fix(demo/stress): remove the unused assets 3139
fix(jpg): swap high and low bytes when macro LV_COLOR_16_SWAP is 1 3138
fix(script): in lv_conf_internal fix some widget dependencies when using Kconfig 3119
fix(demo): minor fix for benchmark 3114
fix(misc): in lv_map() handle if maximum value less than minimum value 3113
fix(extra): adjust image decoder initialization order 3085
fix(chart): optimize chart invalidation 3028
fix(refr): fix performance monitor NULL pointer access 3105
fix(misc): Remove duplicate declaration of _lv_log_add. 3103
fix(gridnav): get key code from the actual event 3101
fix(draw_rect): delete STDC_VERSION to ensure C++ compatibility 3099
fix(font):draw placeholder if get_glyph_dsc() returns false 3000
fix(conf): work around GCC bug 3082
fix(fsdrv): replacing sprintf with lv_snprintf for safety 3079
fix(cmsis-pack): add PIDX for cmsis-pack 3064
feat(gpu): add SWM341 gpu support (synwit) 07b7eea
fix(fs): fix cached read and add unit test for lv_fs 98660a8
fix(table): invalidate only the changed cell 306fa19
fix(draw): handle non BLEND_MODE_NORMAL for ARGB drawing 9ac8ce6
fix(draw): revert handling of style_opa on not MAIN parts 51a7a61
fix(draw): clip the bg img to the rectangle's area in lv_draw_sw_rect 77d726e
fix(obj): fix LV_OBJ_FLAG_OVERFLOW_VISIBLE c742f2c
fix(scroll): do not fire scroll begin/end event on every scroll step 25ce6e3
fix(indev): do not send keys to objects in disabled state b0a46c4
fix(disp): make lv_screen_load work better with lv_screen_load_anim and auto_del = true 52287fd
fix(draw): create intermediate layer for blend modes too 8b15007
fix(group): in lv_group_remove() fix if the object to focus is deleted 72cb683
fix(draw): be sure angle values are in the correct range e624b90
fix(scroll): send LV_EVENT_SCROLL_BEGIN/END with no animation too 777fe1e
fix(arc): fix arc image drawing issue 7153e3f
fix(refr): fix memory write out of bounds issue 13c99fc
fix(gif): fix rare issue when drawing the gif's background b1e2c06
fix(chart): fix misaligned horizontal tick lines on bar charts 4572a0c
fix(font): use 0 width for non printable characters 7cf5709
revert(group): 72cb683c799f65cd4fbae22dafc3a35c123bb66b b7b22c1
fix(keyboard): don't show popovers on map change ac202e7
fix(refr): consider masks with LV_OBJ_FLAG_OVERFLOW_VISIBLE a7f9dfa
fix(draw): fix the calculation of the transformed coordinates 76de7c6
fix(style): fix heap use after free with transition styles d9ae58b
fix(tabview, tileview): fix scrolling 22854ff
fix(draw): fix disp_bg_img drawing dea75d9
fix(textarea): fix max length handling 127d8e8
fix(btnmatrix): fix extra draw size calculation to not clip shadow 7ada130
fix(indev): scroll_ throw_vect cannot converge to 0 when vect is negative e5c11f1
fix(theme): make the basic theme even more simpler 62d6f3c
fix(color): color mix rounding error 523062b
fix(style): _lv_style_prop_lookup_flags tell all flags for LV_STYLE_PROP_ANY e53f602
fix(list): use for icon b171f7d
fix(layout): fix the handling of FLOATING children 48728a7
fix(style): make color filter inherited 5546b9d
fix(spinbox): set its default width in its class 3d92972
fix: fix warning 6c00552
fix(draw): fix transformations on subdivided areas cbff8e8
fix(slider): fix left knob in ranged mode 17f5e0a
fix(Kconfig): allow unchecking LV_CONF_SKIP f3a07a3
fix(style): fix using width for both width and height in radius transition 6acbdaa
fix(dropdown): fix scrolling when options are CENTER aligned e651383
fix(grid): fix dead branch 46bf27d
fix(hal): disable driver->screen_transp by default regardless to LV_COLOR_SCREEN_TRANSP ff7204e
fix(theme): fix mono theme init 5ec6694
fix(bmp) fix typo in BPP condition cbc38af
fix(theme): in the basic theme show the textarea cursor only in focuses state bb03fb1
fix(draw): fix img recolor 23eecce
fix(theme) add disabled style to textarea in the default theme 00f6759
fix(meter): improve the precision of tick line drawing 0255c6d
fix(gpu): fix warning with NXP GPU 6be43b8
fix(color): compensate rounding error during blending 42d9c07
fix(examples) use type-safe function for retrieving event param 71d535d
fix(draw) ensure variable is initialized to avoid warning 276f28a
feat(draw): improve acceleration for LV_IMG_CF_ALPHA_8BIT (#3337) 8d3c41d
fix(spinbox): rename lv_spinbox_set_pos to lv_spinbox_set_cursor_pos a99eb6b
fix(layout): use uint16_t LV_LAYOUT_FLEX/GRID c596a36
fix(event) avoid using a boolean as a pointer 06fff4b
fix(theme): properly disable transitions if LV_THEME_DEFAULT_TRANSITION_TIME==0 242112b
fix(scroll): fix scroll to view to the left 7c74f65
fix(fs): mark the read cache as invalid by default 54f9987
fix(menu): fix crash on delete (#3154) a6c4c13
fix(roller): fix unexpected jump in infinite mode 18f2d78
fix(conf): work around GCC bug (#3082) c6b34bc
Examples
example(ime_pinyin): improved lv_example_ime_pinyin_1 3428
example(imgfont): fix lvgl.h include path 3405
example(btnmatrix): update lv_example_btnmatrix_2 to explicitly check which part is drawn 6b2eac1
example(slider): make lv_example_slider_3 work with dark theme too 4a766c5
example(span): avoid ambiguous meaning 7bb09e3
demo(benchmark): add LV_DEMO_BENCHMARK_RGB565A8 option afaa8c9
Docs
docs(indev): add comment in input device part 3422
docs(slider) mention that VALUE_CHANGED is not sent on release 3397
docs(readme): add version portuguese brazilian 3349
docs(pc-simulator): add MDK with FastModel 3318
docs(intro): update for v8.2.0 3316
docs(readme) update link to the PlatformIO Registry 3296
docs(gesture): fix typo lv_indev_act() -> lv_indev_get_act() 3291
docs(scroll) add information about scroll coordinates 3088
docs(msgbox) fix typo 3095
docs(scroll): use LV_DIR_VER instead of LV_DIR_TOP 3066
docs: rearrange the get-started section 8a81532
docs: add section for renderers and gpus 378aaa6
docs collapse APIs by default ebd20af
docs(images): fix notes about breaking change inf v8.2 9a1e385
docs(sim): add link to qt-creator 88bbef1
docs(chart): describe how to set the space between columns 746917d
docs(README): fix broken link c2c44c6
docs(examples) avoid redirects when loading examples d367bb7
docs(gesture): describe how prevent sending events after a gesture 65db5c9
docs(get-started): add quick-overview to the index 91ebf81
docs(others): add imgfont to the index 656a0e5
CI and tests
ci(slider): add unit test 3198
test(line): add unit tests for line widget 3104
test(table): replicate issue when reducing table cells 3121
test(textarea): add unit test 3074
test(table): add unit tests 3040
ci(docs) replace use of sed with proper configuration variables 1816fa5
ci add Makefile test ea79cee
test(mem) add test for #3324 9700664
test(img): fix image error diff handler 48d87e1
ci update docs builder to work with Python 3.10 a3d66c9
ci make sure LVGL assertions cause tests to fail b83c5aa
ci remove formatting comment d345f76
ci don't run workflows twice on PRs fcc1152
ci bump test timeout to 30 seconds [skip ci] 85e3e23
ci limit tests to 15 seconds 003f18f
ci(makefile) fix typo in GitHub action a101e70
ci(switch): fix mem leak test 8481e3a
ci(stale) bump action version 5977eef
ci use GCC problem matcher on ARM tests as well 9fcefe5
v8.2.0 31 January 2022
Overview
Among many fixes and minor updates these are the most important features in v8.2.0: - Abstract render layer to make it easier to attach external draw engines - Add LV_FLAD_OVERFLOW_VISIBLE. If enabled the children of an object won't be clipped to the boundary of the object - Add ffmpeg decoder support to play videos and open a wide variety of image formats - Add font fallback support - Add gradient dithering support - Add "monkey test" - Add cmsis-pack support - Add Grid navigation (lv_gridnav)
The GPU support for NXP microcontrollers is still not updated to the new draw architecture. See #3052
Breaking Changes
Architectural
arch(draw): separate SW renderer to allow replacing it 2803
arch: merge lv_demos 5414652
arch(sdl): migrated to use new backend architecture 2840
arch(env): move rt-thread into env_support folder 3025
arch(env): arch(env): move the cmake folder into the env_support folder 773d50f
arch(env): move the zephyr folder into the env_support folder 4bd1e7e
New Features
feat(cmsis-pack): prepare for lvgl v8.2.0 release 3062
feat(gridnav): add lv_gridnav 2911
feat: update the cmsis-pack to 0.8.3 3021
feat(sdl): support rounded images 3012
feat(cmsis-pack): add cmsis-pack support 2993
feat(event): add preprocessing and stop bubbling features for events 3003
feat(draw): add gradient dithering support 2872
feat(symbols): add guards to LV_SYMBOL_* to allow redefining them 2973
feat(obj): subdivide LV_OBJ_FLAG_SCROLL_CHAIN into …CHAIN_HOR and …CHAIN_VER 2961
feat(draw): add draw_bg callback to draw_ctx #2934 2935
feat(docs): add Chinese readme 2919
feat(txt): add used_width parameter to _lv_txt_get_next_line() 2898
feat(others) add monkey test 2885
feat(rlottie): add animation control options 2857
feat(lv_hal_indev): add missing lv_indev_delete() 2854
feat(freetype): optimize memory allocation 2849
feat(Kconfig): add FreeType config 2846
feat(widgets): add menu widget 2603
feat(refr): add reset function for FPS statistics 2832
feat(Kconfig): add monitor position configuration 2834
feat(examples) add micropython versions of the external library examples 2762
feat(freetype): support bold and italic 2824
feat(font) add fallback support and mem. font load option to FreeType 2796
feat(lib) add ffmpeg video and image decoder 2805
feat(obj): add LV_OBJ_FLAG_OVERFLOW_VISIBLE e7ac0e4
feat(scrollbar): add more control over scrollbar paddings 4197b2f
feat(dropdown): keep the list on open/close for simpler styling 9d3134b
feat(qrcode) use destructor instead of lv_qrcode_delete() 318edd8
feat(disp) allow decoupling the disp_refr timer 85cc84a
feat(obj): add lv_obj_get_event_user_data() 53ececc
feat(obj) add LV_OBJ_FLAG_SCROLL_WITH_ARROW 70327bd
feat(slider): consider ext_click_area on the knob with LV_OBJ_FLAG_ADV_HITTEST 9d3fb41
Performance
Fixes
fix(micropython) update examples for new API 3059
fix: increase default value of LV_MEM_SIZE for lv_demo_widgets #3057 3058
fix(cmsis-pack): fix issue #3032 3056
fix(porting): add missing function prototypes 3054
fix(kconfig): add missing default values 3050
fix(canvas): force canvas to use sw draw 3045
fix(rt-thread): use ARCH_CPU_BIG_ENDIAN to replace RT_USING_BIG_ENDIAN 3044
fix(gradient): general cleanup and fix for alignment issues 3036
fix(draw): rendering issues for vertical gradient with and without dithering 3034
fix uninitialized variable 3033
fix(lru): lower dependency for standard C functions 3024
fix(env_support): move cmsis-pack to env_support folder 3026
fix(doc): full covering opacity is 255, not 256 3022
fix uninitialized variables 3023
fix various issues for esp32 3007
fix(sdl): fix clipped image drawing 2992
fix(draw): missed bg_color renaming in the draw function 3002
fix(porting): fix typo and an unmatched prototype 2998
fix(conf) add missing LV_LOG_LEVEL default definition 2996
fix(refr): crash if full_refresh = 1 2999
fix(Kconfig): adapt to lvgl's built-in demos 2989
fix(Makefile): compilation errors 2944
fix(rlottie): fix variable name 2971
fix(group): in lv_group_delete() remove group from indev (lvgl#2963) 2964
fix(obj): old parent's scroll is not updated in lv_obj_set_parent() 2965
fix(fatfs) add missing cast 2969
fix(snapshot) fix memory leak 2970
fix(examples) move event callback registration outside loop in lv_example_event_3 2959
fix(canvas): off by one error in size check in lv_canvas_copy_buf 2950
fix(indev) add braces to avoid compiler warning 2947
fix: fix parameter order in function prototypes 2929
fix(style):add const qualifier for lv_style_get_prop() 2933
fix(dropdown): in lv_dropdown_get_selected_str handle if there are no options 2925
fix: lv_deinit/lv_init crash or hang 2910
fix(rt-thread): improve the structure 2912
fix: removed string format warnings for int32_t and uint32_t 2924
fix(lv_fs_win32): add missing include of <stdio.h> 2918
fix: use unsigned integer literal for bit shifing. 2888
chore(lottie) move rlottie_capi.h to lv_rlottie.c 2902
fix(qrcodegen) add brackets around assert calls 2897
fix(list) guard image creation with LV_USE_IMG 2881
fix(snapshot): make fake display size big enough to avoid align issue. 2883
fix(sdl) correct makefile 2884
fix(draw): fix set_px_cb memory write overflow crash. 2882
fix(freetype): fix memset error 2877
fix(span): fix align and break word 2861
fix(refr): swap buffers only on the last area with direct mode 2867
fix(arc) free memory when drawing full-circle arc 2869
fix(indev): update lv_indev_drv_update to free the read_timer 2850
fix(draw): fix memory access out of bounds when using blend subtract 2860
fix(chart) add lv_chart_refresh() to the functions which modify the data 2841
fix(conf) mismatched macro judgment 2843
fix(ffmpeg): when disabled LV_FFMPEG_AV_DUMP_FORMAT makes av_log quiet 2838
fix(rt-thread): fix a bug of log 2811
fix(log): to allow printf and custom_print_cb to work at same time 2837
fix(keyboard): add missing functions 2835
fix(checkbox) remove unnecessary events 2829
fix(qrcode): replace memcpy() with lv_memcpy() and delete useless macros 2827
fix(font) improve builtin font source files generation process 2825
fix(CMake) split CMakeLists.txt, add options, includes and dependencies 2753
fix(obj): make lv_obj_fade_in/out use the current opa as start value 2819
fix(qrcode):minimize margins as much as possible 2804
fix(scripts): switch all scripts to python3 2820
fix(event): event_send_core crash in special case. 2807
fix(Kconfig) remove duplicate LV_BUILD_EXAMPLES configuration 2813
fix(obj): in obj event use the current target instead of target 2785
fix(draw_label): radius Mask doesn't work in Specific condition 2784
fix(draw_mask): will crash if get_width/height < 0 2793
fix(theme) make the basic theme really basic a369f18
fix(arc): fix knob invalidation 345f688
fix(theme): add arc, spinner and colorwheel to basic theme adc218a
fix(conf) define LV_LOG_TRACE_… to 0 in lv_conf_internal.h to avoid warnings 305284c
fix(draw): consider opa and clip corner on bg_img d51aea4
fix(draw): add grad_cache_mem to GC_ROOTs 138db9c
fix(bar, slider): fix shadow drawing on short indicators 364ca3c
fix(theme): fix theme initialization issue introduced in 6e0072479 d231644
fix(draw): add lv_draw_sw_bg 49642d3
fix(draw) border_draw crash is special case 075831a
fix(theme): fix crash in lv_theme_basic_init ca5f04c
fix(draw): fix indexed image drawing 5a0dbcc
fix(roller): clip overflowing text 5709528
fix(align) fix LV_SIZE_CONTENT size calculation with not LEFT or TOP alignment 9c67642
fix(draw): further bg_img draw fixes 81bfb76
fix(btnmatrix): keep the selected button even on release d47cd1d
fix(sw): make knob size calculation more intuitive 5ec532d
fix(switch): make knob height calculation similar to slider 0921dfc
fix(span): explicitly set span->txt to the return value of lv_mem_realloc(#3005) a9a6cb8
fix(example): update LVGL_Arduino.ino d79283c
fix(draw) simplify how outline_pad is compnesated 81d8be1
fix(obj) make LV_OBJ_FLAG_SCROLL_CHAIN part of the enum instead of define f8d8856
fix(label): dot not add dots if the label height > 1 font line height 4d61f38
fix(event): crash if an object was deleted in an event 9810920
fix(build) fix sdl build with make 43729d1
fix(config): fix anonymous choice 71c739c
chore(docs): fix lv_list_add_text a5fbf22
fix(png) check png magic number to be sure it's a png image 1092550
fix(btnmatrix): fix crash if an empty btnmatrix is pressed 2392f58
fix(mem/perf monitor): fix issue introduced in #2910 0788d91
fix(layout) fix layout recalculation trigger in lv_obj_add/clear_fleg ee65410
fix(obj) fix lv_obj_fade_in 4931384
fix(draw): fix clipping children to parent 5c98ac8
fix: remove symlinks to be accepted as an Ardunio library 6701d36
chore: fix typos in FATFS config 74091c4
fix(refr): fix missed buffer switch in double full-screen buffer + direct_mode 731ef5a
chore(qrcode): fix warnings e9d7080
docs(event): tell to not adjust widgets in draw events 933d67f
fix(table, chart): fix memory leaks 8d52de1
fix(event): handle object deletion in indev->fedback_cb bfc8edf
fix(roller): snap on press lost fa9340c
fix(dropdown) be sure the list is the top object on the screen cb7fc2b
fix(img) fix invalidation issue on transformations d5ede0e
fix(obj) fix comments of lv_obj_set_pos/x/y b9a5078
Examples
Docs
docs(demos) update information to reflect new layout 3029
docs(porting): remove duplicated content 2984
docs(display) fix typo 2946
docs(get-started) add introduction for Tasmota and Berry 2874
docs fix spelling, parameter descriptions, comments, etc 2865
docs: spelling fixes 2828
docs(style) minor style fix 2818
docs(porting/display) fix formatting 2812
docs(roadmap) update 084439e
docs(widgets) fix edit links 7ed1a56
docs(contributing) update commit message format 1cd851f
docs(porting): add more details about adding lvgl to your project 6ce7348
docs(indev): add description about gestures 2719862
docs(style): describe const styles 28ffae8
docs(faq): add "LVGL doesn't start, nothing is drawn on the display" section 0388d92
docs add demos 02a6614
docs(fs): update fs interface description to the latest API 285e6b3
docs(format) let wrap 4bf49a8
docs(imgbtn) fix typo d792c5f
docs(porting) clarify that displays must be registered before input devices 1c64b78
docs(event) fix lv_event_get_original_target vs lv_event_get_current_target cdd5128
docs(events) rename LV_EVENT_APPLY to LV_EVENT_READY (#2791) bf6837f
docs(gpu): link style properties and boxing model 6266851
docs(gesture): clarify gesture triggering with scrolling e3b43ee
docs(contributing): remove the mentioning of the dev branch 00d4ef3
docs(bar) fix default range eeee48b
docs(event): tell to not adjust widgets in draw events 933d67f
docs(switch) improve wording b4986ab
docs(font) fix example to match v8 2f80896
CI and tests
test(bar): add unit tests 2845
test(switch): add initial unit test 2794
test(demo) add tests for widget and stress demos 3bd6ad8
test(dropdown) fix to pass again 918b3de
test add support for using system heap 446b1eb
ci remove formatting request workflow 6de89e4
ci initial support for cross-architecture tests 7008770
ci create handler for formatting requests 7af7849
test(style) add test for gradient da8f345
test(event) add test for #2886 51ef9c2
ci add workflow to check code formatting a2b555e
ci attempt to speed up cross tests 80408f7
ci apply my updates to the verify-formatting action 02f02fa
ci: add arduino linter action f79b00c
ci update action be9722c
ci more formatting action updates 1f6037c
ci disable LeakSanitizer on dockerized tests c9e1927
ci one last try at this for tonight dddafae
ci try alternate checkout mechanism cb3de30
test(style) fix compile error ba083df
test(template) simplify _test_template.c b279f63
ci force ccache to be saved every time a7c590f
ci switch to codecov v2 6b84155
ci more debugging for formatting action 2f8e4bc
ci inline apt-get commands 90e2b9f
ci(micropython) use ESP-IDF 4.4 b34fe9e
ci add 5k stack limit 4122dda
ci force use of ccache in PATH 6de3fa8
ci add back stack usage check at 4 kilobytes 89135d6
ci temporarily disable stack usage check 1900c21
ci(cross) use python3 instead of python df7eaa0
ci use specific version tag 59b4769
ci fix check style action 5bb3686
ci fix typo in formatting action d1ccbf6
ci test formatting action 065d821
ci(micropython) switch to newer GCC action 1fa7257
ci(style) force color on diff to help highlight whitespace changes 04f47ea
ci(cross) install build-essential 772f219
ci force pushing to upstream branch 8277f78
ci ensure lvgl-bot is used to make commits 9fcf52a
v8.1.0 10 November 2021
Overview
v8.1 is a minor release, so besides many fixes it contains a lot of new features too.
Some of the most important features are - Built in support for SDL based GPU drawing - Much faster circle drawing in the software renderer - Several 3rd party libraries are merged directly into LVGL. - Add LVGL as an RT-Thread and ESP32 component
Breaking Changes
Warning
feat(calendar): add the header directly into the calendar widget 2e08f80
Architectural
arch add small 3rd party libs to lvgl 2569
New Features
feat(display) add direct_mode drawing mode 2460
feat(conf): make LV_MEM_BUF_MAX_NUM configurable 2747
feat(disp): add non-fullscreen display utilities 2724
feat(rlottie) add LVGL-Rlottie interface as 3rd party lib 2700
feat(rtthread): prepare for porting the device-driver of rt-thread 2719
feat(fsdrv) add driver based on Win32 API 2701
feat(span) indent supports percent for fix and break mode 2693
feat(rt-thread): implement rt-thread sconscirpt 2674
feat(lv_spinbox) support both right-to-left and left-to-right digit steps when clicking encoder button 2644
feat add support for rt-thread RTOS 2660
feat(disp): Enable rendering to display subsection 2583
feat(keyboard): add user-defined modes 2651
feat(event) add LV_EVENT_CHILD_CREATED/DELETED 2618
feat(btnmatrix/keyboard): add option to show popovers on button press 2537
feat(msgbox) add a content area for custom content 2561
feat(tests): Include debug information to test builds 2568
feat(drawing) hardware accelerated rendering by SDL2 2484
feat(msgbox): omit title label unless needed 2539
feat(msgbox): add function to get selected button index 2538
feat(make) add lvgl interface target for micropython 2529
feat(obj) add lv_obj_move_to_index(obj, index), renamed lv_obj_get_child_id(obj) to lv_obj_get_index(obj) 2514
feat(obj) add lv_obj_swap() function 2461
feat(mem) LV_MEM_POOL_ALLOC 2458
feat(switch) add smooth animation when changing state 2442
feat(anim) add interface for handling lv_anim user data. 2415
feat(obj) add lv_is_initialized 2402
feat(obj) Backport keypad and encoder scrolling from v7 lv_page to v8 lv_obj 2390
feat(snapshot) add API to take snapshot for object 2353
feat(anim) add anim timeline 2309
feat(span) Add missing spangroup functions 2379
feat(img) add img_size property 2284
feat(calendar) improve MicroPython example 2366
feat(spinbox ) add function to set cursor to specific position 2314
feat(timer) check if lv_tick_inc is called aa6641a
feat(event, widgets) improve the parameter of LV_EVENT_DRAW_PART_BEGIN/END 88c4859
feat(docs) improvements to examples 4b8c73a
feat(obj) send LV_EVENT_DRAW_PART_BEGIN/END for MAIN and SCROLLBAR parts b203167
feat(led) send LV_EVENT_DRAW_PART_BEGIN/END fcd4aa3
feat(chart) send LV_EVENT_DRAW_PART_BEGIN/END before/after the division line drawing section. e0ae2aa
feat(tests) upload coverage to codecov 4fff99d
feat(conf) add better check for Kconfig default f8fe536
feat(draw) add LV_BLEND_MODE_MULTIPLY cc78ef4
feat(test) add assert for screenshot compare 2f7a005
feat(event) pass the scroll animation to LV_EVENT_SCROLL_BEGIN ca54ecf
feat(obj) place the scrollbar to the left with RTL base dir. 906448e
feat(log) allow overwriting LV_LOG_… macros 17b8a76
feat(arc) add support to LV_OBJ_FLAG_ADV_HITTEST dfa4f5c
feat(event) add LV_SCREEN_(UN)LOAD_START 7bae9e3
feat(obj) add lv_obj_delete_delayed() c6a2e15
feat(docs) add view on GitHub link a716ac6
feat(event) add LV_EVENT_SCREEN_LOADED/UNLOADED events ee5369e
feat(textarea) remove the need of lv_textarea_set_align 56ebb1a
feat(rt-thread): support LVGL projects with GCC/Keil(AC5)/Keil(AC6)/IAR 32d33fe
feat(docs) lazy load individual examples as well 918d948
feat: add LV_USE_MEM_PERF/MONITOR_POS acd0f4f
feat(canvas) add lv_canvas_set_px_opa b3b3ffc
feat(event) add lv_obj_remove_event_cb_with_user_data 4eddeb3
feat(obj) add lv_obj_get_x/y_aligned 98bc1fe
Performance
perf(draw) reimplement circle drawing algorithms 2374
perf(anim_timeline) add lv_anim_timeline_stop() 2411
perf(obj) remove lv_obj_get_child_cnt from cycle limit checks ebb9ce9
perf(draw) reimplement rectangle drawing algorithms 5b3d3dc
perf(draw) ignore masks if they don't affect the current draw area a842791
perf(refresh) optimize where to wait for lv_disp_flush_ready with 2 buffers d0172f1
perf(draw) speed up additive blending 3abe517
Fixes
fix(bidi): add weak characters to the previous strong character's run 2777
fix(draw_img): radius mask doesn't work in specific condition 2786
fix(border_post): ignore bg_img_opa draw when draw border_post 2788
fix(refresh) switch to portable format specifiers 2781
fix(stm32) Mark unused variable in stm32 DMA2D driver 2782
fix(conf): Make LV_COLOR_MIX_ROUND_OFS configurable 2766
fix(misc): correct the comment and code style 2769
fix(draw_map) use existing variables instead function calls 2776
fix(draw_img): fix typos in API comments 2773
fix(draw_img):radius Mask doesn't work in Specific condition 2775
fix(proto) Remove redundant prototype declarations 2771
fix(conf) better support bool option from Kconfign 2555
fix(draw_border):draw error if radius == 0 and parent clip_corner == true 2764
fix(msgbox) add declaration for lv_msgbox_content_class 2761
fix(core) add L suffix to enums to ensure 16-bit compatibility 2760
fix(anim): add lv_anim_get_playtime 2745
fix(area) minor fixes 2749
fix(mem): ALIGN_MASK should equal 0x3 on 32bit platform 2748
fix(template) prototype error 2755
fix(anim): remove time_orig from lv_anim_t 2744
fix(draw_rect):bottom border lost if enable clip_corner 2742
fix(anim) and improvement 2738
fix(draw border):border draw error if border width > radius 2739
fix(fsdrv): remove the seek call in fs_open 2736
fix(fsdrv): skip the path format if LV_FS_xxx_PATH not defined 2726
fix: mark unused variable with LV_UNUSED(xxx) instead of (void)xxx 2734
fix(fsdrv): fix typo error in commit 752fba34f677ad73aee 2732
fix(fsdrv): return error in case of the read/write failure 2729
fix(refr) silence compiler warning due to integer type mismatch 2722
fix(fs): fix the off-by-one error in the path function 2725
fix(timer): remove the code duplication in lv_timer_exec 2708
fix(async): remove the wrong comment from lv_async_call 2707
fix(kconfig): change CONFIG_LV_THEME_DEFAULT_FONT to CONFIG_LV_FONT_DEFAULT 2703
fix add MP support for LVGL 3rd party libraries 2666
fix(png) memory leak for sjpg and use lv_mem_… in lv_png 2704
fix(gif) unified whence and remove off_t 2690
fix(rt-thread): include the rt-thread configuration header file 2692
fix(rt-thread): fix the ci error 2691
fix(fsdrv) minor fs issue 2682
fix(hal) fix typos and wording in docs for lv_hal_indev.h 2685
fix(hal tick): add precompile !LV_TICK_CUSTOM for global variables and lv_tick_inc() 2675
fix(anim_timeline) avoid calling lv_anim_delete(NULL, NULL) 2628
fix(kconfig) sync Kconfig with the latest lv_conf_template.h 2662
fix(log) reduce the stack usage in log function 2649
fix(conf) make a better style alignment in lv_conf_internal.h 2652
fix(span) eliminate warning in lv_get_snippet_cnt() 2659
fix(config): remove the nonexistent Kconfig 2654
fix(Kconfig): add LV_MEM_ADDR config 2653
fix(log): replace printf with fwrite to save the stack size 2655
fix typos 2634
fix LV_FORMAT_ATTRIBUTE fix for gnu > 4.4 2631
fix(meter) make lv_meter_indicator_type_t of type uint8_t 2632
fix(span):crash if span->txt = "" 2616
fix(disp) set default theme also for non-default displays 2596
fix(label):LONG_DOT mode crash if text Utf-8 encode > 1 2591
fix( example) in lv_example_scroll_3.py float_btn should only be created once 2602
fix lv_deinit when LV_USE_GPU_SDL is enabled 2598
fix add missing LV_ASSERT_OBJ checks 2575
fix(lv_conf_internal_gen.py) formatting fixes on the generated file 2542
fix(span) opa bug 2584
fix(snapshot) snapshot is affected by parent's style because of wrong coords 2579
fix(label):make draw area contain ext_draw_size 2587
fix(btnmatrix): make ORed values work correctly with lv_btnmatrix_has_btn_ctrl 2571
fix compiling of examples when cmake is used 2572
fix(lv_textarea) fix crash while delete non-ascii character in pwd mode 2549
fix(lv_log.h): remove the duplicated semicolon from LV_LOG_xxx 2544
fix(zoom) multiplication overflow on 16-bit platforms 2536
fix(printf) use __has_include for more accurate limits information 2532
fix(font) add assert in lv_font.c if the font is NULL 2533
fix(lv_types.h): remove c/c++ compiler version check 2525
fix(lv_utils.c): remove the unneeded header inclusion 2526
fix(Kconfig) fix the comment in LV_THEME_DEFAULT_DARK 2524
fix(sprintf) add format string for rp2 port 2512
fix(span) fix some bugs (overflow,decor,align) 2518
fix(color) Bad cast in lv_color_mix() caused UB with 16bpp or less 2509
fix(imgbtn) displayed incorrect when the coordinate is negative 2501
fix(event) be sure to move all elements in copy "lv_obj_remove_event_cb" 2492
fix(draw) use correct pointer in lv_draw_mask assertion 2483
feat(mem) LV_MEM_POOL_ALLOC 2458
fix(cmake) require 'main' for Micropython 2444
fix(docs) add static keyword to driver declaration 2452
fix(build) remove main component dependency 2420
fix circle drawing algorithms 2413
fix(docs) wrong spelling of words in pictures 2409
fix(chart) fixed point-following cursor during vertical scroll in charts 2400
fix(chart) fixed cursor positioning with large Y rescaling without LV_USE_LARGE_COORD 2399
fix(grid.h) typos 2395
fix(anim_timeline) heap use after free 2394
fix(snapshot) add missing import on MicroPython example 2389
fix(disp) Fix assert failure in lv_disp_remove 2382
fix(span) modify the underline position 2376
fix(color) remove extraneous _LV_COLOR_MAKE_TYPE_HELPER 2372
fix(spinner) should not be clickable 2373
fix(workflow) silence SDL warning for MicroPython 2367
fix (span) fill LV_EVENT_GET_SELF_SIZE 2360
fix(workflow) change MicroPython workflow to use master 2358
fix(disp) fix memory leak in lv_disp_remove 2355
fix(lv_obj.h)typos 2350
fix(obj) delete useless type conversion 2343
fix(lv_obj_scroll.h) typos 2345
fix(txt) enhance the function of break_chars 2327
fix(vglite): update for v8 e3e3eea
fix(widgets) use lv_obj_class for all the widgets 3fb8baf
fix(refr) reduce the nesting level in lv_refr_area 2df1282
fix(pxp): update for v8 8a2a4a1
fix(obj) move clean ups from lv_obj_del to lv_obj_destructor b063937
fix (draw) fix arc bg image drawing with full arcs c3b6c6d
fix(pxp): update RTOS macro for SDK 2.10 00c3eb1
fix(textarea) style update in oneline mode + improve sroll to cursor 60d9a5e
feat(led) send LV_EVENT_DRAW_PART_BEGIN/END fcd4aa3
fix warnings introduced by 3fb8baf5 e302403
fix(roller) fix partial redraw of the selected area 6bc40f8
fix(flex) fix layout update and invalidation issues 5bd82b0
fix(indev) focus on objects on release instead of press 76a8293
fix tests 449952e
fix(dropdown) forget the selected option on encoder longpress e66b935
fix(obj) improve how the focusing indev is determined a04f2de
fix(workflow) speed up MicroPython workflow 38ad5d5
fix(test) do not including anything in test files when not running tests 9043860
fix tests 36b9db3
fix(scroll) fire LV_EVENT_SCROLL_BEGIN in the same spot for both axes b158932
fix(btnmatrix) fix button invalidation on focus change 77cedfa
fix(tlsf) do not use <assert.h> c9745b9
fix(template) include lvgl.h in lv_port_*_template.c files 0ae15bd
fix(docs) add margin for example description b5f632e
fix(imgbtn) use the correct src in LV_EVENT_GET_SELF_SIZE 04c515a
fix(color) remove extraneous cast for 8-bit color 157534c
fix(workflow) use same Unix port variant for MicroPython submodules ac68b10
fix(README) improve grammar de81889
fix(printf) skip defining attribute if pycparser is used ee9bbea
fix(README) spelling correction 41869f2
fix(color) overflow with 16-bit color depth fe6d8d7
fix(docs) consider an example to be visible over a wider area 145a0fa
fix(codecov) disable uploading coverage for pull requests 27d88de
fix(arc) disable LV_OBJ_FLAG_SCROLL_CHAIN by default f172eb3
fix(template) update lv_objx_template to v8 38bb8af
fix(align) avoid circular references with LV_SIZE_CONTENT 038b781
fix(draw) with additive blending with 32-bit color depth 786db2a
fix(arc) fix arc invalidation again 5ced080
fix(align) fix lv_obj_align_to 93b38e9
fix(scroll) keep the scroll position on object deleted 52edbb4
fix(dropdown) handle LV_KEY_ENTER 8a50edd
fix various minor warnings 924bc75
fix(textarea) various cursor drawing fixes 273a0eb
fix(label) consider base dir lv_label_get_letter_pos in special cases 6df5122
fix(imgbtn) add lv_imgbtn_set_state 26e15fa
fix(printf) add (int) casts to log messages to avoid warnings on %d d9d3f27
fix(test) silence make 7610d38
fix(test) silence make 37fd9d8
fix(calendar) update the MP example 0bab4a7
fix(scroll) fix scroll_area_into_view with objects larger than the parent 5240fdd
fix(msgbox) handle NULL btn map parameter 769c4a3
fix (scroll) do not send unnecessary scroll end events 3ce5226
fix(obj_pos) consider all alignments in content size calculation but only if x and y = 0 5b27ebb
fix(img decoder) add error handling if the dsc->data = NULL d0c1c67
fix(txt): skip basic arabic vowel characters when processing conjunction 5b54800
fix(typo) rename LV_OBJ_FLAG_SNAPABLE to LV_OBJ_FLAG_SNAPPABLE e697807
fix(lv_printf.h): to eliminate the errors in Keil and IAR f6d7dc7
fix(draw) fix horizontal gradient drawing 4c034e5
fix(dropdown) use LV_EVENT_READY/CANCEL on list open/close 4dd1d56
fix(table) clip overflowing content 8c15933
fix(test) add #if guard to exclude test related files from the build c12a22e
fix(test) add #if guard to exclude test related files from the build fc364a4
fix(freetype) fix underline calculation 76c8ee6
fix(style) refresh ext. draw pad for padding and bg img 37a5d0c
fix(draw) underflow in subpixel font drawing 6d5ac70
fix(scrollbar) hide the scrollbar if the scrollble flag is removed 188a946
fix(color): minor fixes(#2767) a4978d0
fix(group) skip object if an of the parents is hidden 5799c10
fix(obj) fix size invalidation issue on padding change 33ba722
fix(label) do not bidi process text in lv_label_ins_text e95efc1
fix(refr) set disp_drv->draw_buf->flushing_last correctly with sw rotation c514bdd
fix(draw) fix drawing small arcs 8081599
fix(chart) invalidation with LV_CHART_UPDATE_MODE_SHIFT d61617c
fix(build) fix micropython build error 54338f6
fix(draw) fix border width of simple (radius=0, no masking) borders 20f1867
fix(calendar) fix calculation today and highlighted day 8f0b5ab
fix(style) initialize colors to black instead of zero 524f8dd
fix(sjpg) remove unnecessary typedefs c2d93f7
fix(label) fix clipped italic letters 2efa6dc
fix(draw) shadow drawing with large shadow width f810265
fix(dropdown) add missing invalidations 33b5d4a
fix(dropdown) adjust the handling of keys sent to the dropdown e41c507
fix(disp) be sure the pending scr load animation is finished in lv_screen_load_anim eb6ae52
fix(color) fox color premult precision with 16-bit color depth f334226
fix(obj_pos) save x,y even if the object is on a layout a9b660c
fix(scrollbar) hide the scrollbar if the scrollable flag is removed d9c6ad0
fix(dropdown) fix list position with RTL base direction 79edb37
fix(obj) fix lv_obj_align_to with RTL base direction 531afcc
fix(chart) fix sending LV_EVENT_DRAW_PART_BEGIN/END for the cursor 34b8cd9
fix(arduino) fix the prototype of my_touchpad_read in the LVGL_Arduino.ino 1a62f7a
fix(checkbox) consider the bg border when positioning the indicator a39dac9
fix(dropdown) send LV_EVENT_VALUE_CHANGED to allow styling of the list dae7039
fix(group) fix infinite loop bdce0bc
fix(keyboard) use LVGL heap functions instead of POSIX b20a706
fix(blend) fix green channel with additive blending 78158f0
fix(btnmatrix) do not show pressed, focused or focus key states on disabled buttons 3df2a74
fix(font) handle the last pixel of the glyphs in font loader correctly fa98989
fix(table) fix an off-by-one issue in self size calculation ea2545a
fix shadowed variable e209260
fix shadowed variable df60018
fix(chart) be sure the chart doesn't remain scrolled out on zoom out ad5b1bd
fix(docs) commit to meta repo as lvgl-bot instead of actual commit author f0e8549
fix(table) invalidate the table on cell value change cb3692e
fix(group) allow refocusing objects 1520208
fix(tabview) fix with left and right tabs 17c5744
fix(msgbox) create modals on top layer instead of act screen 5cf6303
fix(theme) show disabled state on buttons of btnmatrix, msgbox and keyboard 0be582b
fix(label) update lv_label_get_letter_pos to work with LV_BASE_DIR_AUTO too 580e05a
fix(label) fix in lv_label_get_letter_pos with when pos==line_start 58f3f56
fix(gif) replace printf statement with LVGL logging 56f62b8
fix(docs) add fsdrv back 64527a5
fix(table) remove unnecessary invalidation on pressing 6f90f9c
fix(chart) draw line chart indicator (bullet) fba37a3
fix(anim) return the first anim if exec_cb is NULL in lv_anim_get() fb7ea10
fix(label) fix lv_label_get_letter_on with BIDI enabled 192419e
fix(checkbox) add missing invalidations bb39e9d
fix(draw) fix gradient calculation of the rectangle is clipped 13e3470
fix(chart) fix typo in 655f42b8 6118d63
fix(example) fix lv_example_chart_2 89081c2
fix(calendar) fix the position calculation today ad05e19
fix(tick) minor optimization on lv_tick_inc call test b4305df
fix(docs) use let instead of const for variable which gets changed 3cf5751
fix(theme) fix the switch style in the default theme 0c0dc8e
fix(tlsf) undef printf before define-ing it cc935b8
fix(msgbox) prevent the buttons being wider than the msgbox 73e036b
fix(chart) don't draw series lines with < 1 points 655f42b
fix(tests) remove src/test_runners when cleaning 6726b0f
fix(label) remove duplicated lv_obj_refresh_self_size a070ecf
fix(colorwheel) disable LV_OBJ_FLAG_SCROLL_CHAIN by default 48d1c29
fix(obj) do not set the child's position in lv_obj_set_parent d89a5fb
feat: add LV_USE_MEM_PERF/MONITOR_POS acd0f4f
fix(scroll) in scroll to view functions respect disabled LV_OBJ_FLAG_SCROLLABLE 9318e02
fix(flex) remove unused variable 747b6a2
feat(canvas) add lv_canvas_set_px_opa b3b3ffc
fix(textarea) allow using cursor with not full bg_opa c9d3965
fix(txt) _lv_txt_get_next_line return 0 on empty texts 82f3fbc
fix(btnmatrix) always update row_cnt 86012ae
fix(scroll) minor fixes on obj scroll handling a4128a8
fix(table) consider border width for cell positions f2987b6
fix(log) be sure LV_LOG_… is not empty if logs are disabled 47734c4
fix(arc) fix LV_ARC_MODE_REVERSE df3b969
fix(obj) in lv_obj_move_to_index() do not send LV_EVENT_CHILD_CHANGED on all changed child 32e8276
feat(event) add lv_obj_remove_event_cb_with_user_data 4eddeb3
fix(draw) fix shadow drawing with radius=0 4250e3c
fix(msgbox) directly store the pointer of all children eb5eaa3
fix(draw) use the filtered colors in lv_obj_init_draw_xxx_dsc() functions 78725f2
fix(arc) fix full arc invalidation 98b9ce5
chore(led) expose LV_LED_BRIGHT_MIN/MAX in led.h 3f18b23
fix(group) keep the focused object in lv_group_swap_obj a997147
fix(obj) swap objects in the group too in lv_obj_swap() 52c7558
fix(theme) use opacity on button's shadow in the default theme c5342e9
fix(win) enable clip_corner and border_post by default 493ace3
fix(draw) fix rectangle drawing with clip_corner enabled 01237da
fix(arc) fix other invalidation issues b0a7337
feat(obj) add lv_obj_get_x/y_aligned 98bc1fe
fix(calendar) fix incorrect highlight of today adbac52
fix(arc, meter) fix invalidation in special cases 0f14f49
fix(canvas) invalidate the image on delete a1b362c
fix(msgbox) return the correct pointer from lv_msgbox_get_text 50ea6fb
fix(bidi) fix the handling of LV_BASE_DIR_AUTO in several widgets 7672847
fix(build) remove main component dependency (#2420) f2c2393
fix(meter) fix inner mask usage c28c146
fix(log) fix warning for empty log macros 4dba8df
fix(theme) improve button focus of keyboard 2504b7e
fix(tabview) send LV_EVENT_VALUE_CHANGED only once 933d282
fix(obj style) fix children reposition if the parent's padding changes. 57cf661
fix(template) update indev template for v8 d8a3d3d
fix(obj) detecting which indev sent LV_EVENT_FOCUS f03d4b8
fix(roller) adjust the size of the selected area correctly 01d1c87
fix(imgbtn) consider width==LV_SIZE_CONTENT if only mid. img is set 7e49f48
fix(flex) fix NULL pointer dereference 97ba12f
fix(obj, switch) do not send LV_EVENT_VALUE_CHANGED twice 713b39e
fix(coords) fix using large coordinates 428db94
fix(chart) fix crash if no series are added c728b5c
fix(meter) fix needle image invalidation 54d8e81
fix(mem) add lv_ prefix to tlsf functions and types 0d52b59
fix(pxp) change LV_COLOR_TRANSP to LV_COLOR_CHROMA_KEY to v8 compatibility 81f3068
Examples
example(chart) add area chart example 2507
example(anim) add demo to use cubic-bezier 2393
feat(example) add lv_example_chart_9.py 2604
feat(example) add lv_example_chart_8.py 2611
feat(example) chart example to add gap between the old and new data 2565
feat(example) add lv example list 2 2545
feat(examples) add MicroPython version of lv_example_anim_3 and allow loading roller font dynamically 2412
feat(examples) added MP version of second tabview example 2347
fix(example):format codes 2731
fix(example) minor fixes in lv_example_chart_2.py 2601
feat(example) add text with gradient example 462fbcb
fix(example_roller_3) mask free param bug 2553
fix(examples) don't compile assets unless needed 2523
fix(example) scroll example sqort types 2498
fix(examples) join usage 2425
fix(examples) add missing lv.PART.INDICATOR 2423
fix(examples) use lv.grid_fr for MicroPython 2419
fix(examples) remove symlinks 2406
fix(examples) import 'u'-prefixed versions of modules 2365
fix(examples) remove cast in MP scripts 2354
fix(examples) fix MicroPython examples and run the examples with CI 2339
fix(examples) align with renamed Micropython APIs 2338
fix(examples) adjust canvas example for MicroPython API change 52d1c2e
fix(example) revert test code 77e2c1f
feat(example) add checkbox example for radio buttons d089b36
feat(example) add text with gradient example 462fbcb
fix(examples) exclude example animimg images if animimg is disabled 4d7d306
fix(example) adjust the object sizes in lv_example_anim_timeline_1() 71a10e4
fix(example) revert text code from lv_example_checkbox_2 28e9593
Docs
docs: fix typo 2765
docs(colorwheel) fix old API names 2643
docs(display) fix typo 2624
docs add static for lv_indev_drv_t 2605
docs(animimg) add to extra widgets index and fix example 2610
docs(animimg) Add missing animation image page 2609
docs(group) remove reference to lv_cont which is gone in v8 2580
docs(style) use correct API name for local styles 2550
docs(all) Proofread, fix typos and add clarifications in confusing areas 2528
docs(flex) update flex.md 2517
docs more spelling fixes 2499
docs fix typo: arae -> area 2488
docs(readme) fix typo: hosing → hosting. 2477
docs update company name and year 2476
docs fix typos 2472
docs(overview) fix typo 2465
docs(bar) fix typos in widget examples 2463
docs(overview) fix typo 2454
docs(chart) typos 2427
docs(layout) add internal padding paragraph to grid and flex layout p… 2392
docs(porting) fix indev example to remove v7 bool return 2381
docs(README) fix broken references 2329
docs(grid) typo fix 2310
docs(color) language fixes 2302
docs(lv_obj_style) update add_style and remove_style function headers 2287
docs(contributing) add commit message format section 3668e54
docs minor typo fixes 84c0086
docs(arduino) update some outdated information 9a77102
docs(keyboard) add note regarding event handler 255f729
docs minor CSS fix acbb680
docs minor CSS improvements 7f367d6
docs(keyboard) change LV_KEYBOARD_MODE_NUM to LV_KEYBOARD_MODE_NUMBER 6e83d37
docs(textarea) clarify the use of text selection bg_color 65673c0
docs list all examples on one page 25acaf4
docs(examples) add MicroPython examples 6f37c4f
docs(filesystem) update to v8 7971ade
docs(style) complete the description of style the properties 55e8846
docs example list fixes cd600d1
docs(style) complete the description of style the properties ff087da
docs(README) update links, examples, and add services menu 3471bd1
docs(color) update colors' docs 9056b5e
docs update lv_fs.h, layer and align.png to v8 31ab062
docs(color) minor fix ac8f453
docs update changelog c386110
docs(extra) add extra/README.md 8cd504d
docs add lazy load to the iframes of the examples c49e830
docs(os) add example and clarify some points d996453
docs(rlottie) fix build error ce0b564
docs include paths in libs f5f9562
docs libs fixes 8e7bba6
docs(obj) add comment lv_obj_get_x/y/width/height about postponed layout recalculation 533066e
docs fix example list ed77ed1
docs describe the options to include or skip lv_conf.h 174ef66
docs(overview) spelling fixes d2efb8c
docs(table) describe keypad/encoder navigation 749d1b3
docs update CHANGELOG 0f8bc18
docs(image) mention the frame_id parameter of lv_img_decoder_open 2433732
docs(arduino) update how to use the examples 06962a5
docs(rlottie): fix typo in commands ed9169c
docs(indev, layer) update lv_obj_set_click() to lv_obj_add_flag() bcd99e8
docs update version support table e6e98ab
docs fix example list c6f99ad
docs(examples) add <hr/> to better separate examples a1b59e3
docs(checkbox) update the comment lv_checkbox_set_text_static 3e0ddd0
docs(grid) fix missing article da0c97a
docs(display) fix grammar in one spot 5dbea7d
docs(style) fix typo in style property descriptions 4e3b860
docs(flex) fix typo in flex grow section e5fafc4
docs(indev) clarify purpose of continue_reading flag 706f81e
docs(license) update company name and year 7c1eb00
docs fix typo 8ab8064
docs add libs to the main index 1a8fed5
docs add btn_example.png 8731ef1
docs(btnmatrix) fix typo with set_all/clear_all parameters 51a82a1
CI and tests
ci(micropython) fix git fetch 2757
test(txt) initial unit tests and general code cleanup/fixes 2623
test add setUp and tearDown to test template 2648
test(arc) add initial unit tests 2617
ci(micropython) add ESP32 and STM32 tests 2629
test(checkbox) add initial tests 2551
test(ci) build and run tests in parallel. 2515
ci(tests) run tests using ctest 2503
ci(tests) add dependency on GNU parallel 2510
ci(tests) use common script to install development prereqs 2504
test convert Makefile to CMake 2495
test Refactor unit test scripts. 2473
test(font_loader) migrate the existing font loader test bc5b3be
test add build test again, add dropdown test, integrate gcov and gvocr e35b1d0
test(dropdown) add tess for keypad and encoder 4143b80
test add keypad and encoder emulators e536bb6
tests add mouse emulator 2ba810b
tests add README b765643
test add move tests to test_cases and test_runners directories e9e010a
test fix CI build error c38cae2
ci add config for 8bpp 3eacc59
test move more source files to src folder 3672f87
test update CI for the new tests a3898b9
test cleaned up report folder b9b4ba5
test fix build error 61cda59
test(font_loader) migrate the existing font loader test d6dbbaa
test add move tests to test_cases and test_runners directories d2e735e
test add 3rd party libs to all tests and also fix them 7a95fa9
test(arc): add test case for adv_hittest e83df6f
ci create check for lv_conf_internal.h 5d8285e
test fix warning and docs build error d908f31
ci(micropython) add rp2 port 1ab5c96
test(dropdown) remove dummy test case 9fb98da
ci(codecov) hide statuses on commits for now 0b7be77
ci(docs) run apt-get update before installation f215174
test fix LV_USE_LOG_LEVEL -> LV_LOG_LEVEL typo 80f0b09
ci(micropython) add GCC problem matcher ab316a0
test convert Makefile to CMake (#2495) 9c846ee
Others
chore: replace (void)xxx with LV_UNUSED(xxx) 2779
animation improvement 2743
Improve LV_FORMAT_ATTRIBUTE usage 2673
Fix typo in commands to build rlottie 2723
delete(.gitmodules): delete .gitmodules 2718
lv_obj_draw_part_dsc_t.text_length added 2694
expose LV_COLOR_DEPTH and LV_COLOR_16_SWAP in micropython 2679
sync lvgl/lv_fs_if 2676
build: always enable CMake install rule in default configuration 2636
build: fix lib name in CMakeLists 2641
build: remove use of 'project' keyword in CMakeLists 2640
build add install rule to CMakeList.txt 2621
Fixed row size calculation 2633
arch add small 3rd party libs to lvgl 2569
Kconfig: Add missing options 2597
Espressif IDF component manager 2521
chore(btnmatrix) removed unnecessary semicolon 2520
Update README.md 2516
Corrected a function name in obj.md 2511
Simple spelling fixes 2496
added lv_obj_move_up() and lv_obj_move_down() 2467
Fix buf name error for "lv_port_disp_template.c" and optimize the arduino example 2475
Fix two examples in the docs with new v8 api 2486
kconfig: minor fix for default dark theme option 2426
doc(table) update doc on cell merging 2397
added example lv_example_anim_timeline_1.py 2387
refactor(printf) add printf-like function attribute to _lv_txt_set_text_vfmt and lv_label_set_text_fmt 2332
Update win.md 2352
Nxp pxp vglite v8 dev 2313
More Snapable –> Snappable replacements 2304
Spelling and other language fixes to documentation 2293
Update quick-overview.md 2295
adding micropython examples 2286
format run code-formtter.sh d67dd94
Update ROADMAP.md 2b1ae3c
Create .codecov.yml e53aa82
refactor(examples) drop JS-specific code from header.py ef41450
make test run on master and release/v8.* 227402a
Update release.yml 0838f12
refactor(examples) drop usys import from header.py ad1f91a
Update ROADMAP.md a38fcf2
Revert "feat(conf) add better check for Kconfig default" a5793c7
remove temporary test file a958c29
start to implement release/patch 1626a0c
chore(indev) minor formatting 79ab3d2
add basic patch release script 1c3ecf1
chore(example) minor improvements on lv_example_list_2 bb6d6b7
tool: add changelog_gen.sh to automatically generate changelog 6d95521
update version numbers to v8.1.0-dev 8691611
chore(test) improve prints ea8bed3
chore(test) improve prints 0c4bca0
chore: update lv_conf_internal.h 41c2dd1
chore(format) lv_conf_template.h minor formatting 3c86d77
chore(docs) always deploy master to docs/master as well 6d05692
Update CHANGELOG.md 48fd73d
Fix compile errors 6c956cc
Update textarea.md 6d8799f
chore(assert) add warning about higher memory usage if LV_USE_ASSERT_STYLE is enabled 33e4330
Update page.html 9573bab
chore(docs) force docs rebuild 4a0f413
Fix typo error in color.md 572880c
Update arc.md 2a9b9e6
Update index.rst 9ce2c77
chore(docs) minor formatting on example's GitHub link 75209e8
chore(lv_conf_template) fix spelling mistake 9d134a9
Update CHANGELOG.md 8472360
chore(stale) disable on forks 93c1303
Revert "fix(tests) remove src/test_runners when cleaning" ae15a1b
style fix usage of clang-format directives 2122583
Revert "fix(indev) focus on objects on release instead of press" f61b2ca
v8.0.2 (16.07.2021)
fix(theme) improve button focus of keyboard
fix(tabview) send LV_EVENT_VALUE_CHANGED only once
fix(imgbtn) use the correct src in LV_EVENT_GET_SELF_SIZE
fix(color) remove extraneous cast for 8-bit color
fix(obj style) fix children reposition if the parent's padding changes.
fix(color) remove extraneous _LV_COLOR_MAKE_TYPE_HELPER (#2372)
fix(spinner) should not be clickable (#2373)
fix(obj) improve how the focusing indev is determined
fix(template) update indev template for v8
fix(printf) skip defining attribute if pycparser is used
refactor(printf) add printf-like function attribute to _lv_txt_set_text_vfmt and lv_label_set_text_fmt (#2332)
fix(template) include lvgl.h in lv_port_*_template.c files
fix(obj) detecting which indev sent LV_EVENT_FOCUS
fix (span) fill LV_EVENT_GET_SELF_SIZE (#2360)
fix(arc) disable LV_OBJ_FLAG_SCROLL_CHAIN by default
fix (draw) fix arc bg image drawing with full arcs
fix(disp) fix memory leak in lv_disp_remove (#2355)
fix warnings introduced by 3fb8baf5
fix(widgets) use lv_obj_class for all the widgets
fix(obj) move clean ups from lv_obj_del to lv_obj_destructor
fix(roller) fix partial redraw of the selected area
fix(roller) adjust the size of the selected area correctly
fix(obj) delete useless type conversion (#2343)
fix(lv_obj_scroll.h) typos (#2345)
fix(scroll) fire LV_EVENT_SCROLL_BEGIN in the same spot for both axes
fix(btnmatrix) fix button invalidation on focus change
fix(textarea) style update in oneline mode + improve scroll to cursor
fix(tlsf) do not use <assert.h>
fix(imgbtn) consider width==LV_SIZE_CONTENT if only mid. img is set
fix(refr) reduce the nesting level in lv_refr_area
fix(txt) enhance the function of break_chars (#2327)
fix(pxp): update RTOS macro for SDK 2.10
fix(vglite): update for v8
fix(pxp): update for v8
fix(flex) fix layout update and invalidation issues
fix(flex) fix NULL pointer dereference
fix(obj, switch) do not send LV_EVENT_VALUE_CHANGED twice
fix(color) overflow with 16-bit color depth
fix(coords) fix using large coordinates
fix(chart) fix crash if no series are added
fix(chart) invalidation with LV_CHART_UPDATE_MODE_SHIFT
fix(align) fix lv_obj_align_to G
fix(table) invalidate the table on cell value change
fix(label) remove duplicated lv_obj_refresh_self_size
fix(draw) underflow in subpixel font drawing
fix (scroll) do not send unnecessary scroll end events
v8.0.1 (14.06.2021)
docs(filesystem) update to v8 7971ade4
fix(msgbox) create modals on top layer instead of act screen 5cf6303e
fix(colorwheel) disable LV_OBJ_FLAG_SCROLL_CHAIN by default 48d1c292
docs(grid) typo fix (#2310) 69d109d2
fix(arduino) fix the prototype of my_touchpad_read in the LVGL_Arduino.ino 1a62f7a6
fix(meter) fix needle image invalidation 54d8e817
fix(mem) add lv_ prefix to tlsf functions and types 0d52b59c
fix(calendar) fix the position calculation today ad05e196
fix(typo) rename LV_OBJ_FLAG_SNAPABLE to LV_OBJ_FLAG_SNAPPABLE e697807c
docs(color) language fixes (#2302) 07ecc9f1
fix(tick) minor optimization on lv_tick_inc call test b4305df5
Spelling and other language fixes to documentation (#2293) d0aaacaf
fix(theme) show disabled state on buttons of btnmatrix, msgbox and keyboard 0be582b3
fix(scroll) keep the scroll position on object deleted 52edbb46
fix(msgbox) handle NULL btn map parameter 769c4a30
fix(group) allow refocusing objects 1520208b
docs(overview) spelling fixes d2efb8c6
Merge branch 'master' of <https://github.com/lvgl/lvgl 45960838
feat(timer) check if lv_tick_inc is called aa6641a6
feat(docs) add view on GitHub link a716ac6e
fix(theme) fix the switch style in the default theme 0c0dc8ea
docs fix typo 8ab80645
Merge branch 'master' of <https://github.com/lvgl/lvgl e796448f
feat(event) pass the scroll animation to LV_EVENT_SCROLL_BEGIN ca54ecfe
fix(tabview) fix with left and right tabs 17c57449
chore(docs) force docs rebuild 4a0f4139
chore(docs) always deploy master to docs/master as well 6d05692d
fix(template) update lv_objx_template to v8 38bb8afc
docs(extra) add extra/README.md 8cd504d5
Update CHANGELOG.md 48fd73d2
Update quick-overview.md (#2295) 5616471c
fix(pxp) change LV_COLOR_TRANSP to LV_COLOR_CHROMA_KEY to v8 compatibility 81f3068d
adding micropython examples (#2286) c60ed68e
docs(color) minor fix ac8f4534
fix(example) revert test code 77e2c1ff
fix(draw) with additive blending with 32-bit color depth 786db2af
docs(color) update colors' docs 9056b5ee
Merge branch 'master' of <https://github.com/lvgl/lvgl a711a1dd
perf(refresh) optimize where to wait for lv_disp_flush_ready with 2 buffers d0172f14
docs(lv_obj_style) update add_style and remove_style function headers (#2287) 60f7bcbf
fix memory leak of spangroup (#2285) 33e0926a
fix make lv_img_cache.h public because cache invalidation is public 38ebcd81
Merge branch 'master' of <https://github.com/lvgl/lvgl 2b292495
fix(btnmatrix) fix focus event handling 3b58ef14
Merge pull request #2280 from lvgl/dependabot/pip/docs/urllib3-1.26.5 a2f45b26
fix(label) calculating the clip area 57e211cc
chore(deps): bump urllib3 from 1.26.4 to 1.26.5 in /docs b2f77dfc
fix(docs) add docs about the default group 29bfe604
v8.0.0 (01.06.2021)
v8.0 brings many new features like simplified and more powerful scrolling, new layouts inspired by CSS Flexbox and Grid, simplified and improved widgets, more powerful events, hookable drawing, and more.
v8 is a major change and therefore it's not backward compatible with v7.
Directory structure
The lv_ prefix is removed from the folder names
The docs is moved to the lvgl repository
The examples are moved to the lvgl repository
Create an src/extra folder for complex widgets:
It makes the core LVGL leaner
In extra we can have a lot and specific widgets
Good place for contributions
Widget changes
lv_cont removed, layout features are moved to lv_obj
lv_page removed, scroll features are moved to lv_obj
lv_objmask the same can be achieved by events
lv_meter added as the union of lv_linemeter and lv_gauge
lv_span new widget mimicking HTML <span>
lv_animing new widget for simple slideshow animations
many minor changes and improvements
New scrolling
Support "elastic" scrolling when scrolled in
Support scroll chaining among any objects types (not only lv_pagess)
Remove lv_drag. Similar effect can be achieved by setting the position in LV_EVENT_PRESSING
Add snapping
Add snap stop to scroll max 1 snap point
New layouts
CSS Grid-like layout support
CSS Flexbox-like layout support
Styles
Optimize and simplify styles
State is saved in the object instead of the style property
Object size and position can be set in styles too
Events
Allow adding multiple events to an object
A user_data can be attached to the added events
Driver changes
lv_disp_drv_t, lv_indev_drv_t, lv_fs_drv_t needs to be static
...disp_buf... is renamed to draw_buf. See an initialization example here.
No partial update if two screen sized buffers are set
disp_drv->full_refresh = 1 makes always the whole display redraw.
hor_res and ver_res need to be set in disp_drv
indev_read_cb returns void. To indicate that there is more that to read set data->continue_reading = 1 in the read_cb
Other changes
Remove the copy parameter from create functions
Simplified File system interface API
Use a more generic inheritance
The built-in themes are reworked
lv_obj_align now saved the alignment and realigns the object automatically but can't be used to align to other than the parent
lv_obj_align_to can align to an object but doesn't save the alignment
lv_pct(x) can be used to set the size and position in percentage
There are many other changes in widgets that are not detailed here. Please refer to the documentation of the widgets.
New release policy
We will follow Release branches with GitLab flow
Minor releases are expected in every 3-4 month
master will always contain the latest changes
Migrating from v7 to v8
First and foremost, create a new lv_conf.h based on lv_conf_template.h.
To try the new version it's recommended to use a simulator project and see the examples.
When migrating your project to v8
Update the drivers are described above
Update the styles
Update the events
Use the new layouts instead of lv_cont features
Use lv_obj instead of lv_page
See the changes in Colors
The other parts are mainly minor renames and refactoring. See the functions' documentation for descriptions.
v7.11.0 (16.03.2021)
New features
Add better screen orientation management with software rotation support
Decide text animation's direction based on base_dir (when using LV_USE_BIDI)
Bugfixes
fix(gauge) fix needle invalidation
fix(bar) correct symmetric handling for vertical sliders
v7.10.1 (16.02.2021)
Bugfixes
fix(draw) overlap outline with background to prevent aliasing artifacts
fix(indev) clear the indev's act_obj in lv_indev_reset
fix(text) fix out of bounds read in _lv_txt_get_width
fix(list) scroll list when button is focused using LV_KEY_NEXT/PREV
fix(text) improve Arabic contextual analysis by adding hyphen processing and proper handling of lam-alef sequence
fix(delete) delete animation after the children are deleted
fix(gauge) consider paddings for needle images
v7.10.0 (02.02.2021)
New features
feat(indev) allow input events to be passed to disabled objects
feat(spinbox) add inline get_step function for MicroPython support
Bugfixes
fix(btnmatrix) fix lv_btnmatrix_get_active_btn_text() when used in a group
v7.9.1 (19.01.2021)
Bugfixes
fix(cpicker) fix division by zero
fix(dropdown) fix selecting options after the last one
fix(msgbox) use the animation time provided
fix(gpu_nxp_pxp) fix incorrect define name
fix(indev) don't leave edit mode if there is only one object in the group
fix(draw_rect) fix draw pattern stack-use-after-scope error
v7.9.0 (05.01.2021)
New features
feat(chart) add lv_chart_remove_series and lv_chart_hide_series
feat(img_cache) allow disabling image caching
calendar: make get_day_of_week() public
Added support for Zephyr integration
Bugfixes
fix(draw_rect) free buffer used for arabic processing
fix(win) arabic process the title of the window
fix(dropdown) arabic process the option in lv_dropdown_add_option
fix(textarea) buffer overflow in password mode with UTF-8 characters
fix(textarea) cursor position after hiding character in password mode
fix(linemeter) draw critical lines with correct color
fix(lv_conf_internal) be sure Kconfig defines are always uppercase
fix(kconfig) handle disable sprintf float correctly.
fix(layout) stop layout after recursion threshold is reached
fix(gauge) fix redraw with image needle
v7.8.1 (15.12.2020)
Bugfixes
fix(lv_screen_load_anim) fix when multiple screens are loaded at the same time with delay
fix(page) fix LV_SCROLLBAR_MODE_DRAG
v7.8.0 (01.12.2020)
New features
make DMA2D non blocking
add unscii-16 built-in font
add KConfig
add lv_refr_get_fps_avg()
Bugfixes
fix(btnmatrix) handle arabic texts in button matrices
fix(indev) disabled object shouldn't absorb clicks but let the parent to be clicked
fix(arabic) support processing again already processed texts with _lv_txt_ap_proc
fix(textarea) support Arabic letter connections
fix(dropdown) support Arabic letter connections
fix(value_str) support Arabic letter connections in value string property
fix(indev) in LV_INDEV_TYPE_BUTTON recognize 1 cycle long presses too
fix(arc) make arc work with encoder
fix(slider) adjusting the left knob too with encoder
fix reference to LV_DRAW_BUF_MAX_NUM in lv_mem.c
fix(polygon draw) join adjacent points if they are on the same coordinate
fix(linemeter) fix invalidation when setting new value
fix(table) add missing invalidation when changing cell type
refactor(roller) rename LV_ROLLER_MODE_INIFINITE -> LV_ROLLER_MODE_INFINITE
v7.7.2 (17.11.2020)
Bugfixes
fix(draw_triangle): fix polygon/triangle drawing when the order of points is counter-clockwise
fix(btnmatrix): fix setting the same map with modified pointers
fix(arc) fix and improve arc dragging
label: Repair calculate back dot character logical error which cause infinite loop.
fix(theme_material): remove the bottom border from tabview header
fix(imgbtn) guess the closest available state with valid src
fix(spinbox) update cursor position in lv_spinbox_set_step
v7.7.1 (03.11.2020)
Bugfixes
Respect btnmatrix's one_check in lv_btnmatrix_set_btn_ctrl
Gauge: make the needle images to use the styles from LV_GAUGE_PART_PART
Group: fix in lv_group_remove_obj to handle deleting hidden objects correctly
v7.7.0 (20.10.2020)
New features
Add PXP GPU support (for NXP MCUs)
Add VG-Lite GPU support (for NXP MCUs)
Allow max. 16 cell types for table
Add lv_table_set_text_fmt()
Use margin on calendar header to set distances and padding to the size of the header
Add text_sel_bg style property
Bugfixes
Theme update to support text selection background
Fix imgbtn state change
Support RTL in table (draw columns right to left)
Support RTL in pretty layout (draw columns right to left)
Skip objects in groups if they are in disabled state
Fix dropdown selection with RTL basedirection
Fix rectangle border drawing with large width
Fix lv_win_clean()
v7.6.1 (06.10.2020)
Bugfixes
Fix BIDI support in dropdown list
Fix copying base dir in lv_obj_create
Handle sub pixel rendering in font loader
Fix transitions with style caching
Fix click focus
Fix imgbtn image switching with empty style
Material theme: do not set the text font to allow easy global font change
v7.6.0 (22.09.2020)
New features
Check whether any style property has changed on a state change to decide if any redraw is required
Bugfixes
Fix selection of options with non-ASCII letters in dropdown list
Fix font loader to support LV_FONT_FMT_TXT_LARGE
v7.5.0 (15.09.2020)
New features
Add clean_dcache_cb and lv_disp_clean_dcache to enable users to use their own cache management function
Add gpu_wait_cb to wait until the GPU is working. It allows to run CPU a wait only when the rendered data is needed.
Add 10px and 8ox built in fonts
Bugfixes
Fix unexpected DEFOCUS on lv_page when clicking to bg after the scrollable
Fix lv_obj_del and lv_obj_clean if the children list changed during deletion.
Adjust button matrix button width to include padding when spanning multiple units.
Add rounding to btnmatrix line height calculation
Add decmopr_buf to GC roots
Fix division by zero in draw_pattern (lv_draw_rect.c) if the image or letter is not found
Fix drawing images with 1 px height or width
v7.4.0 (01.09.2020)
The main new features of v7.4 are run-time font loading, style caching and arc knob with value setting by click.
New features
Add lv_font_load() function - Loads a lv_font_t object from a binary font file
Add lv_font_free() function - Frees the memory allocated by the lv_font_load() function
Add style caching to reduce access time of properties with default value
arc: add set value by click feature
arc: add LV_ARC_PART_KNOB similarly to slider
send gestures event if the object was dragged. User can check dragging with lv_indev_is_dragging(lv_indev_act()) in the event function.
Bugfixes
Fix color bleeding on border drawing
Fix using 'LV_SCROLLBAR_UNHIDE' after 'LV_SCROLLBAR_ON'
Fix cropping of last column/row if an image is zoomed
Fix zooming and rotating mosaic images
Fix deleting tabview with LEFT/RIGHT tab position
Fix btnmatrix to not send event when CLICK_TRIG = true and the cursor slid from a pressed button
Fix roller width if selected text is larger than the normal
v7.3.1 (18.08.2020)
Bugfixes
Fix drawing value string twice
Rename lv_chart_clear_serie to lv_chart_clear_series and lv_obj_align_origo to lv_obj_align_mid
Add linemeter's mirror feature again
Fix text decor (underline strikethrough) with older versions of font converter
Fix setting local style property multiple times
Add missing background drawing and radius handling to image button
Allow adding extra label to list buttons
Fix crash if lv_table_set_col_cnt is called before lv_table_set_row_cnt for the first time
Fix overflow in large image transformations
Limit extra button click area of button matrix's buttons. With large paddings it was counter-intuitive. (Gaps are mapped to button when clicked).
Fix lv_btnmatrix_set_one_check not forcing exactly one button to be checked
Fix color picker invalidation in rectangle mode
Init disabled days to gray color in calendar
v7.3.0 (04.08.2020)
New features
Add lv_task_get_next
Add lv_event_send_refresh, lv_event_send_refresh_recursive to easily send LV_EVENT_REFRESH to object
Add lv_tabview_set_tab_name() function - used to change a tab's name
Add LV_THEME_MATERIAL_FLAG_NO_TRANSITION and LV_THEME_MATERIAL_FLAG_NO_FOCUS flags
Reduce code size by adding: LV_USE_FONT_COMPRESSED and LV_FONT_USE_SUBPX and applying some optimization
Add LV_MEMCPY_MEMSET_STD to use standard memcpy and memset
Bugfixes
Do not print warning for missing glyph if its height OR width is zero.
Prevent duplicated sending of LV_EVENT_INSERT from text area
Tidy outer edges of cpicker widget.
Remove duplicated lines from lv_tabview_add_tab
btnmatrix: handle combined states of buttons (e.g. checked + disabled)
textarea: fix typo in lv_textarea_set_scrollbar_mode
gauge: fix image needle drawing
fix using freed memory in _lv_style_list_remove_style
v7.2.0 (21.07.2020)
New features
Add screen transitions with lv_screen_load_anim()
Add display background color, wallpaper and opacity. Shown when the screen is transparent. Can be used with lv_disp_set_bg_opa/color/image().
Add LV_CALENDAR_WEEK_STARTS_MONDAY
Add lv_chart_set_x_start_point() function - Set the index of the x-axis start point in the data array
Add lv_chart_set_ext_array() function - Set an external array of data points to use for the chart
Add lv_chart_set_point_id() function - Set an individual point value in the chart series directly based on index
Add lv_chart_get_x_start_point() function - Get the current index of the x-axis start point in the data array
Add lv_chart_get_point_id() function - Get an individual point value in the chart series directly based on index
Add ext_buf_assigned bit field to lv_chart_series_t structure - it's true if external buffer is assigned to series
Add lv_chart_set_series_axis() to assign series to primary or secondary axis
Add lv_chart_set_y_range() to allow setting range of secondary y-axis (based on lv_chart_set_range but extended with an axis parameter)
Allow setting different font for the selected text in lv_roller
Add theme->apply_cb to replace theme->apply_xcb to make it compatible with the MicroPython binding
Add lv_theme_set_base() to allow easy extension of built-in (or any) themes
Add lv_obj_align_x() and lv_obj_align_y() functions
Add lv_obj_align_origo_x() and lv_obj_align_origo_y() functions
Bugfixes
tileview fix navigation when not screen sized
Use 14px font by default to for better compatibility with smaller displays
linemeter fix conversation of current value to "level"
Fix drawing on right border
Set the cursor image non-clickable by default
Improve mono theme when used with keyboard or encoder
v7.1.0 (07.07.2020)
New features
Add focus_parent attribute to lv_obj
Allow using buttons in encoder input device
Add lv_btnmatrix_set/get_align capability
DMA2D: Remove dependency on ST CubeMX HAL
Added max_used propriety to lv_mem_monitor_t struct
In lv_init test if the strings are UTF-8 encoded.
Add user_data to themes
Add LV_BIG_ENDIAN_SYSTEM flag to lv_conf.h in order to fix displaying images on big endian systems.
Add inline function lv_checkbox_get_state(const lv_obj_t * cb) to extend the checkbox functionality.
Add inline function lv_checkbox_set_state(const lv_obj_t * cb, lv_btn_state_t state ) to extend the checkbox functionality.
Bugfixes
lv_img fix invalidation area when angle or zoom changes
Update the style handling to support Big endian MCUs
Change some methods to support big endian hardware.
remove use of c++ keyword 'new' in parameter of function lv_theme_set_base().
Add LV_BIG_ENDIAN_SYSTEM flag to lv_conf.h in order to fix displaying images on big endian systems.
Fix inserting chars in text area in big endian hardware.
v7.0.2 (16.06.2020)
Bugfixes
lv_textarea fix wrong cursor position when clicked after the last character
Change all text related indices from 16-bit to 32-bit integers throughout whole library. #1545
Fix gestures
Do not call set_px_cb for transparent pixel
Fix list button focus in material theme
Fix crash when a text area is cleared with the backspace of a keyboard
Add version number to lv_conf_template.h
Add log in true double buffering mode with set_px_cb
lv_dropdown: fix missing LV_EVENT_VALUE_CHANGED event when used with encoder
lv_tileview: fix if not the {0;0} tile is created first
lv_debug: restructure to allow asserting in from lv_misc too
add assert if _lv_mem_buf_get() fails
lv_textarea: fix character delete in password mode
Update LV_OPA_MIN and LV_OPA_MAX to widen the opacity processed range
lv_btnm fix sending events for hidden buttons
lv_gaguge make lv_gauge_set_angle_offset offset the labels and needles too
Fix typo in the API scrllable -> scrollable
tabview by default allow auto expanding the page only to right and bottom (#1573)
fix crash when drawing gradient to the same color
chart: fix memory leak
img: improve hit test for transformed images
v7.0.1 (01.06.2020)
Bugfixes
Make Micropython working by adding the required variables as GC_ROOT
Prefix some internal API functions with _ to reduce the API of LVGL
Fix built-in SimSun CJK font
Fix UTF-8 encoding when LV_USE_ARABIC_PERSIAN_CHARS is enabled
Fix DMA2D usage when 32 bit images directly blended
Fix lv_roller in infinite mode when used with encoder
Add lv_theme_get_color_secondary()
Add LV_COLOR_MIX_ROUND_OFS to adjust color mixing to make it compatible with the GPU
Improve DMA2D blending
Remove memcpy from lv_ll (caused issues with some optimization settings)
lv_chart fix X tick drawing
Fix vertical dashed line drawing
Some additional minor fixes and formatting
v7.0.0 (18.05.2020)
Documentation
The docs for v7 is available at <https://docs.lvgl.io/7.11/index.html
Legal changes
The name of the project is changed to LVGL and the new website is on https://lvgl.io
LVGL remains free under the same conditions (MIT license) and a company is created to manage LVGL and offer services.
New drawing system
Complete rework of LVGL's draw engine to use "masks" for more advanced and higher quality graphical effects. A possible use-case of this system is to remove the overflowing content from the rounded edges. It also allows drawing perfectly anti-aliased circles, lines, and arcs. Internally, the drawings happen by defining masks (such as rounded rectangle, line, angle). When something is drawn the currently active masks can make some pixels transparent. For example, rectangle borders are drawn by using 2 rectangle masks: one mask removes the inner part and another the outer part.
The API in this regard remained the same but some new functions were added: - lv_img_set_zoom: set image object's zoom factor - lv_img_set_angle: set image object's angle without using canvas - lv_img_set_pivot: set the pivot point of rotation
The new drawing engine brought new drawing features too. They are highlighted in the "style" section.
New style system
The old style system is replaced with a new more flexible and lightweighted one. It uses an approach similar to CSS: support cascading styles, inheriting properties and local style properties per object. As part of these updates, a lot of objects were reworked and the APIs have been changed.
more shadows options: offset and spread
gradient stop position to shift the gradient area and horizontal gradient
LV_BLEND_MODE_NORMAL/ADDITIVE/SUBTRACTIVE blending modes
clip corner: crop the content on the rounded corners
text underline and strikethrough
dashed vertical and horizontal lines (dash gap, dash_width)
outline: a border-like part drawn out of the background. Can have spacing to the background.
pattern: display and image in the middle of the background or repeat it
value display a text which is stored in the style. It can be used e.g. as a light-weighted text on buttons too.
margin: similar to padding but used to keep space outside the object
Read the Style section of the documentation to learn how the new styles system works.
GPU integration
To better utilize GPUs, from this version GPU usage can be integrated into LVGL. In lv_conf.h any supported GPUs can be enabled with a single configuration option.
Right now, only ST's DMA2D (Chrom-ART) is integrated. More will in the upcoming releases.
Renames
The following object types are renamed: - sw -> switch - ta -> textarea - cb -> checkbox - lmeter -> linemeter - mbox -> msgbox - ddlist -> dropdown - btnm -> btnmatrix - kb -> keyboard - preload -> spinner - lv_objx folder -> lv_widgets - LV_FIT_FILL -> LV_FIT_PARENT - LV_FIT_FLOOD -> LV_FLOOD_MAX - LV_LAYOUT_COL_L/M/R -> LV_LAYOUT_COLUMN_LEFT/MID/RIGHT - LV_LAYOUT_ROW_T/M/B -> LV_LAYOUT_ROW_TOP/MID/BOTTOM
Reworked and improved object
dropdown: Completely reworked. Now creates a separate list when opened and can be dropped to down/up/left/right.
label: body_draw is removed, instead, if its style has a visible background/border/shadow etc it will be drawn. Padding really makes the object larger (not just virtually as before)
arc: can draw background too.
btn: doesn't store styles for each state because it's done naturally in the new style system.
calendar: highlight the pressed datum. The used styles are changed: use LV_CALENDAR_PART_DATE normal for normal dates, checked for highlighted, focused for today, pressed for the being pressed. (checked+pressed, focused+pressed also work)
chart: only has LINE and COLUMN types because with new styles all the others can be described. LV_CHART_PART_SERIES sets the style of the series. bg_opa > 0 draws an area in LINE mode. LV_CHART_PART_SERIES_BG also added to set a different style for the series area. Padding in LV_CHART_PART_BG makes the series area smaller, and it ensures space for axis labels/numbers.
linemeter, gauge: can have background if the related style properties are set. Padding makes the scale/lines smaller. scale_border_width and scale_end_border_width allow to draw an arc on the outer part of the scale lines.
gauge: lv_gauge_set_needle_img allows use image as needle
canvas: allow drawing to true color alpha and alpha only canvas, add lv_canvas_blur_hor/ver and rename lv_canvas_rotate to lv_canvas_transform
textarea: If available in the font use bullet (U+2022) character in text area password
New object types
lv_objmask: masks can be added to it. The children will be masked accordingly.
Others
Change the built-in fonts to Montserrat and add built-in fonts from 12 px to 48 px for every 2nd size.
Add example CJK and Arabic/Persian/Hebrew built-in font
Add ° and "bullet" to the built-in fonts
Add Arabic/Persian script support: change the character according to its position in the text.
Add playback_time to animations.
Add repeat_count to animations instead of the current "repeat forever".
Replace LV_LAYOUT_PRETTY with LV_LAYOUT_PRETTY_TOP/MID/BOTTOM
Demos
lv_examples was reworked and new examples and demos were added
New release policy
Maintain this Changelog for every release
Save old major version in new branches. E.g. release/v6
Merge new features and fixes directly into master and release a patch or minor releases every 2 weeks.
Migrating from v6 to v7
First and foremost, create a new lv_conf.h based on lv_conf_template.h.
To try the new version it suggested using a simulator project and see the examples.
If you have a running project, the most difficult part of the migration is updating to the new style system. Unfortunately, there is no better way than manually updating to the new format.
The other parts are mainly minor renames and refactoring as described above.