fix(undo): 修复撤销按钮状态不刷新及空指针防护

- 将 refresh_undo_redo_buttons 提升为公共函数(声明在 callbacks_internal.h,实现在 callbacks.c)
- 在所有 push_record 的操作回调末尾调用 refresh_undo_redo_buttons,确保按钮状态实时更新
- 修复 redo() 中 OP_CLEAN/OP_IMPORT 的 new_paths 空指针风险
- 移除 undo_redo.c 中废弃的 apply_record 函数

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
2026-05-01 23:12:42 +08:00
parent bbcfc25aea
commit ec0ca5a3f6
5 changed files with 37 additions and 27 deletions
+3
View File
@@ -20,4 +20,7 @@ StringList *get_current_raw_data(Ihandle *dlg);
// 获取当前活动的列表 UI 控件
Ihandle *get_current_list(Ihandle *dlg);
// 刷新撤销/重做按钮的启用状态
void refresh_undo_redo_buttons(Ihandle *dlg);
#endif // CALLBACKS_INTERNAL_H