Skip to content

Releases: lvgl/lvgl_pro

v2.0.2-rc1

Choose a tag to compare

@mrhubbs mrhubbs released this 31 Jul 14:31
c075e5c

Added

  • Debug logs to the LicenseService.

Fixed

  • Permanent screens are guarded with #if !defined(LV_USE_XML) || LV_USE_XML == 0 so it fires when the macro is absent or explicitly 0. Inside the Editor (LV_USE_XML == 1 behavior is unchanged, screens are still created from XML.
  • Prefix all generated header guards with LVGL_PRO_ to avoid collisions with similar names (for example, a list component could conflict with list header file from a 3rd-party or platform library).
  • Screen name from XML was not used in generating header guard - filename was used instead.
  • lv_obj radio_button prop. Was incorrectly mapped as a flag when it is a boolean property - making it unusable.

v2.0.1

Choose a tag to compare

@mrhubbs mrhubbs released this 22 Jul 23:22
d8e8c86

Added

  • Legal acceptance flow and panel for EULA, Privacy Policy, and Terms of Service — post-login overlay when documents are updated
  • Git workspace validation for Product licenses: detects git installation, repository status, and remote URL mismatches with actionable error messages.
  • Auto-configuration of git remote when assigning a Product license to a project.
  • "Update" button in top-right of the Editor, which appears when there is a new release available. Clicking it opens the changelog for the new release in an overlay with a button to go to the website download page.

Changed

  • Launch screen license label now shows a single formatted name, appending the tier only when it is not already part of the display name.
  • Project selection now requires selecting the exact folder containing project.xml and globals.xml (no longer auto-resolves to ui/ subfolder).

Fixed

  • Emsdk/toolchain dependency installation (bundled Python download) now routes through HTTP_PROXY/HTTPS_PROXY/NO_PROXY when configured, instead of failing with a generic fetch failed error on networks that require a proxy.
  • Notification toasts now layer correctly above modals and overlays.
  • XSS vulnerability in inline markdown link rendering by escaping quote characters in href attributes.
  • License selector is no longer closable until a valid license is selected, and closes after a successful selection.
  • Signing out no longer restarts the app after briefly showing the auth panel.
  • Git remote configuration failing when other remotes exist but origin does not.

v2.0.0

Choose a tag to compare

@Anthony-De Anthony-De released this 06 Jul 18:04
e769ec0

Overview

This is a major update and brings the editor to you with no time limit. No feature restrictions. No credit card.

If you're building something personal, open-source, or just evaluating, the full editor is yours. Every feature, no expiry.

Alongside a long list of new features, we rebuilt the Editor's foundation to make it faster, more stable, with a familiar VSCode like interface, built in accessories, fully ready for the way teams work. v2.0.0 marks the point where the Editor grows to meet the demands the community and our customers have made.

Licensing built for you v2.0.0 moves to a product based model instead of a recurring subscription. Personal, open-source, and evaluation use stays free forever, commercial teams license per product with five years of updates, startups get a special price, and companies going all in on LVGL move up to Platform with floating and on-premise licensing options.

AI ready, out of the box v2.0.0 ships with an MCP server for LVGL XML. AI assistants can read, understand, and help write your UI definitions. Building embedded UIs with the help of tools like Claude and Gemini is now a first class part of the workflow.
LVGL Flow for Figma. Our new Figma plugin brings your full designs straight into the Editor, reducing the figma to screen conversion time to mere seconds.

Expression evaluation Instead you assigning values to properties you use expressions like width="{large ? 200 : 100}" or hidden="{subtitle == '' ? true : false}"

Memory usage analysis We know that on embedded, every byte counts. A new panel showing exactly where your flash and RAM go.

Design Mode, leveled up Edit component slots, wire up events and screen loads.
Multiple targets. Shipping a line of products with different display sizes and UIs? Define multiple UIs of a product line from a single source and switch between them live in the Preview.

