github std-microblock/breeze-shell 0.1.34

8 hours ago
image

中文

功能特性

  • (菜单) 改进亚克力绘制方式,优化展开动画(感谢 @cnbluefire 的 Windows.UI.Composition 亚克力 DEMO)
  • (注入) 允许禁用自动禁用
  • (菜单) 弹出菜单忽略初始鼠标状态
  • (更新) 新增自动更新能力,支持启动时自动检查并下载更新
  • (菜单) 补充延迟菜单状态同步,后置修改的菜单状态也能正确生效
  • (配置) 新增 ExplorerFrame Patch 开关,并补充中英文本地化
  • (脚本) 新增 textarea、文本编辑 onkeydown/取消事件,以及字重支持
  • (脚本) 新增 textarea 元素,调整/更改默认动画
  • (兼容) 为 Windows 11 左侧栏场景补充支持
  • (配置) 监听配置文件变更并自动同步
  • (日志) 日志现在会同时写入文件
  • (稳定性) 增强警告上报功能,避免 JS 上下文销毁后调用函数时崩溃

问题修复

  • (主题) 修复无法随系统切换明暗主题的问题
  • (菜单) 修复 TPM_RETURNCMD 场景下误发 WM_COMMAND 的问题
  • (菜单) 修复子菜单索引传递错误、菜单出现方向异常,以及向上展开时的反向动画问题
  • (菜单) WM_INITMENUPOPUPlParam 中传递正确的子菜单项索引(@lidaixingchen
  • (菜单) 当已反向但 reverse_if_open_to_up 开启时,动画不应再反向
  • (渲染) 修复无亚克力效果时的边框绘制问题,并改进高 DPI 下的栅格化表现
  • (渲染) 更新 breeze-ui 版本及哈希到 2026.04.12
  • (渲染) 菜单渲染中渲染目标初始化失败时返回 shared_ptr
  • (渲染) 处理菜单渲染中渲染目标初始化失败的情况
  • (亚克力) 修复亚克力背景效果异常
  • (键盘) 改进键盘操作体验,并修复主菜单按左键时可能崩溃的问题
  • (配置) 修复导出默认配置会干扰当前配置的问题
  • (兼容) 移除清空回收站的无效条件,提升 explorer 兼容性
  • (兼容)explorerframe.dll 补丁更通用
  • (剪贴板) 增加 set_text / get_text 方法,并停止事件循环
  • (稳定性) 更新 blook 依赖以修复部分崩溃问题
  • (编译) 修复编译问题
  • (UI) 更新 breeze-ui 依赖
  • (JS) 窗口关闭时将 owner_rt 置空,并正确卸载

文档

  • (文档) 更新动画相关说明

代码重构

  • (核心) 迁移到 breeze-js
  • (核心) 提取 populate_folder_view_context 为独立函数
  • (亚克力) 使用 Windows.UI.Composition 重构亚克力效果
  • (线程) 将 JS 线程初始化移到独立函数
  • (事件循环) 提取事件循环到独立函数
  • (控制台) 仅在需要时分配控制台,不再使用 freopen
  • (依赖)dependencies 重命名为 deps
  • (日志) 迁移到 spdlogfmtlib

构建系统

  • (构建) 添加 breeze-js 依赖,改进 yalantinglibs 依赖

杂项

  • (版本) 版本号更新
  • (依赖) 移除 glfw 子模块

English

Features

  • (inject) Prevent the inject module from being automatically disabled
  • (menu) Make popup menus ignore the initial mouse state
  • (update) Add auto-update support, including automatic checking and downloading on startup
  • (menu) Sync late menu state updates so post-created menu state changes apply correctly
  • (config) Add an ExplorerFrame Patch toggle with Chinese and English localization
  • (script) Add textarea, text-edit onkeydown and cancel events, plus font-weight support
  • (script) Add textarea element and adjust/change default animation
  • (compat) Add support for Windows 11 sidebar scenarios
  • (config) Watch config file changes and sync automatically
  • (log) Write logs to file in addition to the console
  • (stability) Add warning reporting functionality and no longer crash after JS context has been destroyed

Fixes

  • (theme) Fix light and dark mode not switching with the system
  • (menu) Fix incorrect WM_COMMAND dispatch when using TPM_RETURNCMD
  • (menu) Fix submenu index handling, incorrect popup direction, and reverse animation issues when opening upward
  • (menu) Pass correct menu item index in WM_INITMENUPOPUP lParam for submenus
  • (menu) Should not reverse animation if already reversed but reverse_if_open_to_up is on
  • (render) Fix border rendering without acrylic and improve rasterization on high-DPI displays
  • (render) Update breeze-ui version and hash to 2026.04.12
  • (render) Return shared_ptr for null render target initialization in menu_render
  • (render) Handle render target initialization failure in menu_render
  • (acrylic) Fix acrylic background rendering issues
  • (keyboard) Improve keyboard interaction and fix a crash when pressing Left on the main menu
  • (config) Fix default-config dumping interfering with the current config
  • (compat) Remove unused condition for clearing recycle bin to improve explorer compatibility
  • (compat) Make the explorerframe.dll patch more universal
  • (clipboard) Add set_text / get_text to clipboard and stop event loop
  • (stability) Update blook dependency to fix some crashes
  • (build) Fix compilation issue
  • (ui) Update breeze-ui dependency
  • (js) Set owner_rt to nullptr when window is closed and unmount correctly

Documentation

  • (docs) Update animation documentation

Code Refactoring

  • (core) Migrate to breeze-js
  • (core) Extract populate_folder_view_context to a separate function
  • (acrylic) Refactor acrylic using Windows.UI.Composition
  • (thread) Move JavaScript thread initialization to a separate function
  • (eventloop) Extract event loop to a separate function
  • (console) Only allocate console when needed and no longer use freopen
  • (deps) Rename dependencies to deps
  • (log) Migrate to spdlog and fmtlib

Build System

  • (build) Add breeze-js dependency and improve yalantinglibs dependency

Chores

  • (version) Bump version
  • (deps) Remove glfw submodule

Don't miss a new breeze-shell release

NewReleases is sending notifications on new releases.