画布锁定与重置 — 紧急刹车和时间回溯
Canvas Lock(画布锁定)
Operator 专属紧急功能——一键让整个画布进入只读模式,任何人都不能继续绘画(包括 Operator 自己)。
- 启动 — Session → Canvas Lock,或默认快捷键 F12
- 解除 — 再次按 F12 或菜单操作
典型使用场景:
- 公开发布的会话里突然出现 griefer(恶意捣乱的人),画得太快来不及踢——先 Lock 住,再踢人、修复作品
- 画到一半觉得方向不对,想让大家先停一下讨论再继续——Lock 是最直接的"大家别画了"信号
Session Reset(会话重置)
把整个会话回退到之前某个时间点。这比 Force Undo 彻底得多——Force Undo 只能撤销单个人的最后几步操作,Reset 能把所有人的操作历史整体回退。
操作步骤:
- Session → Reset
- 弹出对话框,中间有一条时间滑块,上面标记了所有可用的快照点
- 滑块拖到你想回到的时间点
- 点 Reset,会话整体回退到那个状态
快照是怎么来的
Drawpile 服务器会定期自动创建快照——默认每 10 分钟左右一个(具体间隔取决于会话活跃度)。快照是整个会话状态的完整保存:所有图层、所有笔触、所有权限设置。
在 Edit → Preferences → General → Canvas Snapshots 里可以调:
- Snapshot Interval — 快照间隔(分钟)
- Snapshot Count — 保留多少个快照(越多占用服务器存储越多)
Android 和 Drawpile Web 版本默认关闭快照(内存压力原因),桌面客户端默认开启。
Reset 的限制和风险
- Reset 不可撤销 — 回退就真的回退了,之前的操作没了(除非再 Reset 到更近的快照,但快照有限)
- 会中断所有人 — Reset 执行时所有在线用户的客户端会短暂断开然后重连
- 快照有上限 — 如果你想回到一小时前但只保留了最后 5 个快照(可能只有 50 分钟),就回不去了
- 图层 Lock / ACL 设置会一起回退 — Reset 把会话状态整体回退,包括权限配置
2.2.2 后 Reset 不再中断
Drawpile 2.2.2 开始,自动重置不再打断会话。之前版本服务器会强制清空会话历史来释放内存,导致客户端断开重连。现在改成后台静默处理,用户完全感知不到。
如果手动触发 Reset(比如遇到恶意操作),还是会中断。
和 Force Undo 的区别
| 操作 | 粒度 | 谁触发 | 撤销谁 |
|---|---|---|---|
| Force Undo | 操作级别 | Operator | 某个具体用户的最近几步 |
| Session Reset | 会话级别 | Operator | 所有人的所有操作回到快照点 |
| Layer Lock | 图层级别 | Operator | 防止任何人修改 |
- 别人不小心删了一个图层 → Force Undo 他
- 整个会话被 griefer 毁了 → Canvas Lock → Session Reset
- 只想保护某张关键图层 → Layer Lock