Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

🐛 修复 Windows 上亚克力材质造成的窗口拖动性能问题 #204

Merged
merged 4 commits into from
Nov 30, 2024

Conversation

A-kirami
Copy link
Owner

@A-kirami A-kirami commented Nov 30, 2024

这个 PR 带来了什么样的更改?

  • 错误修复
  • 新功能
  • 文档/注释
  • 代码格式
  • 代码重构
  • 测试用例
  • 性能优化
  • 外观样式
  • 项目构建
  • 依赖环境
  • 持续集成/部署
  • 其他,请描述:

这个 PR 是否存在破坏性变更?

  • 是的,并已在 issue #___ 号中获得批准
  • 没有

描述

添加了设置开关以允许开启或禁用亚力克效果

image

动机和背景

resolve #170

其他信息

检查工作

  • 我对我的代码进行了注释,特别是在难以理解的部分
  • 我的更改需要更新文档,并且已对文档进行了相应的更改
  • 我添加了测试并且已经在本地通过,以证明我的修复补丁或新功能有效
  • 我已检查并确保更改没有与其他打开的 Pull Requests 重复

@A-kirami A-kirami added the bug Something isn't working label Nov 30, 2024
Copy link

sourcery-ai bot commented Nov 30, 2024

审核者指南由 Sourcery 提供

此 PR 实现了一个可配置的窗口效果系统,适用于 Windows 和 macOS,重点解决与 Windows 上的 Acrylic 效果相关的性能问题。该实现添加了新的实用函数来管理窗口效果,并引入了一个用户设置,专门为 Windows 用户切换 Acrylic 效果。

窗口效果管理的类图

classDiagram
    class WindowUtils {
        +createPreviewWindow(width, height)
        +setWindowEffect(enable)
        +setAcrylicWindowEffect(enable)
    }
    class Utils {
        +isWindows11() bool
        +setTransparentBackground(enable)
    }
    WindowUtils --> Utils : uses
    class GeneralSettingsStore {
        +autoUpdate: boolean
        +enbaleSuperUser: boolean
        +showRecallMessage: boolean
        +applyAcrylicWindowEffects: boolean
    }
    GeneralSettingsStore --> WindowUtils : calls
    GeneralSettingsStore : +watch(applyAcrylicWindowEffects)
Loading

文件级更改

更改 详情 文件
添加窗口效果管理实用程序
  • 根据操作系统类型创建设置通用窗口效果的函数
  • 为 Windows 实现特定的 Acrylic 效果处理程序
  • 添加检测 Windows 11 的实用程序
  • 添加切换透明背景的函数
src/utils/window.ts
src/utils/utils.ts
在 UI 中集成窗口效果设置
  • 为 Windows 上的 Acrylic 效果添加新的设置切换
  • 添加关于潜在性能问题的警告信息
  • 实现具有效果切换状态的设置存储
src/views/settings/general.vue
src/stores/general-settings.ts
修改应用程序初始化和样式
  • 从 Tauri 配置中移除默认窗口效果
  • 在应用程序挂载时添加窗口效果初始化
  • 更新 CSS 以处理透明背景切换
src-tauri/tauri.conf.json
src/App.vue
src/styles/main.css

针对关联问题的评估

问题 目标 是否解决 解释
#170 修复在启用 acrylic 效果时调整窗口大小或拖动窗口时的性能问题
#170 添加禁用 acrylic 窗口效果的选项

可能关联的问题


提示和命令

与 Sourcery 互动

  • 触发新审核: 在拉取请求上评论 @sourcery-ai review
  • 继续讨论: 直接回复 Sourcery 的审核评论。
  • 从审核评论生成 GitHub 问题: 通过回复审核评论请求 Sourcery 创建问题。
  • 生成拉取请求标题: 在拉取请求标题的任何地方写 @sourcery-ai 以随时生成标题。
  • 生成拉取请求摘要: 在拉取请求正文的任何地方写 @sourcery-ai summary 以随时生成 PR 摘要。您也可以使用此命令指定摘要应插入的位置。

自定义您的体验

访问您的仪表板以:

  • 启用或禁用审核功能,例如 Sourcery 生成的拉取请求摘要、审核者指南等。
  • 更改审核语言。
  • 添加、删除或编辑自定义审核说明。
  • 调整其他审核设置。

获取帮助

Original review guide in English

Reviewer's Guide by Sourcery

This PR implements a configurable window effect system for Windows and macOS, with a focus on fixing performance issues related to the Acrylic effect on Windows. The implementation adds new utility functions to manage window effects and introduces a user setting to toggle the Acrylic effect specifically for Windows users.

Class Diagram for Window Effect Management

