Skip to content

Latest commit

 

History

History
622 lines (540 loc) · 30.8 KB

CHANGELOG.md

File metadata and controls

622 lines (540 loc) · 30.8 KB

Unreleased

  • Fix cargo zng res not getting explicit metadata from lib crates.
  • Implement --verbose for cargo zng res.
  • Localize settings search box placeholder text.

0.12.1

  • Fix panic trying to use font index on macOS.
  • Fix default UI font in Apple systems.
  • Breaking Update webrender dependency.
    • Note that this is only a breaking change for direct dependents of zng-view extensions API.
  • Fix --clean-deps in cargo zng l10n.
  • Implement --verbose for cargo zng l10n.

0.12.0

  • Log warning when property is not used because it has no default value.
  • Define default max_size, max_width and max_height so these properties can now be only set by when conditions.
  • Fix sticky_size, sticky_width and sticky_height properties when dynamically disabled and re-enabled.
  • Fix sticky_height using x constraint.
  • Fix fill align in Scroll! dimensions that do not scroll.
  • Implement alternate SettingsEditor! layout for narrow width (mobile).
  • Implement equality and comparison for Dip and Px to i32 (and f32 for Dip).
  • Breaking Move IS_MOBILE_VAR to zng-wgt and zng::widget.
  • Breaking Move is_mobile and force_mobile to zng-wgt and zng::widget.
    • These properties are no longer strongly associated with Window.
  • Add SettingsEditor::panel_fn for customizing the full editor layout.
  • Breaking Remove previous deprecated UiNodeVec.
  • Breaking Remove unused renderer param in FrameUpdate::new.

0.11.8

  • Add cargo zng l10n --clean.
    • Add cargo zng l10n --clean-deps to remove previously copied localization before new copy.
    • Add cargo zng l10n --clean-template to remove previously scraped files.
  • Add cargo zng l10n --no-pkg to skip scraping the target package, only copy localization from dependencies.
  • Don't show keyboard shortcuts in mobile menus.
  • Fix incorrect TouchInputArgs::position in nested windows.

0.11.7

  • Fix OpenGL version check.
  • Fix window receiving a cursor move event while cursor is not over (on x11).
  • Remove end punctuation from command info fields
  • Add better custom chrome for GNOME+Wayland.
  • Add zng::widget::node::bind_state_init helper.
  • Add Window::needs_fallback_chrome and Window::prefer_custom_chrome property.
  • Breaking Add ChromeConfig and related events to the view API.
    • Note that this is only a breaking change for direct dependents of zng-view-api and zng-app.

0.11.6

  • Fix breaking change in 0.11.5, UiNodeVec is only deprecated, but was removed from preludes and re-exports.

0.11.5

  • Monitor query now falls back to largest screen when there is no primary monitor.
  • Fix monitor query not updating for new window before first layout. Fixes window size in Ubuntu without GPU.
  • Fix touch event targeting in nested windows.
  • Fix MOUSE.position not tracking nested windows.
  • Fix context menu not opening in nested windows.
  • Fix focus not clearing from nested window when parent window loses focus on the system.
  • Fix context menus of child and parent opening at the same time.
  • Add missing zng::event::AppCommandArgs, command app level event handling is part of the surface API.
  • Fix nested window render update flickering.
  • Deprecated Renamed UiNodeVec to UiVec, old name is now a deprecated type alias.
  • Fix focus not returning to main window after nested window closes.
  • Breaking View API focus now returns a new FocusResult.
    • Note that this is only a breaking change for direct dependents of zng-view-api and zng-app.
  • Fix app context in nested windows.
  • Add CaptureFilter::app_only and ContextValueSet::insert_app.

0.11.4

  • Add zng::container::{child_out_*, child_under, child_over} properties.
  • Implement window nesting, primarily as an adapter for mobile platforms.
    • Add WINDOWS.register_open_nested_handler.
    • Add WindowVars::is_nesting.
    • Add nested_window and nested_window_tree helper methods for WidgetInfo and focus info.
    • Add default nesting handler on platforms that only support one window (Android).
  • Add LAYERS_INSERT_CMD for inserting layer widgets from outside the window context.
  • Add LAYERS_REMOVE_CMD for removing layer widgets from outside the window context.
  • Fix hang opening a popup from another closing popup.
  • Define oldest supported macOS prebuilt. Only supported >=11, now this is documented.
  • Fix "view_prebuilt" linking on macOS.
  • Fix panic on old macOS (<11). Color scheme and accent is only supported >=11.
  • Fix cargo zng fmt of widgets with multi value property assigns.

