Skip to content

Feature/image preview zoom - #104

Merged
songdiyang merged 4 commits into
devfrom
feature/image-preview-zoom
Aug 5, 2026
Merged

Feature/image preview zoom#104
songdiyang merged 4 commits into
devfrom
feature/image-preview-zoom

Conversation

@songdiyang

Copy link
Copy Markdown
Collaborator

变更内容

更新了哪些特性

  1. 图片预览支持 Ctrl+滚轮缩放(范围 10%-1000%)
  2. 图片预览支持 Ctrl+= / Ctrl+- 快捷键缩放,Ctrl+0 重置缩放
  3. 图片预览信息栏显示当前缩放比例
  4. 图片预览支持鼠标中键拖拽平移查看

修复了哪些问题

  1. 修复图片缩放后溢出编辑区域遮挡其他 UI 元素的问题

其他说明

本次更新为图片预览功能添加了完整的缩放和平移能力,用户可以:

  • 使用 Ctrl+滚轮 或 Ctrl+= / Ctrl+- 快捷键自由缩放图片
  • 当图片放大超出显示区域时,按住鼠标中键拖拽查看不同部分
  • 通过 Ctrl+0 快速重置到原始大小
  • 在信息栏实时查看当前缩放比例

切换图片或标签时会自动重置缩放状态,确保每次打开图片都从 100% 开始。

$matches 是 PowerShell 内置自动变量(存储正则匹配结果),
赋值会导致不可预期副作用。改为 $matchedLines。
## 修复了哪些问题

1. **编辑器光标不闪烁**:
   - TabContent 新增 caret_visible 字段,控制光标可见状态
   - 点击编辑器区域时启动 CARET_TIMER_ID 定时器(530ms 周期)
   - on_timer_caret 中新增编辑器光标闪烁逻辑,与 AI 面板/沙盒输入框统一处理
   - render_editor 中根据 caret_visible 决定是否绘制光标,实现闪烁效果

2. **文件树单击手感**:
   - 确认文件树已是单击打开(非双击),handle_file_tree_click 中 FileKind::File 直接打开
   - 拖拽检测阈值保持 4px,避免误触发

## 极致性能设计

- 光标闪烁使用脏矩形标记,只重绘 EditorContent 区域(非全窗口)
- 定时器只在需要时启动(点击编辑器/输入框时),无输入时自动停止
- 与现有脏矩形追踪系统整合,不引入额外渲染开销
- 添加 Ctrl+滚轮缩放图片(10%-1000%)
- 添加 Ctrl+= / Ctrl+- 快捷键缩放
- 添加 Ctrl+0 重置缩放
- 信息栏显示当前缩放比例
- 添加图片渲染裁剪,防止溢出编辑区域
- 添加鼠标中键拖拽平移功能
- 切换图片/标签时自动重置缩放状态
@songdiyang
songdiyang merged commit 53f7c4a into dev Aug 5, 2026
2 checks passed
@songdiyang
songdiyang deleted the feature/image-preview-zoom branch August 5, 2026 13:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant