-
Notifications
You must be signed in to change notification settings - Fork 532
默认快捷键的 Win 改为 Alt 以避免和系统快捷键冲突 #1150
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
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Closed
Blinue
added a commit
that referenced
this pull request
Jun 30, 2025
* feat: 上边框外可以调整大小 * fix: 修正 Win11 中无边框窗口绘制 * fix: LoadLibrary 换成 GetModuleHandle * feat: 缩放开始时记录 OS 版本 * feat: 适配不同的窗口 * feat: 支持 Win11 的无边框窗口 * fix: 窗口隐藏后停止缩放 * feat: 程序启动时记录 OS 版本 * feat: 缩放无边框窗口支持调整窗口尺寸 * feat: 对于无框架窗口 Win11 中禁用边框和圆角 * feat: Win11 中无边框窗口可以在边框上调整窗口尺寸 * fix: 修复窗口化缩放时最大化窗口会反复尝试缩放的问题 * feat: 无框架窗口在 Win11 中和无标题栏一样处理并禁用边框 * feat: 缩放时以源窗口框架空心点作为目标矩形中心 * feat: 交换链窗口随缩放窗口调整尺寸 * feat: 全屏化缩放前自动调整源窗口位置 Graphics Capture 不再支持屏幕捕获 * feat: 裁剪失败显示错误消息 * feat: 调整缩放窗口尺寸时缩放区域长宽比保持不变 * feat: 缩放窗口位置或尺寸有变化时自动调整源窗口位置 * fix: 修复无法调整尺寸的 bug * fix: 修复窗口化缩放时缩放窗口有时在假边框下面 * feat: 平滑地调整窗口尺寸 * perf: 检查交换链尺寸是否发生变化 * feat: 初步实现调整渲染分辨率 存在显存泄露 * fix: 修复显存泄露 * fix: 修复 CursorDrawer 保存旧 back buffer 的问题 * fix: 修复特定情况下 imgui 中崩溃 * fix: 尝试修复调整尺寸时的闪烁 * feat: 避免调整缩放窗口大小时渲染暂停 * perf: 避免调整大小时重复渲染 * fix: 修复调整大小时有时 FPS 无法及时更新的问题 * chore: 更新依赖 * fix: 使用 DwmFlush 等待屏幕刷新 * fix: ImGui 的更新导致字体缓存不再兼容 * fix: 修复移动缩放窗口后渲染出错 * feat: 鼠标在源窗口的标题栏上时可以拖动缩放窗口 * feat: 删除禁用窗口大小调整选项 * chore: 修改措辞 * fix: 优化调整尺寸的流畅度 * chore: 修复编译 * refactor: 添加抽象对象 Presenter,以在 SwapChain 和 DComp 两种呈现方式间切换 * fix: 修复字体缓存保存问题和优化 Win32Helper::WriteFile * feat: 实现 DirectComposition 呈现 * refactor: 两个呈现器共用的代码移动到基类 * feat: 降低延迟和添加注释 * feat: 完成 DirectComposition 支持 * feat: 禁用 DirectFlip 时使用 DirectComposition 呈现,无需其他操作 * fix: 修复叠加层渲染 * fix: 修复叠加层鼠标输入 * feat: 3D 游戏模式不再支持叠加层 * perf: 3D 游戏模式下降低渲染光标的频率 * chore: 修复编译警告 * feat: 不再单独显示 FPS 将集成在工具栏里 * feat: 实现工具栏原型 * feat: 优化工具栏样式 * feat: 不再支持隐藏光标 * fix: 修复 Win11 加载字体 * refactor: 叠加层多处重构 * feat: 叠加层支持追加和删除 Bicubic * perf: 稍微优化构建字体性能 * refactor: 简化 OverlayDrawer * chore: 更新依赖 * feat: 为工具栏添加更多按钮 * feat: 缩放时支持显示消息 * feat: 实现自动隐藏工具栏 * fix: 修复鼠标在窗口外移动不会更新工具栏透明度的问题 * fix: 优化 ImGui 样式 * feat: ImGui 窗口可关闭 * fix: 修复鼠标被前台窗口捕获时工具栏突然消失 * feat: 工具栏上可以拖拽缩放窗口 * fix: 鼠标被工具栏中的按钮捕获时不要隐藏工具栏 * feat: 调试模式不再影响鼠标逻辑 * fix: 优化工具栏行为 * fix: 修复调整缩放窗口大小时鼠标被叠加层捕获的问题 * fix: 修复拖拽缩放窗口时鼠标跳跃 * feat: 优化工具栏以符合 Fitts 法则 * refactor: Magpie.Core 的接口始终使用 UTF-8 * chore: 更新依赖 * fix: 提高移动光标的可靠性 * feat: 添加新的设置项用于保存叠加层窗口位置 * feat: 初步实现叠加层窗口适配大小调整 * feat: 优化叠加层窗口贴靠规则 * feat: 简化贴靠规则 * feat: 再次优化贴靠规则 * fix: 修复捕获光标后有时光标形状不更新的问题 * feat: 工具栏和其他窗口状态独立 * feat: 调整主页 UI * feat: 调整 UI * feat: 新 UI 支持多语言 * feat: 实现工具栏状态切换 * feat: 切换工具栏时显示消息 * fix: 叠加层调试信息在定义 DEBUG_OVERLAY 时显示 * perf: 非 WGC 使用 D3D11_CREATE_DEVICE_SINGLETHREADED * feat: 添加实验性 composition swapchain 呈现器 * feat: 增加错误处理和日志 * feat: 窗口化缩放时通常情况使用交换链,调整大小时使用 DirectComposition Win11 24H2 中交换链即使在窗口化时也能触发 independent flip * fix: 修复 Win10 缺失“缩放模式”图标的问题 * fix: 修复关闭工具栏按钮功能 * chore: 更新依赖 * refactor: SwapChainPresenter 重命名为 AdaptivePresenter * fix: 禁用 DirectFlip 时始终使用 DirectComposition 呈现 以及添加错误处理 * fix: 修复调试模式下缩放窗口非客户区更新 * feat: 工具栏支持本地化 * feat: Win11 中使用 DCompositionWaitForCompositorClock 等待 DWM 以及更新 CompSwapchainPresenter * chore: 修正文件名 * fix: 修复被调试器暂停后消息弹窗无法关闭的问题 * perf: 优化 composition swapchain 的延迟 * feat: 添加 3D 游戏模式的解释和错误弹窗 * feat: 初步实现截图 * perf: 在后台线程编码图片 * chore: 实验或调试用宏集中在 CommonDefines.h 中 * feat: 支持保存任意效果的输出 * feat: 支持指定截图保存目录 * refactor: 全局包含 <filesystem> * refactor: 更多使用 filesystem 支持长路径,而 Win32 API 在这方面进展缓慢 * refactor: 更多使用 filesystem * refactor: 更多使用 filesystem * feat: 实现截图命名机制 * fix: 优化并发支持 * fix: 修复大批量并发截图可能导致死锁的问题 * feat: 本地化截图消息 * feat: 截图按钮支持右键保存指定效果的输出 * feat: 本地化 * feat: 统一 Win10 和 Win11 中“缩放时调整光标速度”选项的图标 * chore: 避免全局包含 shellapi.h 和 Shlwapi.h * fix: 默认快捷键的 Win 改为 Alt 以避免和系统快捷键冲突 (#1150) * fix: 不在任何屏幕上的窗口不检查自动缩放 (#1151) * feat: 只允许最后一个通道写入 OUTPUT 为了方便截图 * feat: 效果的中间结果保存为 dds * chore: 删除加载 DDS 代码中无用部分 不再支持读取缓冲区、1D/3D 纹理等,节省了约 3KB * docs: 明确 DDS 图像只支持 2D 纹理,但允许使用 mipmap * feat: 实现导出任意通道的任意输出 * perf: 优化导出中间结果的性能 * feat: 调整 UI 文字 * feat: 优化初始缩放窗口尺寸 * fix: 修复点击标题栏无法激活缩放窗口的问题 * fix: 修复源窗口被遮挡就无法通过标题栏拖拽缩放窗口 * fix: 修复有时工具栏无法拖拽的问题 * chore: 增加日志 * feat: 支持改变窗口模式缩放初始缩放倍数 * feat: 本地化 * feat: 第一帧完成再显示缩放窗口 * fix: 减少缩放开始时的光标闪烁 * fix: 提前隐藏光标 * feat: 推迟显示黄色边框和禁用窗口圆角 * feat: 上边框视为标题栏 * chore: 更新依赖 * feat: 窗口化缩放初始位置确保标题栏在屏幕内 * fix: 缩放窗口移动后调整光标位置 * feat: 初步支持触控 * fix: 稍微提高 _ReliableSetCursorPos 等待时长 * feat: 调整缩放窗口大小或移动缩放窗口暂时禁用触控变换 * feat: 优化检查标题栏逻辑 支持 Win11 文件管理器、Windows Terminal 等 * fix: 修复调整大小时纹理尺寸计算错误 * perf: 使用 UpdateSubresource1 更新缓冲区 * fix: 窗口模式缩放时将缩放比例为 1 的 Fit 视为 Fill * feat: 不再支持 Magpie.ToolWindow 属性 现在源窗口不在前台也能继续缩放,而 3D 游戏模式下这个功能没有意义 * feat: 源窗口离开和回到前台时广播事件 * chore: 注释和文档 * docs: 更新文档 * feat: WM_WINDOWPOSCHANGING 中确保等比例缩放 * feat: 全屏模式缩放时允许被 SetWindowPos 移动和改变尺寸 * feat: 自定义初始缩放倍数改为 1.25 和 UI 优化 * feat: 将缩放后的光标限制在屏幕内 * chore: 代码优化 * perf: 只有一个显卡时避免计算显卡选项 * fix: 优化鼠标行为 * fix: 优化叠加层存在弹窗时鼠标交互 * feat: 为一些选项添加说明 增大自动计算的初始缩放倍数 * refactor: 重构调整大小消息的响应 * feat: 删除初始缩放倍数的说明 * feat: 自动缩放可以选择全屏或窗口模式 * feat: 缩放窗口可跟随源窗口移动 由于命中测试可能非常耗时,转到后台执行 * fix: 使通过上边框拖动缩放窗口更加可靠 * fix: 修复鼠标从标题栏移到上边框的过程有一瞬间的闪烁 * feat: 使得源窗口调整尺寸的区域可以调整缩放窗口尺寸 * fix: 优化全屏缩放的鼠标行为 * fix: 优化鼠标行为 * feat: 源窗口移动时临时还原光标移动速度和禁用 DirectFlip * fix: 修复内存损坏错误 * fix: 更可靠地检查缩放是否结束 * feat: 拖拽源窗口时保持光标位置稳定 * feat: 拖拽缩放窗口时保持光标位置稳定 * fix: 优化拖拽 * fix: 修复禁用 DirectFlip 导致的崩溃 * feat: 适配自己实现拖拽逻辑的窗口 * chore: 更新依赖 * fix: 防止拖动源窗口时光标超出屏幕 * fix: 修复舍入误差导致光标可能移到屏幕外 * fix: 优化和被 DPI 虚拟化的窗口的兼容性 * feat: 删除源窗口移动时临时禁用 DirectFlip * fix: 光标不在缩放窗口上时禁止和工具栏交互 * fix: 移动源窗口结束后确保缩放窗口标题栏可见 * fix: 避免调整窗口使标题栏可见导致光标位置跳跃 * fix: 优化拖动源窗口时将光标限制在屏幕内 * perf: 异步移动源窗口,使缩放的移动和调整大小更加平滑 * fix: 拖动缩放窗口时检测源窗口大小变化 * fix: 正确处理缩放窗口的 DPI 变化 * fix: 拖动源窗口时广播 WM_MAGPIE_SCALINGCHANGED * feat: 声明首选显示器选项仅适用于全屏模式缩放 * fix: 优化触控调整缩放窗口大小的体验 * fix: 销毁缩放窗口前取消置顶,添加日志 * chore: 修复编译 * refactor: 检查源窗口逻辑集中在 SrcTracker * fix: 修复源窗口挂起时缩放线程在 SetWindowPos 中卡死的问题 * fix: 修复调整大小中途源窗口挂起导致卡死的问题 * fix: CursorManager 析构时等待异步命中测试完成 * fix: 优化命中测试,不受源窗口卡死影响 * fix: 修复叠加层窗口圆角 * fix: 取消修复源窗口挂起时缩放线程在 SetWindowPos 中卡死的问题 它导致拖动性能下降 * fix: 修复有时切换前台窗口后 Z 顺序混乱 * fix: 删除不再需要的 SetWindowPos * feat: 暂时删除格鲁吉亚语和匈牙利语 完成度太低 * fix: 修复全屏缩放对 DPI 变化的响应 * fix: 修复错误裁剪滚动条和 Win11 24H2 中 Graphics Capture 错误裁剪最大化窗口 * feat: 优化触控拖动源窗口的体验 * refactor: 重构 TouchHelper 和项目文件 TouchHelper 支持日志 Magpie.Core 部分文件移动到 Shared * chore: TouchHelper 不再向主程序发送消息 * refactor: 简化 TouchHelper 逻辑 * fix: 日志文件路径使用宽字符 spdlog 默认使用 ANSI 编码,但支持使用宽字符文件名 * fix: 不再使用 SetForegroundWindow 的 trick 有时会导致奇怪的行为 * feat: Updater 支持日志 * feat: 添加工具栏不支持触控输入的警告 * fix: 修复 TouchHelper 日志错误
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Close #1136
KB5055627 后 Win+Shift+A 被 Recall 占用,导致快捷键注册失败。这个 PR 将默认快捷键组合中的 Win 键改为 Alt 键,现在默认快捷键如下:
全屏模式缩放:Alt+Shift+A
窗口模式缩放:Alt+Shift+Q
工具栏状态切换:Alt+Shift+D
新的默认快捷键只有第一次打开 Magpie 时才生效,如果已经有设置文件则不会做更改。