0.11.3

  • Add IS_MOBILE_VAR, is_mobile and force_mobile context var and properties.
  • Add WindowVars::safe_padding and implement it for Android.
  • Breaking Add WindowOpenData::safe_padding and WindowChanged::safe_padding to the view API.
    • Note that this is only a breaking change for direct dependents of zng-view-api and zng-app.
  • Fix text input moving caret on focus.
  • Fix interactive caret touch causing loss of focus on the text input.
  • Implemented keyboard support for Android (no IME).
  • Add --cfg=zng_view_image_has_avif for zng-view to support building AVIF.
    • See [docs/avif-setup.md] for more details.
  • Markdown! now supports definition lists.

0.11.2

  • Implement initial ColorScheme for Android.
  • Support RUSTFLAGS "deny warnings" in cargo zng.
  • Warn when .zr-copy does not find the directory or file.
  • Refactor .zr-apk to not require to be inside the staging dir.
  • Refactor Impl Future parameters into impl IntoFuture.
  • Implement IntoFuture for ResponseVar<T>.
  • Remove .zr-apk requirement of extension on the folder name.

0.11.1

  • Add zng::env::android_install_res helper.
  • Add zng::env::android_external.
  • Add zng_env::android_internal.
  • Add zng::view_process::default::android.
  • Implement Android suspend/resume cycle using the existing "respawn" API.
  • Add APP.is_suspended var.
  • Add VIEW_PROCESS_SUSPENDED_EVENT.
  • VIEW_PROCESS_INITED_EVENT now notifies a "respawn" on resume after suspension.
  • Breaking Add Event::Suspended.
    • Note that this is only a breaking change for direct dependents of zng-view-api.
  • Add ViewExtension::suspended/resumed.
  • Implement system fonts query for Android.
  • Implement conversions from FontStyle, FontWeight and FontStretch to the ttf-parser equivalent types.
  • Implement PartialOrd, Ord for FontName.
  • Add zng_view::platform.
  • Implemented Android run_same_process entry point.
  • Fixed Android build errors.
  • Fix gradient stops that mix positional stops with offset stops.
  • Fix build in platforms without AtomicU64.
  • Fix zng::env::bin in Wasm builds.

0.11.0

  • Breaking Remove OutlineHintingOptions and change Font::outline signature.
  • Breaking Remove FontFace::font_kit, Font::advance, Font::origin and Font::typographic_bounds.
  • Fix crash window summary tab when there are no localization resources.
  • Replace breakpad-handler with minidumper + crash-handler.
    • This removes dependency on native breakpad, a common cause of compilation issues.
  • Fix large rendered window icon resize.
  • Fix Emoji color palette panic (Windows 11 Emoji).
  • Breaking Remove 0.10.5 deprecated items.
  • Fix FONTS matching obsolete Type1 fonts when there is an OpenType alternative.
  • Breaking FONTS.system_fonts now returns a ResponseVar.
  • Breaking Replaced harfbuzz backend, font::Face::harfbuzz and font::Font::harfbuzz are the new accessors.
  • The "wasm-unknown-unknown" target now compiles without error.
    • zng::time works.
    • zng::env::on_process_start! and init! works with a small JS setup requirement.
    • zng::app::print_tracing and panics log to browser console.
    • View-process is not implemented, only headless without renderer apps can run on this release.
    • Unfortunately many dependencies compile without actually supporting Wasm and panic during runtime, these will be fixed gradually.

0.10.5

  • Add cargo zng fmt that formats normal code with cargo fmt + Zng and other macros.
  • Fix named Align deserialization from human readable formats.
  • Fix SelectableText! shorthand syntax.
  • Fix layer AnchorSize::Window not filling the window space by default.
  • Fix ContextCapture::NoCapture excluding popup config.
  • Add ResponseVar::map_response.
  • Add Dialog! widget, DIALOG service and related types.
  • Deprecated http::get_text, http::Client::get_text and Var::get_text.
    • Renamed to get_txt.
  • Deprecated zng::window::native_dialog module.
    • The new zng::dialog is the new surface API for all dialogs.
    • The underlying native dialogs will not be removed, just the surface API.