classDiagram
    class WindowUtils {
        +createPreviewWindow(width, height)
        +setWindowEffect(enable)
        +setAcrylicWindowEffect(enable)
    }
    class Utils {
        +isWindows11() bool
        +setTransparentBackground(enable)
    }
    WindowUtils --> Utils : uses
    class GeneralSettingsStore {
        +autoUpdate: boolean
        +enbaleSuperUser: boolean
        +showRecallMessage: boolean
        +applyAcrylicWindowEffects: boolean
    }
    GeneralSettingsStore --> WindowUtils : calls
    GeneralSettingsStore : +watch(applyAcrylicWindowEffects)
Loading

File-Level Changes

Change Details Files
Added window effect management utilities
  • Created function to set general window effects based on OS type
  • Implemented specific Acrylic effect handler for Windows
  • Added utility to detect Windows 11
  • Added function to toggle transparent background
src/utils/window.ts
src/utils/utils.ts
Integrated window effect settings in the UI
  • Added new setting toggle for Acrylic effect on Windows
  • Added warning message about potential performance issues
  • Implemented settings store with effect toggle state
src/views/settings/general.vue
src/stores/general-settings.ts
Modified application initialization and styling
  • Removed default window effects from Tauri config
  • Added window effect initialization on app mount
  • Updated CSS to handle transparent background toggling
src-tauri/tauri.conf.json
src/App.vue
src/styles/main.css

Assessment against linked issues

Issue Objective Addressed Explanation
#170 Fix performance issues when resizing or dragging windows with acrylic effect enabled
#170 Add an option to disable the acrylic window effect

Possibly linked issues


Tips and commands

Interacting with Sourcery

  • Trigger a new review: Comment @sourcery-ai review on the pull request.
  • Continue discussions: Reply directly to Sourcery's review comments.
  • Generate a GitHub issue from a review comment: Ask Sourcery to create an
    issue from a review comment by replying to it.
  • Generate a pull request title: Write @sourcery-ai anywhere in the pull
    request title to generate a title at any time.
  • Generate a pull request summary: Write @sourcery-ai summary anywhere in
    the pull request body to generate a PR summary at any time. You can also use
    this command to specify where the summary should be inserted.

Customizing Your Experience

Access your dashboard to:

  • Enable or disable review features such as the Sourcery-generated pull request
    summary, the reviewer's guide, and others.
  • Change the review language.
  • Add, remove or edit custom review instructions.
  • Adjust other review settings.

Getting Help

Copy link

@sourcery-ai sourcery-ai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@A-kirami - 我已经审查了你的更改,它们看起来很棒!

这是我在审查期间查看的内容
  • 🟡 一般问题:发现1个问题
  • 🟢 安全性:一切看起来都很好
  • 🟢 测试:一切看起来都很好
  • 🟡 复杂性:发现1个问题
  • 🟢 文档:一切看起来都很好

Sourcery对开源项目免费 - 如果你喜欢我们的审查,请考虑分享它们 ✨
帮助我变得更有用!请点击每条评论上的👍或👎,我将使用反馈来改进你的审查。
Original comment in English

Hey @A-kirami - I've reviewed your changes and they look great!

Here's what I looked at during the review
  • 🟡 General issues: 1 issue found
  • 🟢 Security: all looks good
  • 🟢 Testing: all looks good
  • 🟡 Complexity: 1 issue found
  • 🟢 Documentation: all looks good

Sourcery is free for open source - if you like our reviews please consider sharing them ✨
Help me be more useful! Please click 👍 or 👎 on each comment and I'll use the feedback to improve your reviews.

src/utils/window.ts Show resolved Hide resolved
src/utils/window.ts Show resolved Hide resolved
Copy link

github-actions bot commented Nov 30, 2024

📦️ 此 PR 构建的应用已经准备就绪

平台 文件 大小
🐧 linux-amd64 matcha_0.4.4_linux-amd64 112.68 MB
🍎 macos-amd64 matcha_0.4.4_macos-amd64 24.16 MB
🍎 macos-arm64 matcha_0.4.4_macos-arm64 23.81 MB
🪟 windows-amd64 matcha_0.4.4_windows-amd64 21.9 MB

*从提交 04131b5 构建

@A-kirami A-kirami changed the title 🐛 修复 WIndows 上亚克力材质造成的窗口拖动性能问题 🐛 修复 Windows 上亚克力材质造成的窗口拖动性能问题 Nov 30, 2024
@A-kirami A-kirami merged commit 30e8e95 into main Nov 30, 2024
7 checks passed
@A-kirami A-kirami deleted the fix/window-effect branch November 30, 2024 15:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
Status: Done
Development

Successfully merging this pull request may close these issues.

BUG: 窗口的亚克力效果会导致调整窗口大小或拖动窗口时出现性能问题
1 participant