Changelog¶
v8.2.0 31 January 2022¶
Overview¶
Among many fixes and minor updates these are the most important features in v8.2.0:
Abstract render layer to make it easier to attack external draw engines
Add
LV_FLAD_OVERFLOW_VISIBLE. If enabled the children of an object won't be clipped to the boundary of the objectAdd ffmpeg decoder support to play videos and open a wide variety of image formats
Add font fallback support
Add gradient dithering support
Add "monkey test"
Add cmsis-pack support
Add Grid navigation (
lv_gridnav)
The GPU support for NXP microcontrollers is still not updated to the new draw architecture. See #3052
Breaking Changes¶
Architectural¶
arch(draw): separate SW renderer to allow replacing it
2803arch: merge lv_demos
5414652arch(sdl): migrated to use new backend architecture
2840arch(env): move rt-thread into env_support folder
3025arch(env): arch(env): move the cmake folder into the env_support folder
773d50farch(env): move the zephyr folder into the env_support folder
4bd1e7e
New Features¶
feat(cmsis-pack): prepare for lvgl v8.2.0 release
3062feat(gridnav): add lv_gridnav
2911feat: update the cmsis-pack to 0.8.3
3021feat(sdl): support rounded images
3012feat(cmsis-pack): add cmsis-pack support
2993feat(event): add preprocessing and stop bubbling features for events
3003feat(draw): add gradient dithering support
2872feat(symbols): add guards to LV_SYMBOL_* to allow redefining them
2973feat(obj): subdivide LV_OBJ_FLAG_SCROLL_CHAIN into ...CHAIN_HOR and ...CHAIN_VER
2961feat(draw): add draw_bg callback to draw_ctx #2934
2935feat(docs): add Chinese readme
2919feat(txt): add used_width parameter to _lv_txt_get_next_line()
2898feat(others) add monkey test
2885feat(rlottie): add animation control options
2857feat(lv_hal_indev): add missing lv_indev_delete()
2854feat(freetype): optimize memory allocation
2849feat(Kconfig): add FreeType config
2846feat(widgets): add menu widget
2603feat(refr): add reset function for FPS statistics
2832feat(Kconfig): add monitor position configuration
2834feat(examples) add micropython versions of the external library examples
2762feat(freetype): support bold and italic
2824feat(font) add fallback support and mem. font load option to FreeType
2796feat(lib) add ffmpeg video and image decoder
2805feat(obj): add LV_OBJ_FLAG_OVERFLOW_VISIBLE
e7ac0e4feat(scrollbar): add more control over scrollbar paddings
4197b2ffeat(dropdown): keep the list on open/close for simpler styling
9d3134bfeat(qrcode) use destructor instead of lv_qrcode_delete()
318edd8feat(disp) allow decouplig the disp_refr timer
85cc84afeat(obj): add lv_obj_get_event_user_data()
53ececcfeat(obj) add LV_OBJ_FLAG_SCROLL_WITH_ARROW
70327bdfeat(slider): consider ext_click_area on the knob with LV_OBJ_FLAG_ADV_HITTEST
9d3fb41
Performance¶
Fixes¶
fix(micropython) update examples for new API
3059fix: increase default value of LV_MEM_SIZE for lv_demo_widgets #3057
3058fix(cmsis-pack): fix issue #3032
3056fix(porting): add missing function prototypes
3054fix(kconfig): add missing default values
3050fix(canvas): force canvas to use sw draw
3045fix(rt-thread): use ARCH_CPU_BIG_ENDIAN to replace RT_USING_BIG_ENDIAN
3044fix(gradient): general cleanup and fix for alignment issues
3036fix(draw): rendering issues for vertical gradient with and without dithering
3034fix uninitialized variable
3033fix(lru): lower dependency for standard C functions
3024fix(env_support): move cmsis-pack to env_support folder
3026fix(doc): full covering opacity is 255, not 256
3022fix uninitialized variables
3023fix various issues for esp32
3007fix(sdl): fix clipped image drawing
2992fix(draw): missed bg_color renaming in the draw function
3002fix(porting): fix typo and an unmatched prototype
2998fix(conf) add missing LV_LOG_LEVEL default definition
2996fix(refr): crash if full_refresh = 1
2999fix(Kconfig): adapt to lvgl's built-in demos
2989fix(Makefile): compilation errors
2944fix(rlottie): fix variable name
2971fix(group): in lv_group_del() remove group from indev (lvgl#2963)
2964fix(obj): old parent's scroll is not updated in lv_obj_set_parent()
2965fix(fatfs) add missing cast
2969fix(snapshot) fix memory leak
2970fix(examples) move event callback registration outside loop in
lv_example_event_32959fix(canvas): off by one error in size check in lv_canvas_copy_buf
2950fix(indev) add braces to avoid compiler warning
2947fix: fix parameter order in function prototypes
2929fix(style):add const qualifier for lv_style_get_prop()
2933fix(dropdown): in lv_dropdpwn_get_selected_str handle if there are no options
2925fix: lv_deinit/lv_init crash or hang
2910fix(rt-thread): improve the structure
2912fix: removed string format warnings for int32_t and uint32_t
2924fix(lv_fs_win32): add missing include of <stdio.h>
2918fix: use unsigned integer literal for bit shifing.
2888chore(lottie) move rlottie_capi.h to lv_rlottie.c
2902fix(qrcodegen) add brackets around assert calls
2897fix(list) guard image creation with LV_USE_IMG
2881fix(snapshot): make fake display size big enough to avoid align issue.
2883fix(sdl) correct makefile
2884fix(draw): fix set_px_cb memory write overflow crash.
2882fix(freetype): fix memset error
2877fix(span): fix align and break word
2861fix(refr): swap buffers only on the last area with direct mode
2867fix(arc) free memory when drawing full-circle arc
2869fix(indev): update lv_indev_drv_update to free the read_timer
2850fix(draw): fix memory access out of bounds when using blend subtract
2860fix(chart) add lv_chart_refresh() to the functions which modify the data
2841fix(conf) mismatched macro judgment
2843fix(ffmpeg): when disabled LV_FFMPEG_AV_DUMP_FORMAT makes av_log quiet
2838fix(rt-thread): fix a bug of log
2811fix(log): to allow printf and custom_print_cb to work at same time
2837fix(keyboard): add missing functions
2835fix(checkbox) remove unnecessary events
2829fix(qrcode): replace memcpy() with lv_memcpy() and delete useless macros
2827fix(font) improve builtin font source files generation process
2825fix(CMake) split CMakeLists.txt, add options, includes and dependencies
2753fix(obj): make lv_obj_fade_in/out use the current opa as start value
2819fix(qrcode):minimize margins as much as possible
2804fix(scripts): switch all scripts to python3
2820fix(event): event_send_core crash in special case.
2807fix(Kconfig) remove duplicate LV_BUILD_EXAMPLES configuration
2813fix(obj): in obj event use the current target instead of target
2785fix(draw_label): radius Mask doesn't work in Specific condition
2784fix(draw_mask): will crash if get_width/height < 0
2793fix(theme) make the basic theme really basic
a369f18fix(arc): fix knob invalidation
345f688fix(theme): add arc, spinner and colorwheel to basic theme
adc218afix(conf) define LV_LOG_TRACE_... to 0 in lv_conf_internal.h to avoid warnings
305284cfix(draw): consider opa and clip corner on bg_img
d51aea4fix(draw): add grad_cache_mem to GC_ROOTs
138db9cfix(bar, slider): fix shadow drawing on short indicators
364ca3cfix(theme): fix theme initialization issue introduced in 6e0072479
d231644fix(draw): add lv_draw_sw_bg
49642d3fix(draw) border_draw crash is special case
075831afix(theme): fix crash in lv_theme_basic_init
ca5f04cfix(draw): fix indexed image drawing
5a0dbccfix(roller): clip overflowing text
5709528fix(align) fix LV_SIZE_CONTENT size calculation with not LEFT or TOP alignment
9c67642fix(draw): futher bg_img draw fixes
81bfb76fix(btnmatrix): keep the selected button even on release
d47cd1dfix(sw): make knob size calculation more intuitive
5ec532dfix(switch): make knob height calculation similar to slider
0921dfcfix(span): explicitly set span->txt to the return value of lv_mem_realloc(#3005)
a9a6cb8fix(example): update LVGL_Arduino.ino
d79283cfix(draw) simplify how outline_pad is compnesated
81d8be1fix(obj) make LV_OBJ_FLAG_SCROLL_CHAIN part of the enum instead of define
f8d8856fix(label): dot not add dots if the label height > 1 font line height
4d61f38fix(event): crash if an object was deleted in an event
9810920fix(build) fix sdl build with make
43729d1fix(config): fix anonymus choice
71c739cchore(docs): fix lv_list_add_text
a5fbf22fix(png) check png magic number to be sure it's a png image
1092550fix(btnmatrix): fix crash if an empty btnmatrix is pressed
2392f58fix(mem/perf monitor): fix issue introduced in #2910
0788d91fix(layout) fix layout recalculation trigger in lv_obj_add/clear_fleg
ee65410fix(obj) fix lv_obj_fade_in
4931384fix(draw): fix clipping children to parent
5c98ac8fix: remove symlinks to be accepted as an Ardunio library
6701d36chore: fix typos in FATFS config
74091c4fix(refr): fix missed buffer switch in double full-screen buffer + direct_mode
731ef5achore(qrcode): fix warnings
e9d7080docs(event): tell to not adjust widgets in draw events
933d67ffix(table, chart): fix memory leaks
8d52de1fix(event): handle object deletion in indev->fedback_cb
bfc8edffix(roller): snap on press lost
fa9340cfix(dropdown) be sure the list is the top object on the screen
cb7fc2bfix(img) fix invalidation issue on transformations
d5ede0efix(obj) fix comments of lv_obj_set_pos/x/y
b9a5078
Examples¶
Docs¶
docs(demos) update information to reflect new layout
3029docs(porting): remove duplicated content
2984docs(display) fix typo
2946docs(get-started) add introduction for Tasmota and Berry
2874docs fix spelling, parameter descriptions, comments, etc
2865docs: spelling fixes
2828docs(style) minor style fix
2818docs(porting/display) fix formatting
2812docs(roadmap) udpate
084439edocs(widgets) fix edit links
7ed1a56docs(contributing) update commit message format
1cd851fdocs(porting): add more details about adding lvgl to your project
6ce7348docs(indev): add description about gestures
2719862docs(style): describe const styles
28ffae8docs(faq): add "LVGL doesn't start, nothing is drawn on the display" section
0388d92docs add demos
02a6614docs(fs): update fs interface description to the latest API
285e6b3docs(format) let wrap
4bf49a8docs(imgbtn) fix typo
d792c5fdocs(porting) clarify that displays must be registered before input devices
1c64b78docs(event) fix lv_event_get_original_target vs lv_event_get_current_target
cdd5128docs(events) rename LV_EVENT_APPLY to LV_EVENT_READY (#2791)
bf6837fdocs(gpu): link style properties and boxing model
6266851docs(gesture): clarify gesture triggering with scrolling
e3b43eedocs(contributing): remove the mentioning of the dev branch
00d4ef3docs(bar) fix default range
eeee48bdocs(event): tell to not adjust widgets in draw events
933d67fdocs(switch) improve wording
b4986abdocs(font) fix example to match v8
2f80896
CI and tests¶
test(bar): add unit tests
2845test(switch): add initial unit test
2794test(demo) add tests for widget and stress demos
3bd6ad8test(dropdown) fix to pass again
918b3detest add support for using system heap
446b1ebci remove formatting request workflow
6de89e4ci initial support for cross-architecture tests
7008770ci create handler for formatting requests
7af7849test(style) add test for gradient
da8f345test(event) add test for #2886
51ef9c2ci add workflow to check code formatting
a2b555eci attempt to speed up cross tests
80408f7ci apply my updates to the verify-formatting action
02f02faci: add arduino linter action
f79b00cci update action
be9722cci more formatting action updates
1f6037cci disable LeakSanitizer on dockerized tests
c9e1927ci one last try at this for tonight
dddafaeci try alternate checkout mechanism
cb3de30test(style) fix compile error
ba083dftest(template) simplify _test_template.c
b279f63ci force ccache to be saved every time
a7c590fci switch to codecov v2
6b84155ci more debugging for formatting action
2f8e4bcci inline apt-get commands
90e2b9fci(micropython) use ESP-IDF 4.4
b34fe9eci add 5k stack limit
4122ddaci force use of ccache in PATH
6de3fa8ci add back stack usage check at 4 kilobytes
89135d6ci temporarily disable stack usage check
1900c21ci(cross) use python3 instead of python
df7eaa0ci use specific version tag
59b4769ci fix check style action
5bb3686ci fix typo in formatting action
d1ccbf6ci test formatting action
065d821ci(micropython) switch to newer GCC action
1fa7257ci(style) force color on diff to help highlight whitespace changes
04f47eaci(cross) install build-essential
772f219ci force pushing to upstream branch
8277f78ci ensure lvgl-bot is used to make commits
9fcf52a
v8.1.0 10 November 2021¶
Overview¶
v8.1 is 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.
Breaking Changes¶
:warning: feat(calendar): add the header directly into the calendar widget
2e08f80
New Features¶
feat(display) add direct_mode drawing mode
2460feat(conf): make LV_MEM_BUF_MAX_NUM configurable
2747feat(disp): add non-fullscreen display utilities
2724feat(rlottie) add LVGL-Rlottie interface as 3rd party lib
2700feat(rtthread): prepare for porting the device-driver of rt-thread
2719feat(fsdrv) add driver based on Win32 API
2701feat(span) indent supports percent for fix and break mode
2693feat(rt-thread): implement rt-thread sconscirpt
2674feat(lv_spinbox) support both right-to-left and left-to-right digit steps when clicking encoder button
2644feat add support for rt-thread RTOS
2660feat(disp): Enable rendering to display subsection
2583feat(keyboard): add user-defined modes
2651feat(event) add LV_EVENT_CHILD_CREATED/DELETED
2618feat(btnmatrix/keyboard): add option to show popovers on button press
2537feat(msgbox) add a content area for custom content
2561feat(tests): Include debug information to test builds
2568feat(drawing) hardware accelerated rendering by SDL2
2484feat(msgbox): omit title label unless needed
2539feat(msgbox): add function to get selected button index
2538feat(make) add lvgl interface target for micropython
2529feat(obj) add lv_obj_move_to_index(obj, index), renamed lv_obj_get_child_id(obj) to lv_obj_get_index(obj)
2514feat(obj) add lv_obj_swap() function
2461feat(mem) LV_MEM_POOL_ALLOC
2458feat(switch) add smooth animation when changing state
2442feat(anim) add interface for handling lv_anim user data.
2415feat(obj) add lv_is_initialized
2402feat(obj) Backport keypad and encoder scrolling from v7
lv_pageto v8lv_obj2390feat(snapshot) add API to take snapshot for object
2353feat(anim) add anim timeline
2309feat(span) Add missing spangroup functions
2379feat(img) add img_size property
2284feat(calendar) improve MicroPython example
2366feat(spinbox ) add function to set cursor to specific position
2314feat(timer) check if lv_tick_inc is called
aa6641afeat(event, widgets) improve the paramter of LV_EVENT_DRAW_PART_BEGIN/END
88c4859feat(docs) improvements to examples
4b8c73afeat(obj) send LV_EVENT_DRAW_PART_BEGIN/END for MAIN and SCROLLBAR parts
b203167feat(led) send LV_EVENT_DRAW_PART_BEGIN/END
fcd4aa3feat(chart) send LV_EVENT_DRAW_PART_BEGIN/END before/after the division line drawing section.
e0ae2aafeat(tests) upload coverage to codecov
4fff99dfeat(conf) add better check for Kconfig default
f8fe536feat(draw) add LV_BLEND_MODE_MULTIPLY
cc78ef4feat(test) add assert for screenshot compare
2f7a005feat(event) pass the scroll aniamtion to LV_EVENT_SCROLL_BEGIN
ca54ecffeat(obj) place the scrollbar to the left with RTL base dir.
906448efeat(log) allow overwriting LV_LOG_... macros
17b8a76feat(arc) add support to LV_OBJ_FLAG_ADV_HITTEST
dfa4f5cfeat(event) add LV_SCREEN_(UN)LOAD_START
7bae9e3feat(obj) add lv_obj_del_delayed()
c6a2e15feat(docs) add view on GitHub link
a716ac6feat(event) add LV_EVENT_SCREEN_LOADED/UNLOADED events
ee5369efeat(textarea) remove the need of lv_textarea_set_align
56ebb1afeat(rt-thread): support LVGL projects with GCC/Keil(AC5)/Keil(AC6)/IAR
32d33fefeat(docs) lazy load individual examples as well
918d948feat: add LV_USE_MEM_PERF/MONITOR_POS
acd0f4ffeat(canvas) add lv_canvas_set_px_opa
b3b3ffcfeat(event) add lv_obj_remove_event_cb_with_user_data
4eddeb3feat(obj) add lv_obj_get_x/y_aligned
98bc1fe
Performance¶
perf(draw) reimplement circle drawing algorithms
2374perf(anim_timeline) add lv_anim_timeline_stop()
2411perf(obj) remove lv_obj_get_child_cnt from cycle limit checks
ebb9ce9perf(draw) reimplement rectangle drawing algorithms
5b3d3dcperf(draw) ignore masks if they don't affect the current draw area
a842791perf(refresh) optimize where to wait for lv_disp_flush_ready with 2 buffers
d0172f1perf(draw) speed up additive blending
3abe517
Fixes¶
fix(bidi): add weak characters to the previous strong character's run
2777fix(draw_img): radius mask doesn't work in specific condition
2786fix(border_post): ignore bg_img_opa draw when draw border_post
2788fix(refresh) switch to portable format specifiers
2781fix(stm32) Mark unused variable in stm32 DMA2D driver
2782fix(conf): Make LV_COLOR_MIX_ROUND_OFS configurable
2766fix(misc): correct the comment and code style
2769fix(draw_map) use existing variables instead function calls
2776fix(draw_img): fix typos in API comments
2773fix(draw_img):radius Mask doesn't work in Specific condition
2775fix(proto) Remove redundant prototype declarations
2771fix(conf) better support bool option from Kconfign
2555fix(draw_border):draw error if radius == 0 and parent clip_corner == true
2764fix(msgbox) add declaration for lv_msgbox_content_class
2761fix(core) add L suffix to enums to ensure 16-bit compatibility
2760fix(anim): add lv_anim_get_playtime
2745fix(area) minor fixes
2749fix(mem): ALIGN_MASK should equal 0x3 on 32bit platform
2748fix(template) prototype error
2755fix(anim): remove time_orig from lv_anim_t
2744fix(draw_rect):bottom border lost if enable clip_corner
2742fix(anim) and improvement
2738fix(draw border):border draw error if border width > radius
2739fix(fsdrv): remove the seek call in fs_open
2736fix(fsdrv): skip the path format if LV_FS_xxx_PATH not defined
2726fix: mark unused variable with LV_UNUSED(xxx) instead of (void)xxx
2734fix(fsdrv): fix typo error in commit 752fba34f677ad73aee
2732fix(fsdrv): return error in case of the read/write failure
2729fix(refr) silence compiler warning due to integer type mismatch
2722fix(fs): fix the off-by-one error in the path function
2725fix(timer): remove the code duplication in lv_timer_exec
2708fix(async): remove the wrong comment from lv_async_call
2707fix(kconfig): change CONFIG_LV_THEME_DEFAULT_FONT to CONFIG_LV_FONT_DEFAULT
2703fix add MP support for LVGL 3rd party libraries
2666fix(png) memory leak for sjpg and use lv_mem_... in lv_png
2704fix(gif) unified whence and remove off_t
2690fix(rt-thread): include the rt-thread configuration header file
2692fix(rt-thread): fix the ci error
2691fix(fsdrv) minor fs issue
2682fix(hal) fix typos and wording in docs for lv_hal_indev.h
2685fix(hal tick): add precompile !LV_TICK_CUSTOM for global variables and lv_tick_inc()
2675fix(anim_timeline) avoid calling lv_anim_del(NULL, NULL)
2628fix(kconfig) sync Kconfig with the latest lv_conf_template.h
2662fix(log) reduce the stack usage in log function
2649fix(conf) make a better style alignment in lv_conf_internal.h
2652fix(span) eliminate warning in lv_get_snippet_cnt()
2659fix(config): remove the nonexistent Kconfig
2654fix(Kconfig): add LV_MEM_ADDR config
2653fix(log): replace printf with fwrite to save the stack size
2655fix typos
2634fix LV_FORMAT_ATTRIBUTE fix for gnu > 4.4
2631fix(meter) make lv_meter_indicator_type_t of type uint8_t
2632fix(span):crash if span->txt = ""
2616fix(disp) set default theme also for non-default displays
2596fix(label):LONG_DOT mode crash if text Utf-8 encode > 1
2591fix( example) in lv_example_scroll_3.py float_btn should only be created once
2602fix lv_deinit when LV_USE_GPU_SDL is enabled
2598fix add missing LV_ASSERT_OBJ checks
2575fix(lv_conf_internal_gen.py) formatting fixes on the generated file
2542fix(span) opa bug
2584fix(snapshot) snapshot is affected by parent's style because of wrong coords
2579fix(label):make draw area contain ext_draw_size
2587fix(btnmatrix): make ORed values work correctly with lv_btnmatrix_has_btn_ctrl
2571fix compiling of examples when cmake is used
2572fix(lv_textarea) fix crash while delete non-ascii character in pwd mode
2549fix(lv_log.h): remove the duplicated semicolon from LV_LOG_xxx
2544fix(zoom) multiplication overflow on 16-bit platforms
2536fix(printf) use __has_include for more accurate limits information
2532fix(font) add assert in lv_font.c if the font is NULL
2533fix(lv_types.h): remove c/c++ compiler version check
2525fix(lv_utils.c): remove the unneeded header inclusion
2526fix(Kconfig) fix the comment in LV_THEME_DEFAULT_DARK
2524fix(sprintf) add format string for rp2 port
2512fix(span) fix some bugs (overflow,decor,align)
2518fix(color) Bad cast in lv_color_mix() caused UB with 16bpp or less
2509fix(imgbtn) displayed incorrect when the coordinate is negative
2501fix(event) be sure to move all elements in copy “lv_obj_remove_event_cb”
2492fix(draw) use correct pointer in lv_draw_mask assertion
2483feat(mem) LV_MEM_POOL_ALLOC
2458fix(cmake) require 'main' for Micropython
2444fix(docs) add static keyword to driver declaration
2452fix(build) remove main component dependency
2420fix circle drawing algorithms
2413fix(docs) wrong spelling of words in pictures
2409fix(chart) fixed point-following cursor during vertical scroll in charts
2400fix(chart) fixed cursor positioning with large Y rescaling without LV_USE_LARGE_COORD
2399fix(grid.h) typos
2395fix(anim_timeline) heap use after free
2394fix(snapshot) add missing import on MicroPython example
2389fix(disp) Fix assert failure in lv_disp_remove
2382fix(span) modify the underline position
2376fix(color) remove extraneous _LV_COLOR_MAKE_TYPE_HELPER
2372fix(spinner) should not be clickable
2373fix(workflow) silence SDL warning for MicroPython
2367fix (span) fill LV_EVENT_GET_SELF_SIZE
2360fix(workflow) change MicroPython workflow to use master
2358fix(disp) fix memory leak in lv_disp_remove
2355fix(lv_obj.h)typos
2350fix(obj) delete useless type conversion
2343fix(lv_obj_scroll.h) typos
2345fix(txt) enhance the function of break_chars
2327fix(vglite): update for v8
e3e3eeafix(widgets) use lv_obj_class for all the widgets
3fb8baffix(refr) reduce the nesting level in lv_refr_area
2df1282fix(pxp): update for v8
8a2a4a1fix(obj) move clean ups from lv_obj_del to lv_obj_destructor
b063937fix (draw) fix arc bg image drawing with full arcs
c3b6c6dfix(pxp): update RTOS macro for SDK 2.10
00c3eb1fix(textarea) style update in oneline mode + improve sroll to cursor
60d9a5efeat(led) send LV_EVENT_DRAW_PART_BEGIN/END
fcd4aa3fix warnigs introduced by 3fb8baf5
e302403fix(roller) fix partial redraw of the selected area
6bc40f8fix(flex) fix layout update and invalidation issues
5bd82b0fix(indev) focus on objects on release instead of press
76a8293fix tests
449952efix(dropdown) forget the selected option on encoder longpress
e66b935fix(obj) improve how the focusing indev is determined
a04f2defix(workflow) speed up MicroPython workflow
38ad5d5fix(test) do not including anything in test files when not running tests
9043860fix tests
36b9db3fix(scroll) fire LV_EVENT_SCROLL_BEGIN in the same spot for both axes
b158932fix(btnmatrix) fix button invalidation on focus change
77cedfafix(tlsf) do not use <assert.h>
c9745b9fix(template) include lvgl.h in lv_port_*_template.c files
0ae15bdfix(docs) add margin for example description
b5f632efix(imgbtn) use the correct src in LV_EVENT_GET_SELF_SIZE
04c515afix(color) remove extraneous cast for 8-bit color
157534cfix(workflow) use same Unix port variant for MicroPython submodules
ac68b10fix(README) improve grammar
de81889fix(printf) skip defining attribute if pycparser is used
ee9bbeafix(README) spelling correction
41869f2fix(color) overflow with 16 bit color depth
fe6d8d7fix(docs) consider an example to be visible over a wider area
145a0fafix(codecov) disable uploading coverage for pull requests
27d88defix(arc) disable LV_OBJ_FLAG_SCROLL_CHAIN by default
f172eb3fix(template) updpate lv_objx_template to v8
38bb8affix(align) avoid circular references with LV_SIZE_CONTENT
038b781fix(draw) with additive blending with 32 bit color depth
786db2afix(arc) fix arc invalidation again
5ced080fix(align) fix lv_obj_align_to
93b38e9fix(scroll) keep the scroll position on object deleted
52edbb4fix(dropdown) handle LV_KEY_ENTER
8a50eddfix various minor warnings
924bc75fix(textarea) various cursor darwing fixes
273a0ebfix(label) consider base dir lv_label_get_letter_pos in special cases
6df5122fix(imgbtn) add lv_imgbtn_set_state
26e15fafix(printf) add (int) casts to log messages to avoid warnings on %d
d9d3f27fix(test) silence make
7610d38fix(test) silence make
37fd9d8fix(calendar) update the MP example
0bab4a7fix(scroll) fix scroll_area_into_view with objects larger than the parent
5240fddfix(msgbox) handle NULL btn map paramter
769c4a3fix (scroll) do not send unnecessary scroll end events
3ce5226fix(obj_pos) consider all alignements in contnt size calculation but only if x and y = 0
5b27ebbfix(img decoder) add error handling if the dsc->data = NULL
d0c1c67fix(txt): skip basic arabic vowel characters when processing conjunction
5b54800fix(typo) rename LV_OBJ_FLAG_SNAPABLE to LV_OBJ_FLAG_SNAPPABLE
e697807fix(lv_printf.h): to eliminate the errors in Keil and IAR
f6d7dc7fix(draw) fix horizontal gradient drawing
4c034e5fix(dropdown) use LV_EVENT_READY/CANCEL on list open/close
4dd1d56fix(table) clip overflowing content
8c15933fix(test) add #if guard to exclude test related files from the build
c12a22efix(test) add #if guard to exclude test related files from the build
fc364a4fix(freetype) fix underline calculation
76c8ee6fix(style) refresh ext. draw pad for padding and bg img
37a5d0cfix(draw) underflow in subpixel font drawing
6d5ac70fix(scrollbar) hide the scrollbar if the scrollble flag is removed
188a946fix(color): minor fixes(#2767)
a4978d0fix(group) skip object if an of the parents is hidden
5799c10fix(obj) fix size invalidation issue on padding change
33ba722fix(label) do not bidi process text in lv_label_ins_text
e95efc1fix(refr) set disp_drv->draw_buf->flushing_last correctly with sw rotation
c514bddfix(draw) fix drawing small arcs
8081599fix(chart) invalidation with LV_CHART_UPDATE_MODE_SHIFT
d61617cfix(build) fix micropython build error
54338f6fix(draw) fix border width of simple (radius=0, no masking) borders
20f1867fix(calendar) fix calculation today and highlighted day
8f0b5abfix(style) initialize colors to black instead of zero
524f8ddfix(sjpg) remove unnecessary typedefs
c2d93f7fix(label) fix clipped italic letters
2efa6dcfix(draw) shadow drawing with large shadow width
f810265fix(dropdown) add missing invalidations
33b5d4afix(dropdown) adjust the handling of keys sent to the dropdown
e41c507fix(disp) be sure the pending scr load animation is finished in lv_scr_load_anim
eb6ae52fix(color) fox color premult precision with 16 bit color depth
f334226fix(obj_pos) save x,y even if the object is on a layout
a9b660cfix(scrollbar) hide the scrollbar if the scrollable flag is removed
d9c6ad0fix(dropdown) fix list position with RTL base direction
79edb37fix(obj) fix lv_obj_align_to with RTL base direction
531afccfix(chart) fix sending LV_EVENT_DRAW_PART_BEGIN/END for the cursor
34b8cd9fix(arduino) fix the prototype of my_touchpad_read in the LVGL_Arduino.ino
1a62f7afix(checkbox) consider the bg border when positioning the indicator
a39dac9fix(dropdown) send LV_EVENT_VALUE_CHANGED to allow styling of the list
dae7039fix(group) fix infinite loop
bdce0bcfix(keyboard) use LVGL heap functions instead of POSIX
b20a706fix(blend) fix green channel with additive blending
78158f0fix(btnmatrix) do not show pressed, focused or focus key states on disabled buttons
3df2a74fix(font) handle the last pixel of the glyphs in font loader correctly
fa98989fix(table) fix an off-by-one issue in self size calculation
ea2545afix shadowed variable
e209260fix shadowed variable
df60018fix(chart) be sure the chart doesn't remain scrolled out on zoom out
ad5b1bdfix(docs) commit to meta repo as lvgl-bot instead of actual commit author
f0e8549fix(table) invalidate the table on cell value change
cb3692efix(group) allow refocusing objects
1520208fix(tabview) fix with left and right tabs
17c5744fix(msgbox) create modals on top layer instead of act screen
5cf6303fix(theme) show disabled state on buttons of btnmatrix, msgbox and kayboard
0be582bfix(label) update lv_label_get_letter_pos to work with LV_BASE_DIR_AUTO too
580e05afix(label) fix in lv_label_get_letter_pos with when pos==line_start
58f3f56fix(gif) replace printf statement with LVGL logging
56f62b8fix(docs) add fsdrv back
64527a5fix(table) remove unnecessary invalidation on pressing
6f90f9cfix(chart) draw line chart indicator (bullet)
fba37a3fix(anim) return the first anim if exec_cb is NULL in lv_anim_get()
fb7ea10fix(label) fix lv_label_get_letter_on with BIDI enabled
192419efix(checkbox) add missing invalidations
bb39e9dfix(draw) fix gradient calculation of the rectangle is clipped
13e3470fix(chart) fix typo in 655f42b8
6118d63fix(example) fix lv_example_chart_2
89081c2fix(calendar) fix the position calculation today
ad05e19fix(tick) minor optimization on lv_tick_inc call test
b4305dffix(docs) use let instead of const for variable which gets changed
3cf5751fix(theme) fix the switch style in the default theme
0c0dc8efix(tlsf) undef printf before define-ing it
cc935b8fix(msgbox) prevent the buttons being wider than the msbgox
73e036bfix(chart) don't draw series lines with < 1 points
655f42bfix(tests) remove src/test_runners when cleaning
6726b0ffix(label) remove duplicated lv_obj_refresh_self_size
a070ecffix(colorwheel) disable LV_OBJ_FLAG_SCROLL_CHAIN by default
48d1c29fix(obj) do not set the child's position in lv_obj_set_parent
d89a5fbfeat: add LV_USE_MEM_PERF/MONITOR_POS
acd0f4ffix(scroll) in scroll to view functions respect disabled LV_OBJ_FLAG_SCROLLABLE
9318e02fix(flex) remove unused variable
747b6a2feat(canvas) add lv_canvas_set_px_opa
b3b3ffcfix(textarea) allow using cursor with not full bg_opa
c9d3965fix(txt) _lv_txt_get_next_line return 0 on empty texts
82f3fbcfix(btnmatrix) always update row_cnt
86012aefix(scroll) minor fixes on obj scroll handling
a4128a8fix(table) consider border width for cell positions
f2987b6fix(log) be sure LV_LOG_... is not empty if logs are disabled
47734c4fix(arc) fix LV_ARC_MODE_REVERSE
df3b969fix(obj) in lv_obj_move_to_index() do not send LV_EVENT_CHILD_CHANGED on all changed child
32e8276feat(event) add lv_obj_remove_event_cb_with_user_data
4eddeb3fix(draw) fix shadow drawing with radius=0
4250e3cfix(msgbox) directly store the pointer of all children
eb5eaa3fix(draw) use the filtered colors in lv_obj_init_draw_xxx_dsc() functions
78725f2fix(arc) fix full arc invalidation
98b9ce5chore(led) expose LV_LED_BRIGHT_MIN/MAX in led.h
3f18b23fix(group) keep the focused object in lv_group_swap_obj
a997147fix(obj) swap objects in the group too in lv_obj_swap()
52c7558fix(theme) use opacity on button's shadow in the default theme
c5342e9fix(win) enable clip_corner and border_post by default
493ace3fix(draw) fix rectangle drawing with clip_corner enabled
01237dafix(arc) fix other invalidation issues
b0a7337feat(obj) add lv_obj_get_x/y_aligned
98bc1fefix(calendar) fix incorrect highlight of today
adbac52fix(arc, meter) fix invalidation in special cases
0f14f49fix(canvas) invalidate the image on delete
a1b362cfix(msgbox) return the correct pointer from lv_msgbox_get_text
50ea6fbfix(bidi) fix the handling of LV_BASE_DIR_AUTO in several widgets
7672847fix(build) remove main component dependency (#2420)
f2c2393fix(meter) fix inner mask usage
c28c146fix(log) fix warning for empty log macros
4dba8dffix(theme) improve button focus of keyboard
2504b7efix(tabview) send LV_EVENT_VALUE_CHANGED only once
933d282fix(obj style) fix children reposition if the parent's padding changes.
57cf661fix(template) update indev template for v8
d8a3d3dfix(obj) detecting which indev sent LV_EVENT_FOCUS
f03d4b8fix(roller) adjust the size of the selected area correctly
01d1c87fix(imgbtn) consider width==LV_SIZE_CONTENT if only mid. img is set
7e49f48fix(flex) fix NULL pointer dereference
97ba12ffix(obj, switch) do not send LV_EVENT_VALUE_CHANGED twice
713b39efix(coords) fix using large coordinates
428db94fix(chart) fix crash if no series are added
c728b5cfix(meter) fix needle image invalidation
54d8e81fix(mem) add lv_ prefix to tlsf functions and types
0d52b59fix(pxp) change LV_COLOR_TRANSP to LV_COLOR_CHROMA_KEY to v8 compatibility
81f3068
Examples¶
example(chart) add area chart example
2507example(anim) add demo to use cubic-bezier
2393feat(example) add lv_example_chart_9.py
2604feat(example) add lv_example_chart_8.py
2611feat(example) chart example to add gap between the old and new data
2565feat(example) add lv example list 2
2545feat(examples) add MicroPython version of lv_example_anim_3 and allow loading roller font dynamically
2412feat(examples) added MP version of second tabview example
2347fix(example):format codes
2731fix(example) minor fixes in lv_example_chart_2.py
2601feat(example) add text with gradient example
462fbcbfix(example_roller_3) mask free param bug
2553fix(examples) don't compile assets unless needed
2523fix(example) scroll example sqort types
2498fix(examples) join usage
2425fix(examples) add missing lv.PART.INDICATOR
2423fix(examples) use lv.grid_fr for MicroPython
2419fix(examples) remove symlinks
2406fix(examples) import 'u'-prefixed versions of modules
2365fix(examples) remove cast in MP scripts
2354fix(examples) fix MicroPython examples and run the examples with CI
2339fix(examples) align with renamed Micropython APIs
2338fix(examples) adjust canvas example for MicroPython API change
52d1c2efix(example) revert test code
77e2c1ffeat(example) add checkbox example for radio buttons
d089b36feat(example) add text with gradient example
462fbcbfix(examples) exclude example animimg images if animimg is disabled
4d7d306fix(example) adjust the object sizes in lv_example_anim_timeline_1()
71a10e4fix(example) revert text code from lv_example_checkbox_2
28e9593
Docs¶
docs: fix typo
2765docs(colorwheel) fix old API names
2643docs(display) fix typo
2624docs add static for lv_indev_drv_t
2605docs(animimg) add to extra widgets index and fix example
2610docs(animimg) Add missing animation image page
2609docs(group) remove reference to lv_cont which is gone in v8
2580docs(style) use correct API name for local styles
2550docs(all) Proofread, fix typos and add clarifications in confusing areas
2528docs(flex) update flex.md
2517docs more spelling fixes
2499docs fix typo: arae -> area
2488docs(readme) fix typo: hosing → hosting.
2477docs update company name and year
2476docs fix typos
2472docs(overview) fix typo
2465docs(bar) fix typos in widget examples
2463docs(overview) fix typo
2454docs(chart) typos
2427docs(layout) add internal padding paragraph to grid and flex layout p…
2392docs(porting) fix indev example to remove v7 bool return
2381docs(README) fix broken references
2329docs(grid) typo fix
2310docs(color) language fixes
2302docs(lv_obj_style) update add_style and remove_style function headers
2287docs(contributing) add commit message format section
3668e54docs minor typo fixes
84c0086docs(arduino) update some outdated information
9a77102docs(keyboard) add note regarding event handler
255f729docs minor CSS fix
acbb680docs minor CSS improvements
7f367d6docs(keyboard) change
LV_KEYBOARD_MODE_NUMtoLV_KEYBOARD_MODE_NUMBER6e83d37docs(textarea) clarify the use of text selection bg_color
65673c0docs list all examples on one page
25acaf4docs(examples) add MicroPython examples
6f37c4fdocs(filesystem) update to v8
7971adedocs(style) complete the description of style the properties
55e8846docs example list fixes
cd600d1docs(style) complete the description of style the properties
ff087dadocs(README) update links, examples, and add services menu
3471bd1docs(color) update colors' docs
9056b5edocs update lv_fs.h, layer and align.png to v8
31ab062docs(color) minor fix
ac8f453docs update changelog
c386110docs(extra) add extra/README.md
8cd504ddocs add lazy load to the iframes of the examples
c49e830docs(os) add example and clarify some poinits
d996453docs(rlottie) fix build error
ce0b564docs include paths in libs
f5f9562docs libs fixes
8e7bba6docs(obj) add comment lv_obj_get_x/y/width/height about postponed layout recalculation
533066edocs fix example list
ed77ed1docs describe the options to include or skip lv_conf.h
174ef66docs(overview) spelling fixes
d2efb8cdocs(table) describe keypad/encoder navigation
749d1b3docs update CHANGELOG
0f8bc18docs(image) mention the frame_id parameter of lv_img_decoder_open
2433732docs(arduino) update how to use the examples
06962a5docs(rlottie): fix typo in commands
ed9169cdocs(indev, layer) update lv_obj_set_click() to lv_obj_add_flag()
bcd99e8docs update version support table
e6e98abdocs fix example list
c6f99addocs(examples) add <hr/> to better separate examples
a1b59e3docs(checkbox) update the comment lv_checkbox_set_text_static
3e0ddd0docs(grid) fix missing article
da0c97adocs(display) fix grammar in one spot
5dbea7ddocs(style) fix typo in style property descriptions
4e3b860docs(flex) fix typo in flex grow section
e5fafc4docs(indev) clarify purpose of
continue_readingflag706f81edocs(license) update company name and year
7c1eb00docs fix typo
8ab8064docs add libs to the main index
1a8fed5docs add btn_example.png
8731ef1docs(btnmatrix) fix typo with set_all/clear_all parameters
51a82a1
CI and tests¶
ci(micropython) fix git fetch
2757test(txt) initial unit tests and general code cleanup/fixes
2623test add setUp and tearDown to test template
2648test(arc) add initial unit tests
2617ci(micropython) add ESP32 and STM32 tests
2629test(checkbox) add initial tests
2551test(ci) build and run tests in parallel.
2515ci(tests) run tests using ctest
2503ci(tests) add dependency on GNU parallel
2510ci(tests) use common script to install development prereqs
2504test convert Makefile to CMake
2495test Refactor unit test scripts.
2473test(font_loader) migrate the exisiting font loader test
bc5b3betest add build test again, add dropdown test, integrate gcov and gvocr
e35b1d0test(dropdown) add tess for keypad and encoder
4143b80test add keypad and encoder emulators
e536bb6tests add mouse emulator
2ba810btests add README
b765643test add move tests to test_cases and test_runners directories
e9e010atest fix CI build error
c38cae2ci add config for 8bpp
3eacc59test move more source files to src folder
3672f87test update CI for the new tests
a3898b9test cleant up report folder
b9b4ba5test fix build error
61cda59test(font_loader) migrate the existing font loader test
d6dbbaatest add move tests to test_cases and test_runners directories
d2e735etest add 3rd party libs to all tests and also fix them
7a95fa9test(arc): add test case for adv_hittest
e83df6fci create check for lv_conf_internal.h
5d8285etest fix warning and docs build error
d908f31ci(micropython) add rp2 port
1ab5c96test(dropdown) remove dummy test case
9fb98daci(codecov) hide statuses on commits for now
0b7be77ci(docs) run apt-get update before installation
f215174test fix LV_USE_LOG_LEVEL -> LV_LOG_LEVEL typo
80f0b09ci(micropython) add GCC problem matcher
ab316a0test convert Makefile to CMake (#2495)
9c846ee
Others¶
chore: replace (void)xxx with LV_UNUSED(xxx)
2779animation improvement
2743Improve LV_FORMAT_ATTRIBUTE usage
2673Fix typo in commands to build rlottie
2723del(.gitmodules): delete .gitmodules
2718lv_obj_draw_part_dsc_t.text_length added
2694expose LV_COLOR_DEPTH and LV_COLOR_16_SWAP in micropython
2679sync lvgl/lv_fs_if
2676build: always enable CMake install rule in default configuration
2636build: fix lib name in CMakeLists
2641build: remove use of 'project' keyword in CMakeLists
2640build add install rule to CMakeList.txt
2621Fixed row size calculation
2633arch add small 3rd party libs to lvgl
2569Kconfig: Add missing options
2597Espressif IDF component manager
2521chore(btnmatrix) removed unnecessary semicolon
2520Update README.md
2516Corrected a function name in obj.md
2511Simple spelling fixes
2496added lv_obj_move_up() and lv_obj_move_down()
2467Fix buf name error for "lv_port_disp_template.c" and optimize the arduino example
2475Fix two examples in the docs with new v8 api
2486kconfig: minor fix for default dark theme option
2426doc(table) update doc on cell merging
2397added example lv_example_anim_timeline_1.py
2387refactor(printf) add printf-like function attribute to _lv_txt_set_text_vfmt and lv_label_set_text_fmt
2332Update win.md
2352Nxp pxp vglite v8 dev
2313More Snapable --> Snappable replacements
2304Spelling and other language fixes to documentation
2293Update quick-overview.md
2295adding micropython examples
2286format run code-formtter.sh
d67dd94Update ROADMAP.md
2b1ae3cCreate .codecov.yml
e53aa82refactor(examples) drop JS-specific code from header.py
ef41450make test run on mseter and release/v8.*
227402aUpdate release.yml
0838f12refactor(examples) drop usys import from header.py
ad1f91aUpdate ROADMAP.md
a38fcf2Revert "feat(conf) add better check for Kconfig default"
a5793c7remove temporary test file
a958c29start to implement release/patch
1626a0cchore(indev) minor formatting
79ab3d2add basic patch release script
1c3ecf1chore(example) minor improvements on lv_example_list_2
bb6d6b7tool: add changelog_gen.sh to automatically generate changelog
6d95521update version numbers to v8.1.0-dev
8691611chore(test) improve prints
ea8bed3chore(test) improve prints
0c4bca0chore: update lv_conf_internal.h
41c2dd1chore(format) lv_conf_template.h minor formatting
3c86d77chore(docs) always deploy master to docs/master as well
6d05692Update CHANGELOG.md
48fd73dFix compile errors
6c956ccUpdate textarea.md
6d8799fchore(assert) add warning about higher memory usage if LV_USE_ASSERT_STYLE is enabled
33e4330Update page.html
9573babchore(docs) force docs rebuild
4a0f413Fix typo error in color.md
572880cUpdate arc.md
2a9b9e6Update index.rst
9ce2c77chore(docs) minor formatting on example's GitHub link
75209e8chore(lv_conf_template) fix spelling mistake
9d134a9Update CHANGELOG.md
8472360chore(stale) disable on forks
93c1303Revert "fix(tests) remove src/test_runners when cleaning"
ae15a1bstyle fix usage of clang-format directives
2122583Revert "fix(indev) focus on objects on release instead of press"
f61b2ca
v8.0.2 (16.07.2021)¶
fix(theme) improve button focus of keyboard
fix(tabview) send LV_EVENT_VALUE_CHANGED only once
fix(imgbtn) use the correct src in LV_EVENT_GET_SELF_SIZE
fix(color) remove extraneous cast for 8-bit color
fix(obj style) fix children reposition if the parent's padding changes.
fix(color) remove extraneous _LV_COLOR_MAKE_TYPE_HELPER (#2372)
fix(spinner) should not be clickable (#2373)
fix(obj) improve how the focusing indev is determined
fix(template) update indev template for v8
fix(printf) skip defining attribute if pycparser is used
refactor(printf) add printf-like function attribute to _lv_txt_set_text_vfmt and lv_label_set_text_fmt (#2332)
fix(template) include lvgl.h in lv_port_*_template.c files
fix(obj) detecting which indev sent LV_EVENT_FOCUS
fix (span) fill LV_EVENT_GET_SELF_SIZE (#2360)
fix(arc) disable LV_OBJ_FLAG_SCROLL_CHAIN by default
fix (draw) fix arc bg image drawing with full arcs
fix(disp) fix memory leak in lv_disp_remove (#2355)
fix warnings introduced by 3fb8baf5
fix(widgets) use lv_obj_class for all the widgets
fix(obj) move clean ups from lv_obj_del to lv_obj_destructor
fix(roller) fix partial redraw of the selected area
fix(roller) adjust the size of the selected area correctly
fix(obj) delete useless type conversion (#2343)
fix(lv_obj_scroll.h) typos (#2345)
fix(scroll) fire LV_EVENT_SCROLL_BEGIN in the same spot for both axes
fix(btnmatrix) fix button invalidation on focus change
fix(textarea) style update in oneline mode + improve scroll to cursor
fix(tlsf) do not use <assert.h>
fix(imgbtn) consider width==LV_SIZE_CONTENT if only mid. img is set
fix(refr) reduce the nesting level in lv_refr_area
fix(txt) enhance the function of break_chars (#2327)
fix(pxp): update RTOS macro for SDK 2.10
fix(vglite): update for v8
fix(pxp): update for v8
fix(flex) fix layout update and invalidation issues
fix(flex) fix NULL pointer dereference
fix(obj, switch) do not send LV_EVENT_VALUE_CHANGED twice
fix(color) overflow with 16-bit color depth
fix(coords) fix using large coordinates
fix(chart) fix crash if no series are added
fix(chart) invalidation with LV_CHART_UPDATE_MODE_SHIFT
fix(align) fix lv_obj_align_to G
fix(table) invalidate the table on cell value change
fix(label) remove duplicated lv_obj_refresh_self_size
fix(draw) underflow in subpixel font drawing
fix (scroll) do not send unnecessary scroll end events
v8.0.1 (14.06.2021)¶
docs(filesystem) update to v8 7971ade4
fix(msgbox) create modals on top layer instead of act screen 5cf6303e
fix(colorwheel) disable LV_OBJ_FLAG_SCROLL_CHAIN by default 48d1c292
docs(grid) typo fix (#2310) 69d109d2
fix(arduino) fix the prototype of my_touchpad_read in the LVGL_Arduino.ino 1a62f7a6
fix(meter) fix needle image invalidation 54d8e817
fix(mem) add lv_ prefix to tlsf functions and types 0d52b59c
fix(calendar) fix the position calculation today ad05e196
fix(typo) rename LV_OBJ_FLAG_SNAPABLE to LV_OBJ_FLAG_SNAPPABLE e697807c
docs(color) language fixes (#2302) 07ecc9f1
fix(tick) minor optimization on lv_tick_inc call test b4305df5
Spelling and other language fixes to documentation (#2293) d0aaacaf
fix(theme) show disabled state on buttons of btnmatrix, msgbox and keyboard 0be582b3
fix(scroll) keep the scroll position on object deleted 52edbb46
fix(msgbox) handle NULL btn map parameter 769c4a30
fix(group) allow refocusing objects 1520208b
docs(overview) spelling fixes d2efb8c6
Merge branch 'master' of https://github.com/lvgl/lvgl 45960838
feat(timer) check if lv_tick_inc is called aa6641a6
feat(docs) add view on GitHub link a716ac6e
fix(theme) fix the switch style in the default theme 0c0dc8ea
docs fix typo 8ab80645
Merge branch 'master' of https://github.com/lvgl/lvgl e796448f
feat(event) pass the scroll animation to LV_EVENT_SCROLL_BEGIN ca54ecfe
fix(tabview) fix with left and right tabs 17c57449
chore(docs) force docs rebuild 4a0f4139
chore(docs) always deploy master to docs/master as well 6d05692d
fix(template) update lv_objx_template to v8 38bb8afc
docs(extra) add extra/README.md 8cd504d5
Update CHANGELOG.md 48fd73d2
Update quick-overview.md (#2295) 5616471c
fix(pxp) change LV_COLOR_TRANSP to LV_COLOR_CHROMA_KEY to v8 compatibility 81f3068d
adding micropython examples (#2286) c60ed68e
docs(color) minor fix ac8f4534
fix(example) revert test code 77e2c1ff
fix(draw) with additive blending with 32-bit color depth 786db2af
docs(color) update colors' docs 9056b5ee
Merge branch 'master' of https://github.com/lvgl/lvgl a711a1dd
perf(refresh) optimize where to wait for lv_disp_flush_ready with 2 buffers d0172f14
docs(lv_obj_style) update add_style and remove_style function headers (#2287) 60f7bcbf
fix memory leak of spangroup (#2285) 33e0926a
fix make lv_img_cache.h public because cache invalidation is public 38ebcd81
Merge branch 'master' of https://github.com/lvgl/lvgl 2b292495
fix(btnmatrix) fix focus event handling 3b58ef14
Merge pull request #2280 from lvgl/dependabot/pip/docs/urllib3-1.26.5 a2f45b26
fix(label) calculating the clip area 57e211cc
chore(deps): bump urllib3 from 1.26.4 to 1.26.5 in /docs b2f77dfc
fix(docs) add docs about the default group 29bfe604
v8.0.0 (01.06.2021)¶
v8.0 brings many new features like simplified and more powerful scrolling, new layouts inspired by CSS Flexbox and Grid, simplified and improved widgets, more powerful events, hookable drawing, and more.
v8 is a major change and therefore it's not backward compatible with v7.
Directory structure¶
The
lv_prefix is removed from the folder namesThe
docsis moved to thelvglrepositoryThe
examplesare moved to thelvglrepositoryCreate an
src/extrafolder for complex widgets:It makes the core LVGL leaner
In
extrawe can have a lot and specific widgetsGood place for contributions
Widget changes¶
lv_contremoved, layout features are moved tolv_objlv_pageremoved, scroll features are moved tolv_objlv_objmaskthe same can be achieved by eventslv_meteradded as the union oflv_linemeterandlv_gaugelv_spannew widget mimicking HTML<span>lv_animingnew widget for simple slideshow animations+ many minor changes and improvements
New scrolling¶
Support "elastic" scrolling when scrolled in
Support scroll chaining among any objects types (not only
lv_pagess)Remove
lv_drag. Similar effect can be achieved by setting the position inLV_EVENT_PRESSINGAdd 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_datacan be attached to the added events
Driver changes¶
lv_disp_drv_t,lv_indev_drv_t,lv_fs_drv_tneeds to bestatic...disp_buf...is renamed todraw_buf. See an initialization example here.No partial update if two screen sized buffers are set
disp_drv->full_refresh = 1makes always the whole display redraw.hor_resandver_resneed to be set indisp_drvindev_read_cbreturnsvoid. To indicate that there is more that to read setdata->continue_reading = 1in theread_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_alignnow saved the alignment and realigns the object automatically but can't be used to align to other than the parentlv_obj_align_tocan align to an object but doesn't save the alignmentlv_pct(x)can be used to set the size and position in percentageThere 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
masterwill always contain the latest changes
Migrating from v7 to v8¶
First and foremost, create a new
lv_conf.hbased onlv_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_contfeaturesUse
lv_objinstead oflv_pageSee the changes in Colors
The other parts are mainly minor renames and refactoring. See the functions' documentation for descriptions.
v7.11.0 (16.03.2021)¶
New features¶
Add better screen orientation management with software rotation support
Decide text animation's direction based on base_dir (when using LV_USE_BIDI)
Bugfixes¶
fix(gauge) fix needle invalidation
fix(bar) correct symmetric handling for vertical sliders
v7.10.1 (16.02.2021)¶
Bugfixes¶
fix(draw) overlap outline with background to prevent aliasing artifacts
fix(indev) clear the indev's
act_objinlv_indev_resetfix(text) fix out of bounds read in
_lv_txt_get_widthfix(list) scroll list when button is focused using LV_KEY_NEXT/PREV
fix(text) improve Arabic contextual analysis by adding hyphen processing and proper handling of lam-alef sequence
fix(delete) delete animation after the children are deleted
fix(gauge) consider paddings for needle images
v7.10.0 (02.02.2021)¶
New features¶
feat(indev) allow input events to be passed to disabled objects
feat(spinbox) add inline get_step function for MicroPython support
Bugfixes¶
fix(btnmatrix) fix lv_btnmatrix_get_active_btn_text() when used in a group
v7.9.1 (19.01.2021)¶
Bugfixes¶
fix(cpicker) fix division by zero
fix(dropdown) fix selecting options after the last one
fix(msgbox) use the animation time provided
fix(gpu_nxp_pxp) fix incorrect define name
fix(indev) don't leave edit mode if there is only one object in the group
fix(draw_rect) fix draw pattern stack-use-after-scope error
v7.9.0 (05.01.2021)¶
New features¶
feat(chart) add lv_chart_remove_series and lv_chart_hide_series
feat(img_cache) allow disabling image caching
calendar: make get_day_of_week() public
Added support for Zephyr integration
Bugfixes¶
fix(draw_rect) free buffer used for arabic processing
fix(win) arabic process the title of the window
fix(dropdown) arabic process the option in lv_dropdown_add_option
fix(textarea) buffer overflow in password mode with UTF-8 characters
fix(textarea) cursor position after hiding character in password mode
fix(linemeter) draw critical lines with correct color
fix(lv_conf_internal) be sure Kconfig defines are always uppercase
fix(kconfig) handle disable sprintf float correctly.
fix(layout) stop layout after recursion threshold is reached
fix(gauge) fix redraw with image needle
v7.8.1 (15.12.2020)¶
Bugfixes¶
fix(lv_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¶
make DMA2D non blocking
add unscii-16 built-in font
add KConfig
add lv_refr_get_fps_avg()
Bugfixes¶
fix(btnmatrix) handle arabic texts in button matrices
fix(indev) disabled object shouldn't absorb clicks but let the parent to be clicked
fix(arabic) support processing again already processed texts with _lv_txt_ap_proc
fix(textarea) support Arabic letter connections
fix(dropdown) support Arabic letter connections
fix(value_str) support Arabic letter connections in value string property
fix(indev) in LV_INDEV_TYPE_BUTTON recognize 1 cycle long presses too
fix(arc) make arc work with encoder
fix(slider) adjusting the left knob too with encoder
fix reference to LV_DRAW_BUF_MAX_NUM in lv_mem.c
fix(polygon draw) join adjacent points if they are on the same coordinate
fix(linemeter) fix invalidation when setting new value
fix(table) add missing invalidation when changing cell type
refactor(roller) rename LV_ROLLER_MODE_INIFINITE -> LV_ROLLER_MODE_INFINITE
v7.7.2 (17.11.2020)¶
Bugfixes¶
fix(draw_triangle): fix polygon/triangle drawing when the order of points is counter-clockwise
fix(btnmatrix): fix setting the same map with modified pointers
fix(arc) fix and improve arc dragging
label: Repair calculate back
dotcharacter logical error which cause infinite loop.fix(theme_material): remove the bottom border from tabview header
fix(imgbtn) guess the closest available state with valid src
fix(spinbox) update cursor position in lv_spinbox_set_step
v7.7.1 (03.11.2020)¶
Bugfixes¶
Respect btnmatrix's
one_checkinlv_btnmatrix_set_btn_ctrlGauge: make the needle images to use the styles from
LV_GAUGE_PART_PARTGroup: fix in
lv_group_remove_objto handle deleting hidden objects correctly
v7.7.0 (20.10.2020)¶
New features¶
Add PXP GPU support (for NXP MCUs)
Add VG-Lite GPU support (for NXP MCUs)
Allow max. 16 cell types for table
Add
lv_table_set_text_fmt()Use margin on calendar header to set distances and padding to the size of the header
Add
text_sel_bgstyle property
Bugfixes¶
Theme update to support text selection background
Fix imgbtn state change
Support RTL in table (draw columns right to left)
Support RTL in pretty layout (draw columns right to left)
Skip objects in groups if they are in disabled state
Fix dropdown selection with RTL basedirection
Fix rectangle border drawing with large width
Fix
lv_win_clean()
v7.6.1 (06.10.2020)¶
Bugfixes¶
Fix BIDI support in dropdown list
Fix copying base dir in
lv_obj_createHandle sub pixel rendering in font loader
Fix transitions with style caching
Fix click focus
Fix imgbtn image switching with empty style
Material theme: do not set the text font to allow easy global font change
v7.6.0 (22.09.2020)¶
New features¶
Check whether any style property has changed on a state change to decide if any redraw is required
Bugfixes¶
Fix selection of options with non-ASCII letters in dropdown list
Fix font loader to support LV_FONT_FMT_TXT_LARGE
v7.5.0 (15.09.2020)¶
New features¶
Add
clean_dcache_cbandlv_disp_clean_dcacheto enable users to use their own cache management functionAdd
gpu_wait_cbto wait until the GPU is working. It allows to run CPU a wait only when the rendered data is needed.Add 10px and 8ox built in fonts
Bugfixes¶
Fix unexpected DEFOCUS on lv_page when clicking to bg after the scrollable
Fix
lv_obj_delandlv_obj_cleanif 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_bufto GC rootsFix division by zero in draw_pattern (lv_draw_rect.c) if the image or letter is not found
Fix drawing images with 1 px height or width
v7.4.0 (01.09.2020)¶
The main new features of v7.4 are run-time font loading, style caching and arc knob with value setting by click.
New features¶
Add
lv_font_load()function - Loads alv_font_tobject from a binary font fileAdd
lv_font_free()function - Frees the memory allocated by thelv_font_load()functionAdd style caching to reduce access time of properties with default value
arc: add set value by click feature
arc: add
LV_ARC_PART_KNOBsimilarly to slidersend gestures event if the object was dragged. User can check dragging with
lv_indev_is_dragging(lv_indev_act())in the event function.
Bugfixes¶
Fix color bleeding on border drawing
Fix using 'LV_SCROLLBAR_UNHIDE' after 'LV_SCROLLBAR_ON'
Fix cropping of last column/row if an image is zoomed
Fix zooming and rotating mosaic images
Fix deleting tabview with LEFT/RIGHT tab position
Fix btnmatrix to not send event when CLICK_TRIG = true and the cursor slid from a pressed button
Fix roller width if selected text is larger than the normal
v7.3.1 (18.08.2020)¶
Bugfixes¶
Fix drawing value string twice
Rename
lv_chart_clear_serietolv_chart_clear_seriesandlv_obj_align_origotolv_obj_align_midAdd 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_cntis called beforelv_table_set_row_cntfor the first timeFix 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_checknot forcing exactly one button to be checkedFix color picker invalidation in rectangle mode
Init disabled days to gray color in calendar
v7.3.0 (04.08.2020)¶
New features¶
Add
lv_task_get_nextAdd
lv_event_send_refresh,lv_event_send_refresh_recursiveto easily sendLV_EVENT_REFRESHto objectAdd
lv_tabview_set_tab_name()function - used to change a tab's nameAdd
LV_THEME_MATERIAL_FLAG_NO_TRANSITIONandLV_THEME_MATERIAL_FLAG_NO_FOCUSflagsReduce code size by adding:
LV_USE_FONT_COMPRESSEDandLV_FONT_USE_SUBPXand applying some optimizationAdd
LV_MEMCPY_MEMSET_STDto use standardmemcpyandmemset
Bugfixes¶
Do not print warning for missing glyph if its height OR width is zero.
Prevent duplicated sending of
LV_EVENT_INSERTfrom text areaTidy outer edges of cpicker widget.
Remove duplicated lines from
lv_tabview_add_tabbtnmatrix: handle combined states of buttons (e.g. checked + disabled)
textarea: fix typo in lv_textarea_set_scrollbar_mode
gauge: fix image needle drawing
fix using freed memory in _lv_style_list_remove_style
v7.2.0 (21.07.2020)¶
New features¶
Add screen transitions with
lv_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_MONDAYAdd
lv_chart_set_x_start_point()function - Set the index of the x-axis start point in the data arrayAdd
lv_chart_set_ext_array()function - Set an external array of data points to use for the chartAdd
lv_chart_set_point_id()function - Set an individual point value in the chart series directly based on indexAdd
lv_chart_get_x_start_point()function - Get the current index of the x-axis start point in the data arrayAdd
lv_chart_get_point_id()function - Get an individual point value in the chart series directly based on indexAdd
ext_buf_assignedbit field tolv_chart_series_tstructure - it's true if external buffer is assigned to seriesAdd
lv_chart_set_series_axis()to assign series to primary or secondary axisAdd
lv_chart_set_y_range()to allow setting range of secondary y-axis (based onlv_chart_set_rangebut extended with an axis parameter)Allow setting different font for the selected text in
lv_rollerAdd
theme->apply_cbto replacetheme->apply_xcbto make it compatible with the MicroPython bindingAdd
lv_theme_set_base()to allow easy extension of built-in (or any) themesAdd
lv_obj_align_x()andlv_obj_align_y()functionsAdd
lv_obj_align_origo_x()andlv_obj_align_origo_y()functions
Bugfixes¶
tileviewfix navigation when not screen sizedUse 14px font by default to for better compatibility with smaller displays
linemeterfix conversation of current value to "level"Fix drawing on right border
Set the cursor image non-clickable by default
Improve mono theme when used with keyboard or encoder
v7.1.0 (07.07.2020)¶
New features¶
Add
focus_parentattribute tolv_objAllow using buttons in encoder input device
Add lv_btnmatrix_set/get_align capability
DMA2D: Remove dependency on ST CubeMX HAL
Added
max_usedpropriety tolv_mem_monitor_tstructIn
lv_inittest if the strings are UTF-8 encoded.Add
user_datato themesAdd LV_BIG_ENDIAN_SYSTEM flag to lv_conf.h in order to fix displaying images on big endian systems.
Add inline function lv_checkbox_get_state(const lv_obj_t * cb) to extend the checkbox functionality.
Add inline function lv_checkbox_set_state(const lv_obj_t * cb, lv_btn_state_t state ) to extend the checkbox functionality.
Bugfixes¶
lv_imgfix invalidation area when angle or zoom changesUpdate the style handling to support Big endian MCUs
Change some methods to support big endian hardware.
remove use of c++ keyword 'new' in parameter of function lv_theme_set_base().
Add LV_BIG_ENDIAN_SYSTEM flag to lv_conf.h in order to fix displaying images on big endian systems.
Fix inserting chars in text area in big endian hardware.
v7.0.2 (16.06.2020)¶
Bugfixes¶
lv_textareafix wrong cursor position when clicked after the last characterChange all text related indices from 16-bit to 32-bit integers throughout whole library. #1545
Fix gestures
Do not call
set_px_cbfor transparent pixelFix 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.hAdd log in true double buffering mode with
set_px_cblv_dropdown: fix missingLV_EVENT_VALUE_CHANGEDevent when used with encoderlv_tileview: fix if not the {0;0} tile is created firstlv_debug: restructure to allow asserting in fromlv_misctooadd assert if
_lv_mem_buf_get()failslv_textarea: fix character delete in password modeUpdate
LV_OPA_MINandLV_OPA_MAXto widen the opacity processed rangelv_btnmfix sending events for hidden buttonslv_gagugemakelv_gauge_set_angle_offsetoffset the labels and needles tooFix typo in the API
scrllable->scrollabletabviewby default allow auto expanding the page only to right and bottom (#1573)fix crash when drawing gradient to the same color
chart: fix memory leak
img: improve hit test for transformed images
v7.0.1 (01.06.2020)¶
Bugfixes¶
Make Micropython working by adding the required variables as GC_ROOT
Prefix some internal API functions with
_to reduce the API of LVGLFix built-in SimSun CJK font
Fix UTF-8 encoding when
LV_USE_ARABIC_PERSIAN_CHARSis enabledFix 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_OFSto adjust color mixing to make it compatible with the GPUImprove DMA2D blending
Remove memcpy from
lv_ll(caused issues with some optimization settings)lv_chartfix X tick drawingFix vertical dashed line drawing
Some additional minor fixes and formattings
v7.0.0 (18.05.2020)¶
Documentation¶
The docs for v7 is available at https://docs.littlevgl.com/v7/en/html/index.html
Legal changes¶
The name of the project is changed to LVGL and the new website is on https://lvgl.io
LVGL remains free under the same conditions (MIT license) and a company is created to manage LVGL and offer services.
New drawing system¶
Complete rework of LVGL's draw engine to use "masks" for more advanced and higher quality graphical effects. A possible use-case of this system is to remove the overflowing content from the rounded edges. It also allows drawing perfectly anti-aliased circles, lines, and arcs. Internally, the drawings happen by defining masks (such as rounded rectangle, line, angle). When something is drawn the currently active masks can make some pixels transparent. For example, rectangle borders are drawn by using 2 rectangle masks: one mask removes the inner part and another the outer part.
The API in this regard remained the same but some new functions were added:
lv_img_set_zoom: set image object's zoom factorlv_img_set_angle: set image object's angle without using canvaslv_img_set_pivot: set the pivot point of rotation
The new drawing engine brought new drawing features too. They are highlighted in the "style" section.
New style system¶
The old style system is replaced with a new more flexible and lightweighted one. It uses an approach similar to CSS: support cascading styles, inheriting properties and local style properties per object. As part of these updates, a lot of objects were reworked and the APIs have been changed.
more shadows options: offset and spread
gradient stop position to shift the gradient area and horizontal gradient
LV_BLEND_MODE_NORMAL/ADDITIVE/SUBTRACTIVEblending modesclip corner: crop the content on the rounded corners
text underline and strikethrough
dashed vertical and horizontal lines (dash gap, dash_width)
outline: a border-like part drawn out of the background. Can have spacing to the background.
pattern: display and image in the middle of the background or repeat it
value display a text which is stored in the style. It can be used e.g. as a light-weighted text on buttons too.
margin: similar to padding but used to keep space outside the object
Read the Style section of the documentation to learn how the new styles system works.
GPU integration¶
To better utilize GPUs, from this version GPU usage can be integrated into LVGL. In lv_conf.h any supported GPUs can be enabled with a single configuration option.
Right now, only ST's DMA2D (Chrom-ART) is integrated. More will in the upcoming releases.
Renames¶
The following object types are renamed:
sw -> switch
ta -> textarea
cb -> checkbox
lmeter -> linemeter
mbox -> msgbox
ddlist -> dropdown
btnm -> btnmatrix
kb -> keyboard
preload -> spinner
lv_objx folder -> lv_widgets
LV_FIT_FILL -> LV_FIT_PARENT
LV_FIT_FLOOD -> LV_FLOOD_MAX
LV_LAYOUT_COL_L/M/R -> LV_LAYOUT_COLUMN_LEFT/MID/RIGHT
LV_LAYOUT_ROW_T/M/B -> LV_LAYOUT_ROW_TOP/MID/BOTTOM
Reworked and improved object¶
dropdown: Completely reworked. Now creates a separate list when opened and can be dropped to down/up/left/right.label:body_drawis 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: useLV_CALENDAR_PART_DATEnormal for normal dates, checked for highlighted, focused for today, pressed for the being pressed. (checked+pressed, focused+pressed also work)chart: only hasLINEandCOLUMNtypes 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_BGalso added to set a different style for the series area. Padding inLV_CHART_PART_BGmakes 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_imgallows use image as needlecanvas: allow drawing to true color alpha and alpha only canvas, addlv_canvas_blur_hor/verand renamelv_canvas_rotatetolv_canvas_transformtextarea: If available in the font use bullet (U+2022) character in text area password
New object types¶
lv_objmask: masks can be added to it. The children will be masked accordingly.
Others¶
Change the built-in fonts to Montserrat and add built-in fonts from 12 px to 48 px for every 2nd size.
Add example CJK and Arabic/Persian/Hebrew built-in font
Add ° and "bullet" to the built-in fonts
Add Arabic/Persian script support: change the character according to its position in the text.
Add
playback_timeto animations.Add
repeat_countto animations instead of the current "repeat forever".Replace
LV_LAYOUT_PRETTYwithLV_LAYOUT_PRETTY_TOP/MID/BOTTOM
Demos¶
lv_examples was reworked and new examples and demos were added
New release policy¶
Maintain this Changelog for every release
Save old major version in new branches. E.g.
release/v6Merge new features and fixes directly into
masterand release a patch or minor releases every 2 weeks.
Migrating from v6 to v7¶
First and foremost, create a new
lv_conf.hbased onlv_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.