0.10.4

  • DInstant addition now also saturates like subtraction.
    • Fixes crash in systems without caret blink animation.
  • Add return_focus_on_deinit.
  • Add a copy button to the markdown links popup.
  • Add warning for slow event handlers in debug builds.
  • Add in memory "clipboard" for headless tests that use CLIPBOARD.
  • Fix tooltip showing instead of disabled_tooltip in contexts that disable the widget after a slight delay.
  • Fix tooltip opened by ACCESS.show_tooltip closing immediately on mouse leave.

0.10.3

  • Fix view-process sometimes never connecting in slow machines.
  • Fix #.#.#-local localization not matching the app resources.

0.10.2

  • Localization now scraps #.#.#-local workspace dependencies.
  • Add Var::hold, AnyVar::hold_any.
  • Add AnyVar::perm, VARS::perm.

0.10.1

  • Fix race condition in command metadata init when parallel widgets read the same metadata.
  • Fix cargo zng l10n not generating a .gitignore file for deps.
  • Implement serialization for l10n types.

0.10.0

  • Breaking Removed support for {lang}.ftl localization files, now is named {lang}/_.ftl.
  • Breaking Removed L10N.localized_message, use L10N.message(..).build_for(lang).
  • Breaking cargo zng l10n CLI refactor.
    • Now requires arg name for input and output.
    • Pseudo arg values now define a dir and lang to generate pseudo from.
  • Add cargo zng l10n --package/--manifest-path for scrapping from lib crates for publishing.
  • Fix localization scrapper only adding section comments to main file.
  • Add localization helper for commands.
    • Set l10n!: true in command! declarations to localize metadata.
    • Use cargo zng l10n to scrap metadata.
  • Breaking Use HashSet for EVENTS.commands.
  • Impl std::hash::Hash for AppLocal<T>, AnyEvent and Command.
  • Add zng::button::PrimaryStyle.
  • Breaking View API now groups color scheme with a new accent color config.
  • Breaking Refactored "color pair".
    • Now named LightDark.
    • Removed helper methods for declaring vars, now IntoVar<Rgba> for LightDark is contextual.
    • Add light_dark helper function and LightDarkVarExt helper methods.
  • Breaking Removed BASE_COLORS_CAR form specific widgets, now use the unified zng::color::BASE_COLOR_VAR.
  • Add TextEditOp::clear.
  • Add button::LightStyle!() and toggle::LightStyle!().
  • Fix when expr not recognized.
  • Fix WINDOWS.is_loading.
  • Add WINDOWS.wait_loaded.
  • Breaking Refactored Button::cmd_param to accept any type var.
  • Fix SelectionBy::Mouse never being set on mouse selection.
  • Add auto-selection on click, when the action does not disrupt the user.
  • Breaking Refactored AutoSelection into bitflags that implement more features.
  • Add CONFIG.insert.
  • BReaking Config::get and AnyConfig::get_raw now also receives an insert boolean.
  • Breaking CONFIG.get and Config::get now receive a default value, not a closure.
    • The closure was immediately evaluated by most config backends.
  • Breaking Refactored zng_wgt_window::SaveState.
    • Is now in zng::config::SaveState.
    • Does not define window load wait time.
      • A new Window::config_block_window_load property handles blocking for all configs on window.
    • Add zng::config::save_state_node helper for declaring state persistency properties for other widgets.
    • Automatic config keys now require an ID name.
  • Fix "child_insert" layouts when the children end-up having a single full widget and other non-widget nodes.
  • Add TextInput::placeholder.
    • Add TextInput::placeholder_txt.
  • Add Container::child_under/over.
    • Add ChildInsert::Under/Over.
  • Add zng::text_input::SearchStyle.
  • Breaking Refactored zng::icon::material* modules and zng-wgt-material-icons.
    • Removed consts for each icon.
    • Modules renamed to zng::icon::material::*.
    • Now uses a phf map from string names.
      • To convert an old const name, lowercase + replace '_' with '-' and strip 'N' prefix if the next char is a number. Example: N1K_PLUS -> "1k-plus".
    • Now registers ICONS for each name.
  • Breaking Moved CommandIconExt from zng-wgt-text to zng-wgt.
  • Icon! now auto-sizes by default.
  • Add zng::widget::ICONS.
  • Add zng::widget::WeakWidgetFn.
  • Add zng::widget::EDITORS.
  • Add dyn AnyConfig::get_raw_serde_bidi.
  • Add AnyVarValue::eq_any.
  • Add zng::config::settings.