Smoother Onboarding We’ve built a Learn by Examples flow that drops you into real, working projects built from bundled templates instead of a blank canvas so you can get started in seconds.

Added

  • Pointer subjects for image bindings, including <pointer> support in globals.xml, typed bind_src validation and autocomplete, preview/runtime updates, and lv_image bind_src code generation. (#247)
  • Design Mode Events section in the Properties panel for adding, editing, and removing event elements, such as event_cb and screen load events, on the selected component.
  • Standard API getters for accessing slots.
  • Design Mode support for editing component slots, including adding, duplicating, drag-and-drop reordering, and copy/paste operations in slot layers.
  • Memory usage summary feature with a UI panel, graphs, and code export support.
  • Proper support for repeat_count and repeat_delay in animation timelines.
  • CLI screenshot command for capturing a screen as a PNG.
    • Example: node lved-cli.js screenshot ./testing/test_project screens/main_screen --out main.png --delay 300
  • Default ZIP repository loading for Theia browser GitHub projects, with the existing GitHub Tree/raw-file flow kept as the automatic fallback.
  • Preview inspection for access="add" and access="get" typed elements, such as lv_tabview-tab and lv_dropdown-list, and their contents.
  • Expression evaluation, like width="{large ? 200 : 100}"
  • Launch screen Learn by Examples flow for creating Tutorials or Examples projects from bundled templates.
  • Image convert support for creating multiple versions of the same source image.
  • Project theme support with <project theme="default"> and <project theme="simple">.
  • Support for the precise_points type, including lv_line support in code export and XML validation.
  • Support for content, 1fr, and validation in grid_row_dsc_array and grid_column_dsc_array.
  • Responsive target support: targets defined in project.xml can now be referenced in fonts, images, views, styles, and other project resources to create multiple versions of the UI. Preview supports dynamically switching between targets.
  • Figma Flow plugin integration.
  • Proper support for px|% and px|%|content types in widget properties.
  • Validation and autocomplete for animation targets and timelines.
  • Full support for array types: type[], type[N] / type[count], and string[NULL]. (#370)

Changed

  • Launch screen now opens on every app launch when signed in with a valid license, including when a project was restored from the previous session.
  • Simplified unit selector for Design Mode number inputs, such as position and size fields.
  • Project opening now enforces Product, Platform, Community, and Evaluation license rules using product_id and git_url project metadata.
  • Preview now reloads when any .xml file in the open project changes, improving support for external tools.

Removed

  • figma-sync CLI command. Figma integration is now handled through the Figma Flow plugin.
  • copy-resources CLI command.
  • --toolchain-mode option from the generate, compile, run-test, run-all-tests, and screenshot CLI commands. The toolchain now always uses local-emsdk.

Fixed

  • Design Mode subject pickers no longer keep removed globals.xml subjects as valid choices.
  • Design Mode copy, cut, paste, and Preview zoom shortcuts now work through Theia keybindings.
  • Deleted project folders now clear stale workspace and file navigator state, and close project-scoped bottom panels.
  • File > Open Project now uses the in-place Project Launcher flow instead of triggering a full Theia reload.
  • Removed obsolete Design Mode XML-comment warnings when opening screens.
  • Clean/build project operations now validate before deleting generated files.
  • Improved backdrop contrast for the light-theme toolchain installation modal.
  • Validation and build output remains available after switching projects so errors can still be inspected.
  • Subject validation now keeps root globals.xml subjects when parsing library globals.xml files.
  • Validation failure toasts now show local relative paths and wrap long file names.
  • Asset Memory can sort memory regions and assets by bandwidth as well as size.
  • Project commands now save unsaved editor tabs before running.
  • Design panel shortcuts now work when the Design panel or Preview is active outside full Design mode.
  • Pasted and duplicated Design elements now get unique names without renaming the source element.
  • File > Open Project Launcher now uses the launcher, while File > Open File and Ctrl/Cmd+O are disabled in Theia.
  • Theia project command shortcuts now save dirty editor tabs before running.
  • Recent projects are now timestamped, sorted by last opened, refreshed when the launcher opens, and show a clear error for moved or deleted paths.
  • Code export improvements for slot support.
  • Improved UX when the user's login has expired. (#371)
  • Added a guided flow to install emsdk, pypng, and lz4 locally when compiling with the local toolchain.
  • Setters on widget elements with access="add" now correctly operate on the generated child element.
  • User-defined event callbacks are now called correctly.
  • Memory usage monitoring now counts file-backed TinyTTF fonts and file images once per source file.
  • Translation strings starting with $ or # are no longer treated as API or const references during validation and code export.
  • Preview compatibility on Linux and macOS has been improved.
  • CLI compile command now correctly defaults the compilation target to cli.

v2.0.0-beta

v2.0.0-beta Pre-release
Pre-release

Choose a tag to compare

@mrhubbs mrhubbs released this 25 Jun 00:45

Added

  • Pointer subjects for image bindings, including <pointer> support in globals.xml, typed bind_src validation/autocomplete, preview/runtime updates, and code generation for lv_image bind_src. (#247)
  • Design Mode Events section in the Properties panel for adding, editing, and removing event elements (e.g. event_cb, screen load events) on the selected component.
  • Generate standard API getters for accessing slots.
  • Design Mode support for editing component slots, including adding, duplicating, drag-and-drop reordering, and copy/paste operations in slot layers.
  • Memory usage summary feature, including a UI panel with graphs and additions to code export.
  • Proper support for repeat_count and repeat_delay in animation timelines.
  • CLI screenshot command for capturing a screen as a PNG.
    • Example: node lved-cli.js screenshot ./testing/test_project screens/main_screen --out main.png --delay 300
  • Preview inspection for access="add"/access="get" typed elements (e.g. lv_tabview-tab, lv_dropdown-list) and their contents.
  • Launch screen Learn by Examples flow to create Tutorials or Examples projects from bundled templates.
  • Image convert support allow creating multiple versions of the same source image.
  • <project theme="default or simple">to set a good looking or a minimally styled theme
  • Support for type precise_points (supports lv_line) to code export and XML validation.
  • Support content, 1fr (besides fr(1)), and validation in grid_row/column_dsc_array
  • Responsive target support: targets defined in project.xml can now be referenced in fonts, images, views, styles, etc. to create multiple versions of the UI. The Preview supports dynamically switching between them.
  • Figma Flow plugin to the Editor.
  • Proper support for types px|% and px|%|content in widget properties.

Changed

  • Launch screen opens on every app launch when signed in with a valid license, including when a project was restored from the previous session.
  • Simplified unit selector for Design Mode number inputs (e.g. position and size fields).
  • Project opening now enforces Product, Platform, Community, and Evaluation license rules using product_id and git_url project metadata.
  • For external tool support - reload the Preview whenever any .xml file in the open project is changed.

Fixed

  • Code export tweaks for slot support.
  • Confusing UX flow when the user's login has expired (#371).
  • UI flow to install emsdk locally, on first compilation
  • Setters on widget elements with access="add" would operate on the widget itself, instead of the child element, in code export.
  • User-defined event callbacks were not being called (the weak ones stubbed by code export were incorrectly preferred).
  • Memory usage monitoring now counts file-backed TinyTTF fonts and file images once per source file.
  • Translation strings starting with $ or # being treated as API or const references during validation and code export.
  • Use Emscripten environment "worker" instead of "web" because the Preview runs in a worker. On some Linux and Mac machines, the preview wouldn't run because of this.

v1.2.1

Choose a tag to compare

@mrhubbs mrhubbs released this 22 May 01:43

Please see this blog post about some of the new features!

Added

  • Proper support for repeat_count and repeat_delay in animation timelines.

Fixed

  • Generate standard API getters for accessing slots.
  • Code export tweaks for slot support.
  • Confusing UX flow when the user's login has expired (#371)
  • UI flow to install emsdk locally if the user tries to compile when the Editor is in local-emsdk mode.
  • Setters on widget elements with access="add" would operate on the widget itself, instead of the child element, in code export.

v1.2.0

Choose a tag to compare

@mrhubbs mrhubbs released this 12 May 02:44
845a97d

NOTE: Please see v1.2.1, as we stabilized some issues.

Please see this blog post about setup for bundled runtimes / local emsdk.

Added

  • ☝🏻 Support LVGL v9.5.0, including slot support and bind_style_prop. NOTE: specifying lvgl_version="..." in project.xml is now required.
  • 🎁 Include pre-built runtimes with the Editor, so it is not necessary to compile for the live, XML preview to work.
    • NOTE: if your project uses custom C code / custom widgets and you do not compile, the preview can be innacurate.
    • NOTE: this also significantly speeds-up compile times, because lib LVGL is distributed pre-built and does not need to be compiled
  • 🧍 Added user_config.cmake to the project template to allow users to add extra source files to the generated editor project without modifying generated files.
  • 💬 Popup in case of repeated failures to connect to the LVGL licensing service.

Fixed

  • Fix a small issue where widget generated headers would have an extra ';' in some cases causing pedantic warnings at compilation time
  • Numeric subject fields use text-based editing with keyboard stepping so decimal values stay readable while still supporting arrow increment and decrement.
  • File Navigator header actions now create files and folders correctly when a root-level file is selected.
  • Enable LV_USE_IMGFONT by default in the Editor runtime configuration.
  • XML validation and completion now handle globals.xml comments correctly, including root comments and comments on the first line inside inner elements such as <enums>.
  • Figma style sync now accepts both plugin scene nodes and deserialized Figma API node data during project updates.
  • Referenced component/widget API props now take precedence over wrapper element props with the same name during XML schema lookup and validation.
  • Designer mode image handling now keeps globals.xml, the images/ folder and related project XML references in sync for image add, change, rename and delete flows.
  • Active XML previews now refresh reliably when synced image references or externally modified XML files change on disk.
  • globals.xml changes now trigger preview runtime reloads so image updates appear without switching modes.
  • Image uploads now reconcile globals.xml immediately, so newly added external images appear without waiting for delayed watcher timing.
  • Dropdown menus now keep within the viewport with scrolling and smarter alignment when space is limited.
  • Editor autocomplete suggestion visibility over the Subjects panel.
  • Online Preview GitHub loading, runtime fallback logging, and preview-mode actions.
  • Online Preview code export path handling for repo-root and subtree projects.
  • Online Preview schema cleanup after removing component libraries.
  • Online Preview template project creation now writes .gitignore instead of leaving the bundled gitignore template file in /ui.
  • Online Preview XML saves now sync text files through the text cache and avoid re-transferring detached worker buffers.
  • Online Preview and UI lint configs now run under the current ESLint flat-config setup and catch unused imports correctly.
  • Electron recent-project history now deduplicates entries by project path and keeps the newest lastOpened record.
  • E2E testing stability improvements and expanded Windows OS test coverage.
  • Simplified LVGL private includes.
  • Restore saving output PNGs for tests in subfolders of the screens folder.

v1.1.2

Choose a tag to compare

@mrhubbs mrhubbs released this 27 Mar 02:15

Please note there is one breaking change. Widget/component API props (getters) were generated with an extra argument. This is now fixed, and all [widget]_gen.h files will be regenerated on code export, but you must delete or fix any [widget].c files to correct the generated functions.

Added

  • Custom editor context menu with functional actions. (#328)
  • Add ANSI colours to the Console output of the Editor (error, warning, note). (#332)
  • Intelligent image and font conversion that skips re-conversion of up-to-date resources.

Changed

  • Fit to screen when preview selection is changed.

Fixed

  • Widget private header generation now uses the correct pointer type for non-object child elements such as lv_chart-series.
  • Prevent subject update feedback loop by skipping updates when they originate from LVGL.
  • Fix Inspector toggle and enabling with Alt or Alt + I shortcuts.
  • Textarea shows for string and text type attributes.
  • Test screen shot compare path with subfolder resolution fix.
  • Correct LVGL Pro-related weblinks.
  • Editor crashing when opening a project without a globals.xml file.
  • Excessive API inheritance for extended components.
  • 'lv_textarea' missing properties and missing part selector. (#295)
  • Project overview reflects component library content and presence.
  • Load all files into LVGL Schema when component library added.
  • Correct adding float value in subject field. (#330)
  • Various Translations issues: not showing until opening a project, translations not updating in preview, local translations never shown, input field stability.
  • Subject inputs now reject out-of-range min_value / max_value updates consistently across the form, preview store and runtime.
  • Empty string was not allowed for string api props if default was not present. If default was present, the default value was incorrectly used instead of the empty string.
  • Widget/component properties (of elements with access='get') were generated with an extra argument.
    • NOTE: fix will auto-regenerate all [widget]_gen.h files, but you must delete or fix any [widget].c files to correct the generated functions.
  • Make text area popup input to the clicked prop, not the first in the schema.
  • Support automatic reloading of XML files modified by external editors for Windows. #345

v1.1.1

Choose a tag to compare

@mrhubbs mrhubbs released this 04 Mar 03:37

This release continues our commitment to rapid bugfixing. We have also been implementing many automatic tests to ensure reliable software. We are pleased to share that many bugs are being caught by internal tests, before they can even be reported by users. On the flip side, the reporting from our users has been awesome! Thank you to everyone who contributes to improving these tools! (New fixes are, of course, made available every 24hrs in our nightly builds.)

But all that work hasn't stopped us from slipping in some small quality-of-life improvements. :) See below.

Added

  • Toggle visibility of generated files (*_gen.c, *_gen.h) via the filter button in the File Navigator; visible by default. (#304)
  • Collapse-all button in the File Navigator to collapse all expanded folders in the file tree.
  • Preliminary support for locally-installed Emscripten instead of using a container/Podman/Docker.
  • File navigator context menu action to reveal files/folders in the host OS file manager (Finder/File Explorer/File Manager).

Changed

  • Improved LVGL linking for target builds when using CMake:
    • Projects now automatically link with LVGL when the lvgl target is detected at configure time
    • The lvgl target can be provided through multiple methods:
      • add_subdirectory(lvgl) - when LVGL is a subdirectory of your project
      • FetchContent - when LVGL is fetched as a dependency
      • find_package(lvgl) - when LVGL is installed system-wide or via a package manager
    • Simply include your LVGL UI project with add_subdirectory(YOUR_LVGL_UI_PROJECT_FOLDER) after the lvgl target is available
  • Allow switching between Design and Code mode on any screens and components.
  • Do not generate C variables for unused objects.
  • Selector with pipe (|) symbol also triggers completion.
  • Open project file browser defaults to last opened path.
  • File navigator: Add Template button tooltip is context-specific (e.g. "Add New Component", "Add New Widget", "Add New Screen") depending on the folder.
  • Change external file paste dialog box text. (#322)

Fixed

  • Sync with widget_xml_parser.c for the generated header files. (#72)
  • Incorrect paths in generated component library includes on Windows. (#324)
  • Incorrect Windows external-command invocation which prevented local Emscripten from being used on certain machines.
  • LVGL assertion failures would hang the CLI indefinitely while running tests.
  • VS Code Preview would not work.
  • CLI tests always failed on Windows due to pathing issues. ([#314]#314))
  • File navigator: Corrected caret rotation for closed directories
  • Font conversion broken in the CLI, on all OSes, since v1.1.0. (#318)
  • No min_value and max_value suggestion for constants' <int> and <prop> image typed default value suggestion with images.
  • Prevent automatic jump back to parent when adding children in Design mode
  • Incorrect Font and Subject input field type detection in Properties panel (Design mode)
  • Long input field labels can mess up the layout in the Properties panel in Design mode
  • Screens in subfolders had subfolder name prepended to screen name. (#320)
  • Stabilize single and all test runners.
  • Fitting preview to screen on every XML edit.
  • Online Preview: Redirect to /ui only when template project is added, no slash escaping in URL.
  • Superfluous popups asking user to pick a license.
  • At XML completion use parent extends for allowed children.
  • Inspector can be enabled by pressing Alt, independent of the current focus.
  • Test image difference images scale to container width.
  • In Design Navigator keep same parent selected after dropping inside another element.
  • CLI ignoring the --ignore-fonts and --ignore-images options. NOTE: Using these options can generate C code that will not compile, as font/image resources are not included in the build. These are intended to be used when quickly sanity-checking exported C code for widgets/components. (#323)
  • Assets synchronization now runs in both Design and Code modes for the active project.
  • Assets synchronization now applies <images sync="true"> from globals.xml on each sync run and triggers immediately when globals.xml changes.
  • Image sync now reconciles by image src_path (canonicalized path), preserving manually renamed image name values in globals.xml.
  • Image sync no longer leaves an extra blank line in <images> after removing image entries.

v1.1.0

Choose a tag to compare

@mrhubbs mrhubbs released this 10 Feb 03:06
6fe055a

We have two new features worthy of mention, both in beta.

  1. Drag and Drop: Open a screen and toggle using the buttons on the top of the Preview. This offers a visual experience for building screens. Please enjoy, but also please note any part is subject to change in the future and there are some bugs.
  2. Preliminary Component Library Support: It is now possible to utilize components, screens, fonts, images, styles, etc. from a subproject in a parent project. Use the "Add Starter Library" button on the home screen to add our pre-made component library to your project, or create a lib folder and create a new project in that. Please note: this experience is also in beta and validation and autocomplete are not fully supported (when editing files in the subproject, it will allow referencing items from the parent project).

Important Change about CMakeLists.txt

Previously, it was possible to add user modifications to CMakeLists.txt. That is no longer supported as the file will be regenerated every code export (this change was made to cleanly support component libraries). If CMake customizations are required for your project, you need to put them in a separate file.

Added

  • Commit and push to GitHub file changes in batch to keep track of any saved files in the Online Preview.
  • Click on constant reference leads to definition; Autocomplete suggestions after # reference symbol.
  • Button to add starter component library to an open project.
  • Create, rename and delete file or folder in Online Preview with a context menu.
  • CLI generate flags to skip expensive resource conversions (--ignore-fonts, --ignore-images) (#255).

Changed

  • Optimise and refactor test runs using web worker to avoid unnecessary argument passing.
  • Updated VS Code Extension icon to match the LVGL Pro icon.
  • Lazy-load the heaviest UI pieces for better bundle size in VS Code Extension.
  • Refactor code generation to be able to support browser-friendly environment.
  • Prevent the Monaco inline textarea editor from rewriting numeric XML entities (e.g., ) into literal glyphs when the field is opened or edited.
  • Add entity-aware encode/decode helpers so the UI can show readable text while preserving user-typed entity literals.
  • Restrict component-level Preview dimensions to be only type integer. (#303)

Fixed

  • Multiline <api><prop ...></prop></api> values are now detected when collecting document API props.
  • API/subject $ references now validate against global API props as well (#271).
  • Figma sync no longer hardcodes width/height for text nodes set to hug contents (#175).
  • lv_font_conv now respects font compress/colorinfo options in globals.xml (#286)
  • Respect subject min_value/max_value in the "In this file" Subjects view.
  • VS Code Extension files are opened always left from the LVGL preview.
  • Cutting a file/folder and pasting in the same location bug on Windows (#733)
  • Avoid showing the generic error toast for component names starting with error_
  • Multiple issue fixes in Designer Mode's navigator and properties panel.
  • Manual animation trigger fixed with the web worker implementation.
  • Watch for non-XML open file system changes to react on refreshing tabs.
  • (autocomplete): global props not appearing for defaults (#734)
  • (autocomplete): duplicating existing values for multi-value enums (#734)
  • Windows production build CI NPM cache issue fix
  • Use "slowdown" setting during test wait steps. This will prolong the wait, or shorten it all together, according to the slowdown option.
  • Occasional runtime crashes / reloads while running tests. There are still some random cashes being investigated, but the frequency is much reduced.
  • Preview blanking when switching file or Design / Code mode.

v1.0.2

Choose a tag to compare

@mrhubbs mrhubbs released this 12 Dec 23:09

This is our biggest bugfix/quality release by far! The Editor Team has been hard at work for weeks to resolve reported issues and issues discovered internally. We want to bring you a bulletproof editing experience! 🛡️

And also a huge thank you to everyone testing, reporting issues and aiding in troubleshooting! 🙏🏻

But first, we have to mention a few known issues (these will be fixed soon):

  • 🕵🏻‍♂️ The Inspector feature in the Preview may leave visual artifacts onscreen, especially after screen transitions. The workaround is switching to another screen and back.
  • 🎲 Running a single test randomly fails on occasion. (This is an issue in the Editor, but not the CLI.)
  • 🥶 The preview will occasionally freeze (and automatically reload) while running a test.

(Please note: this release does not include an updated VS Code extension. We will update that and release it with all the features/fixes below early in the new year.)

Added

  • 🏃🏻‍♂️ Run all tests feature (open project.xml file and then the Tests tab) (#108)
    • 🧪 Please note: this feature is experimental and a little unstable (it may get stuck or reload the runtime). We will harden it shortly.
  • A test slowdown option (see the dropdown next to the test run button)
  • Container pull progress indicator (shown in a toast)
  • Validation to prevent global name duplication (constants, enums, styles, fonts, images, components, widgets, etc.)
  • 🏡 "home" button next to file tabs
  • Update Console with better layout and scrollbar styling (#240)
  • Copy console, pause console scroll, reduce logs, file navigator auto scrolling and opening directories (#238)
  • Clear console on switching projects and remove offline error popups (#191)

Fixed

  • 🚀 💪 Prevent Preview crashes from crashing or freezing the Editor. The Preview now runs in a separate thread, which is automatically restarted as needed. This work also resolves the "WASM out of memory" error which would occur when editing for mid to long periods of time.
  • Unclickable buttons on code editor finder popup
  • Gracefully handle opening a folder that is not an LVGL project (#190)
  • Code editor tabs sometimes not closing on MacOS external display (#227)
  • Broken keyboard shortcuts
  • Buttons on popup for invalid session
  • Update wrapped translation entries
  • Dependency security updates
  • Solve project on separate volume and cleanup dialogs for cancelled operations (#189)
  • Renaming open file did not rename its open tab in the code editor
  • Deleting project root on windows
  • Extra separator lines from menus
  • Screenshot compare file extension for .png must exist
  • (code export): certain errors were swallowed and not shown
  • (code export): incorrect widget element property setters
  • (code export): Add [WIDGET_NAME]_USER_DATA macro to widgets, to allow for custom user data (set the macro in [widget_name].h if you wish to use it
  • (code export): Timeline early apply is added too late (#237)
  • (code export): Crash due to global styles initialized before global fonts and images (#241)
  • (code export): Fix cross-platform #include order inconsistencies
    • The order of includes in code generated on Windows would not match the order on Linux/Mac. That would create conflicts in version control.