.. _changelog: 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 ~~~~ - docs(arduino): add note to not use lv_examles library `2f294aa `__ - docs: use a fixed commit of lv_web_emscripten `501230e `__ CI and tests ~~~~~~~~~~~~ Others ~~~~~~ - chore(cmsis-pack): update cmsis-pack for v8.3.6 `4108 `__ - chore: update the version numbers to v8.3.5-dev `77670fb `__ - Update build_html_examples.sh `399069b `__ `v8.3.5 `__ 7 February 2023 --------------------------------------------------------------------------------- Performance ~~~~~~~~~~~ - perf(gpu): improve NXP's PXP and VGLite accelerators `3952 `__ - perf(dam2d): rework stm32 dma2d `3904 `__ 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 ~~~~~~ - chore(cmsis-pack): update cmsis-pack for v8.3.5 `3972 `__ - chore: add an option to "LV_TICK_CUSTOM" `3879 `__ - bump version numbers to v8.3.5-dev `47c8f8f `__ - Update layer.md `9faca8a `__ `v8.3.4 `__ 15 December 2022 ---------------------------------------------------------------------------------- New Features ~~~~~~~~~~~~ - feat(keyboard): ported arabic keyboard from release 7.10.0 `3728 `__ - feat(table): scroll to the selected cell with key navigation `39d03a8 `__ .. _fixes-1: 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 obejcts `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 antialising=0 support `2c17b28 `__ - fix(msg): fix typos in API by adding wrappers `41fa416 `__ - fix(draw): fix transformation accuracy `e06f03d `__ - fix(style): remove the reduntant 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-2: 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-1: Docs ~~~~ - docs(draw) remove reference to old lv_fs_add_drv function `3564 `__ - docs(disp): LV_COLOR_SCREEN_TRANSP remove dependency on LV_COLOR_DEPTH_32 as transparency is supported across all color depths `3556 `__ .. _ci-and-tests-1: CI and tests ~~~~~~~~~~~~ - ci: protect test.c with #if LV_BUILD_TEST `be485d7 `__ .. _others-1: Others ~~~~~~ - chore(rt-thread) backport fixes from v9 `3604 `__ - chore: fix warnings `7640950 `__ - remove accidentally added code `5022476 `__ `v8.3.1 `__ 25 July 2022 ------------------------------------------------------------------------------ .. _fixes-3: Fixes ~~~~~ - fix(led): add bg_color draw descriptors back to led draw event to support LV_DRAW_COMPLEX 0 `3515 `__ - fix(slider): fix knob drawing in symmetrical mode `2967172 `__ - fix(refr): fix lv_refr_get_top_obj `9750c97 `__ - fix(arc): fix arc knob invalidation in SYMMETRICAL mode `a283273 `__ .. _examples-1: Examples ~~~~~~~~ - example(freetype): Update the Micropython example to use the Lato font `71913d3 `__ - example(freetype): replace the arial font with lato to avoid licensing issues `8544cc3 `__ .. _docs-2: Docs ~~~~ - docs(readme): fix LVGL version typo (8.3.0) `3462 `__ - docs(tasmota): support LVGL 8.3.0 (#3511) `62662f6 `__ `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-1: 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-1: Performance ~~~~~~~~~~~ - perf(draw): speed up non normal blend modes `5a06fce `__ - perf(draw): minor optimiziation in point transformation `c6c2864 `__ - perf(layer): cache the layer_type `ac2e2f1 `__ .. _fixes-4: 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_scr_load work better with lv_scr_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-2: 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 expicitly check which part is drawn `6b2eac1 `__ - example(slider): make lv_example_slider_3 work with dark theme too `4a766c5 `__ - example(span): avoid ambiguous meaing `7bb09e3 `__ - demo(benchmark): add LV_DEMO_BENCHMARK_RGB565A8 option `afaa8c9 `__ .. _docs-3: 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-2: 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-1: 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 ~~~~~~~~~~~~~~~~ - .. warning:: feat(fs): add caching option for lv_fs-read `2979 `__ - .. warning:: feat(span): lv_spangroup_get_expand_width() adds a parameter `2968 `__ - .. warning:: arch(draw): allow replacing the draw engine `db53ea9 `__ - .. warning:: indexed images are not chroma keyed. Use the alpha chaneel instead. 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-2: 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-2: Performance ~~~~~~~~~~~ - perf(sdl): optimize the use of SDL_RenderSetClipRect `2941 `__ - perf(color): add faster lv_color_hex function `2864 `__ .. _fixes-5: 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_del() 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 `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): futher 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-3: Examples ~~~~~~~~ - example: add non-null judgment to lv_example_obj_2 `2799 `__ - example(table): fix text alignment `b03dc9c `__ .. _docs-4: 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-3: 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-2: 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-1: Breaking Changes ~~~~~~~~~~~~~~~~ - .. warning:: feat(calendar): add the header directly into the calendar widget `2e08f80 `__ .. _architectural-1: Architectural ~~~~~~~~~~~~~ - arch add small 3rd party libs to lvgl `2569 `__ .. _new-features-3: 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_del_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-3: 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-6: 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_del(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 `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_scr_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-4: 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-5: 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
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-4: 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-2: 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 `__ - del(.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 - 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 - 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_pages\ s) - 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-4: 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-1: 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-5: New features ~~~~~~~~~~~~ - feat(indev) allow input events to be passed to disabled objects - feat(spinbox) add inline get_step function for MicroPython support .. _bugfixes-2: Bugfixes ~~~~~~~~ - fix(btnmatrix) fix lv_btnmatrix_get_active_btn_text() when used in a group v7.9.1 (19.01.2021) ------------------- .. _bugfixes-3: 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-6: 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-4: 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-5: Bugfixes ~~~~~~~~ - fix(lv_scr_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-7: New features ~~~~~~~~~~~~ - make DMA2D non blocking - add unscii-16 built-in font - add KConfig - add lv_refr_get_fps_avg() .. _bugfixes-6: 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-7: 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-8: 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-8: 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-9: 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-10: 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-9: New features ~~~~~~~~~~~~ - Check whether any style property has changed on a state change to decide if any redraw is required .. _bugfixes-11: 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-10: 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-12: 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-11: 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-13: 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-14: 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-12: 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-15: 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-13: New features ~~~~~~~~~~~~ - Add screen transitions with lv_scr_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-16: 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-14: 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-17: 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-18: 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-19: 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 formattings v7.0.0 (18.05.2020) ------------------- Documentation ~~~~~~~~~~~~~ The docs for v7 is available at `__ 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-3: 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-1: 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.