0.9.1

  • Sanitize file names in cargo zng new.
    • Also add f-key-f and f-Key-f for templates to interpolate sanitized file names.
  • Fix cargo zng new values cleanup.
  • Add more :case conversion functions in .zr-rp.
    • Add alternative longer names for all cases.
    • Add :clean that only applies cleanup.
    • Add :f or :file that sanitizes for file name.
  • Support multiple :case functions in .zr-rp.
    • Pipe separator, :T|f applies :Title them :file.

0.9.0

  • Breaking Remove L10N.load_exe_dir, use zng::env::res with L10N.load_dir.
  • Breaking .zr-rp now trims the values.
  • Breaking .zr-rp now cleans the values for some cases.
  • Fix WINDOW.position().set not moving the window.
  • Add ZR_LICENSE in cargo zng res.
  • Breaking Add zng::env::About::license.
  • Implement (de)serialize for zng::env::About.
  • Breaking .zng-template moved to .zng-template/keys.
  • Breaking .zng-template-ignore moved to .zng-template/ignore.
  • Add .zng-template/post, an optional post template generation script or crate to run.
  • .zr-rp now can read files using ${<file}.
  • .zr-rp now can read stdout of bash script lines using ${!cmd}.
  • Breaking .zr-rp now requires the colon in :?else.
  • Breaking .zr-rp :?else is now only used if the source cannot be read or is not set. Empty values are valid.
  • Fix cargo zng res not showing tools progress prints.
  • Fix crash handler attaching to other non-app processes.
  • Fix .zr-copy not merging folders.
  • Breaking .zr-sh now automatically runs with set -e.
  • .zr-sh now runs in bash if it is present, fallbacks to sh.
  • Breaking Change default zng::env::res for Linux to ../share/{executable-name}.
  • Breaking Replace dir definition files in zng::env
    • From .zng_res_dir to .res-dir.
    • From zng_config_dir to config-dir.
    • From zng_cache_dir to cache-dir.
    • Relative dirs are now resolved from where the file is defined.
  • Breaking Remove deprecated "APP.about" and related types and macro.

0.8.2

  • Implement some system config reading for macOS.
  • Add aarch64-pc-windows-msvc view_prebuilt.
    • Without AVIF, not tested.
  • Fix view_prebuilt in x86_64-apple-darwin.
  • Fix cargo zng res in non-workspace crates.
  • Fix zr-glob not printing copied paths in subdirectories.

0.8.1

  • Fix align of search box in the Inspector window.
  • Fix l10n! interpolation of non-var values.
  • Allow missing authors field in zng_env::About::parse_manifest.
  • Fix cargo zng res not finding any metadata.

0.8.0

  • Breaking get_font_use now gets font references, not just names.
  • Add ZNG_NO_CRASH_HANDLER env var to easily disable crash handler for special runs like for a debugger.
  • Add CrashConfig::no_crash_handler for custom crash handler disabling.
  • Add zng::app::print_tracing_filter.
  • Breaking cargo zng res defaults changed from assets to res.
  • Breaking Remove FullLocalContext, a type that is from an old version of the context API.
    • The type cannot be constructed, so this has no actual impact.
  • Updated Webrender
  • Fix unbalanced HTML text style tags in Markdown! leaking outside of their block.

0.7.1

  • Fix integrated/dedicated render mode on Ubuntu.
  • Fix build of zng-view-* without "ipc" feature.
  • Prebuilt view-process now uses the same tracing context as the app-process.
    • Note that the tracing context must be set before run_same_process.
  • Fix "GLXBadWindow" fatal error on Ubuntu.
  • Fix ComboStyle arrow icon on Ubuntu.
  • Now does not capture view-process stdout/err, inherits stdio from app-process.
  • Fix view-process getting killed before exit request can finish.
  • Fix windows not opening maximized in X11.
  • Fix bold default UI font on Ubuntu.
  • Fix multiple hot-reload bugs, now is tested on Windows and Ubuntu.
  • Breaking Remove crash_handler feature from defaults of zng-app.
    • The feature ended-up activated by the numerous crates that depend on zng-app.
    • This is only a breaking change for direct dependents.

0.7.0

  • Add zng::env::on_process_start! to inject custom code in zng::env::init!.
  • Add zng::env::on_process_exit to register a handler for process exit.
  • Add zng::env::exit to collaboratively exit the process.
  • Add zng::app::on_app_start to register a handler to be called when the APP context starts.
  • Implement From<Txt> for std::ffi::OsString.
  • Add KeyLocation.
  • Fix numpad shortcuts.
  • Breaking Remove zng_view::init, zng_view_prebuilt::init, zng::view_process::default::init, zng::view_process::prebuilt::init.
    • Only zng::env::init!() needs to be called to setup the view-process.
  • Breaking Remove zng_view::extensions::ViewExtensions::new.
    • Now use zng_view::view_process_extension! to declare.
  • Breaking zng_view_api::Controller::start now requires the exe path and supports optional env variables to set.
    • This only affects custom view-process implementers.
  • Breaking New default zng::env::res, was ./assets now is ./res.
  • Breaking Renamed zng_view_prebuilt::ViewLib::init to view_process_main.
  • Breaking Remove is_single_instance, single_instance, single_instance_named.
    • Single instance now enabled automatically just by setting feature="single_instance".
  • Breaking Add name requirement for zng::task::ipc workers.
    • Workers are no longer limited to a single entry with an enum switch.
    • Use zng::env::on_process_start! to declare the worker entry anywhere.
  • Breaking Remove zng::app::crash_handler::init and CrashConfig::new.
    • Use zng::app::crash_handler::crash_handler_config to config.
  • Breaking Methods of HeadlessAppKeyboardExt now require key location.

0.6.2

  • Add log support in hot reloaded dylib.
  • Add cargo-zng, a Cargo extension for managing Zng projects.
    • This replaces zng-l10n-scraper that is now deprecated and deleted.
    • See cargo zng l10n --help for its replacement.
  • Add zng-env and zng::env as an API to get external directories and files associated with the installed process.
  • Add zng::hot_reload::{lazy_static, lazy_static_init}. Very useful for implementing "zng-env" like functions.
  • Implement FromStr for zng::l10n::Langs.
  • Lang now parses empty strings as und.
  • Fix IMAGES.from_data never loading in headless apps.
  • Fix Img::copy_pixels.
  • Fix view_process::default::run_same_process exit in headless runs.
  • Fix AutoGrowMode::rows actually enabling Columns auto grow.
  • Fix "unsafe precondition(s) violated" issue (#242).

0.6.1

  • Add more hot reload BuildArgs helpers.
  • Change default hot reload rebuilder to first try env var "ZNG_HOT_RELOAD_REBUILDER".
    • This feature is used in the zng-template, releasing soon.
  • Fix tracing in hot reloaded dylib.

0.6.0

  • Breaking Remove deprecated NilAnimationObserver.
  • Fix release build of zng-wgt-scroll running out of memory. (#203)
  • Implement hot reloading UI nodes.
    • Add zng-ext-hot-reload and zng-ext-hot-reload-proc-macros.
    • Add zng::hot_reload.
    • Add feature="hot_reload" in zng and zng-unique-id.
    • Add hot_reload example.
  • Implemented VsCode snippets for common Zng macros, see zng.code-snippets.
  • Fix view-process cleanup when app-process panics on init.
  • Breaking Remove all Static{Id} unique ID static types.
    • Use static_id! to declare static IDs, the new way is compatible with hot reloading.
    • Removed StaticWindowId, StaticMonitorId, StaticPropertyId, StaticAppId, StaticWidgetId, StaticDeviceId, StaticStateId, StaticCommandMetaVarId, StaticSpatialFrameId.
  • Implemented equality/hash for zng::task::SignalOnce.
  • Breaking Window::on_close now has args type WindowCloseArgs.
    • Add on_pre_window_close and on_window_close.
  • Fix headless windows not receiving close events on app exit request.
  • Add std::env::consts::OS to crash error.
  • Breaking Refactored multiple system config variables to allow app override.
    • VARS.animations_enabled now is read-write. Added VARS.sys_animations_enabled read-only variable that tracks the system config.
    • KEYBOARD.repeat_config now is read-write. Added KEYBOARD.sys_repeat_config.
    • KEYBOARD.caret_animation_config now is read-write. Added KEYBOARD.sys_caret_animation_config.
    • MOUSE.multi_click_config now is read-write. Added MOUSE.sys_multi_click_config.
    • TOUCH.touch_config now is read-write. Added TOUCH.sys_touch_config.

0.5.1

  • Add diagnostic::on_unimplemented notes for multiple traits.
  • Add auto_scroll in the Scroll! widget, enabled by default.
  • Add CaptureFilter helper constructors.
  • Add LocalContext::extend.
  • Add SCROLL.context_values_set.
  • Fix WidgetInfo::new_interaction_path always detecting change.
  • Improve iterators in InteractionPath, interaction_path and zip are now double ended and exact sized.
  • Add ZOOM_TO_FIT_CMD.
    • The CTRL+'0' shortcut is now used for this command, not ZOOM_RESET_CMD.
  • Deprecate NilAnimationObserver, use () now.
  • Add ForceAnimationController to force important animations to run when animations are disabled on the system.
  • Fix crash handler passing app name twice as command line arguments.
  • Breaking Implemented new syntax for the localization scrapper to separate standalone notes per file:
    • // l10n-file-### {note} only adds the note to the template/file.ftl.
    • // l10n-*-### {note} adds the note to all files that match the glob pattern (template/*.ftl).
    • The old syntax // l10n-### {note} is still supported, but now it is equivalent to // l10n--### that matches the default template.ftl file only.
    • Note that this is only a breaking change for dependents of zng-l10n-scraper. Normal users (cargo install) must update the tool to scrap using the new syntax, comments with the new file pattern matcher are ignored by older scrappers.

0.5.0

  • Add OPEN_TITLE_BAR_CONTEXT_MENU_CMD for windows.
  • Add DRAG_MOVE_RESIZE_CMD for windows.
  • Breaking View API changes:
    • Add open_title_bar_context_menu.
    • Rename close_window to close.
    • Rename focus_window to focus.
    • Add set_enabled_buttons.
    • Add set_system_shutdown_warn.
    • Note that this is only a breaking change for direct dependents of zng-view-api.
  • Better "custom chrome" example in examples/window.rs.
  • Add OPEN_TITLE_BAR_CONTEXT_MENU_CMD to window API.
  • Fix WIDGET.border().offsets() not including the innermost border offset.
  • Add WindowVars::enabled_buttons to window API.
  • Add WindowVars::system_shutdown_warn to window API.
  • Breaking Fix when/property assign expansion order.
    • When blocks now expand in the same declaration order, before they always expanded after all property assigns.
// code like this incorrectly builds in v0.4:
fn version_0_4() -> impl UiNode {
    let can_move = var(true);
    Container! {
        when *#{can_move} {
            mouse::cursor = mouse::CursorIcon::Move;
        }
        mouse::on_mouse_down = hn!(can_move, |_| {
            let _use = &can_move;
        });
    }
}
// now in v0.5 the value must be cloned before the last move:
fn version_0_5() -> impl UiNode {
    let can_move = var(true);
    Container! {
        when *#{can_move.clone()} {
            mouse::cursor = mouse::CursorIcon::Move;
        }
        mouse::on_mouse_down = hn!(|_| {
            let _use = &can_move;
        });
    }
}
  • Breaking Rename VarCapabilities to VarCapability.
  • Breaking Add window extension API in zng-view.
    • Add ViewExtension::window.
    • Add OpenGlContext and replace the gl fields with context in multiple extension API args.
    • Rename is_config_only to is_init_only.
    • Note that this is only a breaking change for direct dependents of zng-view.
    • Rename ViewRenderExtensionError to ViewExtensionError.
  • Add window reference to args for RendererExtension when possible.
  • Fix zng::view_process::default::run_same_process not propagating app panics.
  • Add WindowCloseRequestedArgs::headed/headless.
  • Breaking Fix tab nav when a focus scope with FocusScopeOnFocus::LastFocused is a child of another scope with TabNav::Cycle.
    • Breaking change has minimal impact:
      • Added input in WidgetFocusInfo::on_focus_scope_move.
      • Removed FocusChangedCause::is_prev_request.
  • Add FocusChangedCause::request_target helper method.
  • Add WidgetPath::parent_id helper method.
  • Fix auto scroll to focused issues:
    • When the focused child does not subscribe to focus change events.
    • Scrolling when large widget is already visible.
    • Scrolling again to same widget when focus change event did not represent a widget change.
  • Add WidgetInfo::spatial_bounds.
  • Fix directional navigation cycling only inside viewport now full spatial bounds of scopes.
  • Add better conversions for CommandScope. You can now scope on named widgets directly, FOO_CMD.scoped("bar-wgt").
  • Add ContextualizedVar::new_value.
  • Breaking SCROLL.scroll_* methods now return contextual vars, not values.
  • Fix panic on window move in Wayland.
  • Fix minimize command removing maximized state from restore.
  • Fix issue when parent widget's cursor can override child's cursor when the parent cursor var updates.
  • Breaking Remove the cursor_img property and window var.
  • Breaking The cursor property now has input type CursorSource.
    • Note that the CursorIcon type converts to CursorSource.
  • Implement custom cursor images in the default view.

0.4.0

  • Panics in task::respond are now resumed in the response var modify closure.
  • Add task::ipc module, for running tasks in worker processes.
  • Breaking: Remove "bytemuck" feature from zng-unique-id.
    • Now must use impl_unique_id_bytemuck! to generate the impls.
    • Note that this is only a breaking change for direct dependents of zng-unique-id.
  • Add single app-process instance mode.
    • Adds zng-ext-single-instance crate re-exported in zng::app when non-default Cargo feature "single_instance" is enabled.
  • Implement AsRef<std::path::Path> for Txt.
  • Implement AsRef<std::ffi::OsStr> for Txt.
  • Add app-process crash handler.
    • Adds zng::app::crash_handler.
    • Can be used to easily implement crash reporting, stacktrace and minidump collection, app restart on crash.
    • Call zng::app::crash_handler::init_debug() to quickly setup panic and minidump collection.
  • Fix view-process kill by user not working after respawn.
  • Fix view-process assuming any signal kill was requested by the user.
  • Fix potential issue retrieving current_exe trough symbolic links.
  • Fix view-process panic message.
  • Add APP.about.
  • Fix AnsiText! not resetting style.
  • Markdown! widget now uses AnsiText! for ```console code block.
  • Fix auto_size not using the min/max_size constraints.
  • Breaking: Change return type of SCROLL.vertical_offset, SCROLL.horizontal_offset and SCROLL.zoom_scale.
    • Changed only from ReadOnlyContextVar<Factor> to ContextVar<Factor> so it has minimal impact.
  • Add vertical_offset, horizontal_offset and zoom_scale properties in Scroll!.
    • Users should prefer using scroll commands over these properties, but they are useful for implementing features like binding two side-by-side scrolls, saving scroll state.

0.3.4

  • Add Cargo feature documentation in each crate README.md and lib.rs docs.
  • Add Screenshot function to the Inspector window.
  • Fix formatx! causing futures to not be Send+Sync.
  • UiTask now logs a warning if dropped while pending.
  • Add UiTask::cancel to drop a pending task without logging a warning.
  • Fix WINDOWS.frame_image capture with multiple windows capturing pixels from the wrong window.
  • Fix WINDOWS.frame_image var not updating on load or error.
  • Fix cursor not resetting on widget deinit.
  • Add missing zng::app::test_log.
  • Breaking: View API accessibility updates.
    • Added Event::AccessDeinit, access can now be disabled by the system.
    • Removed WindowRequest::access_root, no longer needed.
    • Note that this is only a breaking change for direct dependents of zng-view-api.
  • Fix many doc broken links.

0.3.3

  • Fix zng-tp-licenses build in docs.rs.
  • You can now suppress license collection on build by setting "ZNG_TP_LICENSES=false.

0.3.2

  • Fix docs.rs build for zng and zng-wgt-material-icons.
  • Add AVIF support in prebuilt view.
  • Implement prebuilt compression, prebuilt now depends on tar.
  • Implement PartialOrd, Ord for Txt.
  • Add crate zng-tp-licenses for collecting and bundling licenses.
  • Add third_party_licenses on view API that provides prebuilt bundled licenses.
  • Add zng::third_party with service and types for aggregating third party license info.
    • Includes a default impl of OPEN_LICENSES_CMD that shows bundled licenses.

0.3.0

  • Breaking: Fix typos in public function names, struct members and enum variants.
  • Fix cfg features not enabling because of typos.

0.2.5

  • Fix docs.rs build for zng-view-prebuilt, zng-app, zng-wgt.
  • Unlock cc dependency version.
  • Remove crate features auto generated for optional dependencies.
  • Add zng::app::print_tracing.
  • In debug builds, prints info, warn and error tracing events if no tracing subscriber is set before the first call to APP.defaults or APP.minimal.

0.2.4

  • Fix zng README not showing in crates.io.

0.2.3

  • Change docs website.

0.2.2

  • Fix "zng-ext-font" standalone build.

0.2.1

  • Fix build with feature "view".

0.2.0

  • Crates published, only newer changes are logged.