add:issue #190
This commit is contained in:
@@ -388,6 +388,29 @@ namespace Ink_Canvas.Helpers
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 重置当前演示文稿的墨迹锁定状态
|
||||||
|
/// </summary>
|
||||||
|
public void ResetCurrentPresentationLockState()
|
||||||
|
{
|
||||||
|
lock (_lockObject)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
var manager = GetCurrentManager();
|
||||||
|
if (manager != null)
|
||||||
|
{
|
||||||
|
manager.ResetLockState();
|
||||||
|
LogHelper.WriteLogToFile("已重置当前演示文稿的墨迹锁定状态", LogHelper.LogType.Trace);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
LogHelper.WriteLogToFile($"重置墨迹锁定状态失败: {ex}", LogHelper.LogType.Error);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 移除演示文稿管理器
|
/// 移除演示文稿管理器
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|||||||
@@ -207,8 +207,17 @@ namespace Ink_Canvas.Helpers
|
|||||||
// 如果有当前墨迹,先保存到正确的页面
|
// 如果有当前墨迹,先保存到正确的页面
|
||||||
if (currentStrokes != null && currentStrokes.Count > 0)
|
if (currentStrokes != null && currentStrokes.Count > 0)
|
||||||
{
|
{
|
||||||
// 使用当前锁定的页面索引,如果没有锁定则使用传入的页面索引
|
// 否则使用传入的页面索引,确保墨迹保存到正确的页面
|
||||||
int saveToSlideIndex = _lockedSlideIndex > 0 ? _lockedSlideIndex : slideIndex;
|
int saveToSlideIndex;
|
||||||
|
if (_lockedSlideIndex > 0 && DateTime.Now < _inkLockUntil && _lockedSlideIndex != slideIndex)
|
||||||
|
{
|
||||||
|
saveToSlideIndex = _lockedSlideIndex;
|
||||||
|
LogHelper.WriteLogToFile($"使用锁定页面保存墨迹: {saveToSlideIndex} -> {slideIndex}", LogHelper.LogType.Trace);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
saveToSlideIndex = slideIndex;
|
||||||
|
}
|
||||||
|
|
||||||
// 确保页面索引有效
|
// 确保页面索引有效
|
||||||
if (saveToSlideIndex > 0 && saveToSlideIndex < _memoryStreams.Length)
|
if (saveToSlideIndex > 0 && saveToSlideIndex < _memoryStreams.Length)
|
||||||
@@ -407,6 +416,21 @@ namespace Ink_Canvas.Helpers
|
|||||||
if (currentSlideIndex != _lockedSlideIndex && _lockedSlideIndex > 0) return false;
|
if (currentSlideIndex != _lockedSlideIndex && _lockedSlideIndex > 0) return false;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 重置墨迹锁定状态
|
||||||
|
/// </summary>
|
||||||
|
public void ResetLockState()
|
||||||
|
{
|
||||||
|
lock (_lockObject)
|
||||||
|
{
|
||||||
|
_inkLockUntil = DateTime.MinValue;
|
||||||
|
_lockedSlideIndex = -1;
|
||||||
|
_lastSwitchTime = DateTime.MinValue;
|
||||||
|
_lastSwitchSlideIndex = -1;
|
||||||
|
LogHelper.WriteLogToFile("已重置墨迹锁定状态", LogHelper.LogType.Trace);
|
||||||
|
}
|
||||||
|
}
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region Private Methods
|
#region Private Methods
|
||||||
|
|||||||
@@ -796,6 +796,9 @@ namespace Ink_Canvas
|
|||||||
// 注意:这里只清空索引0的备份,不影响白板页面的墨迹(索引1及以上)
|
// 注意:这里只清空索引0的备份,不影响白板页面的墨迹(索引1及以上)
|
||||||
TimeMachineHistories[0] = null;
|
TimeMachineHistories[0] = null;
|
||||||
|
|
||||||
|
// 重置墨迹管理器的锁定状态,防止下次放映时墨迹显示错误
|
||||||
|
ResetInkManagerLockState();
|
||||||
|
|
||||||
// 退出PPT模式时恢复手势面板和手势按钮的显示状态
|
// 退出PPT模式时恢复手势面板和手势按钮的显示状态
|
||||||
if (Settings.Gesture.IsEnableTwoFingerGesture && ToggleSwitchEnableMultiTouchMode.IsOn)
|
if (Settings.Gesture.IsEnableTwoFingerGesture && ToggleSwitchEnableMultiTouchMode.IsOn)
|
||||||
{
|
{
|
||||||
@@ -1014,6 +1017,32 @@ namespace Ink_Canvas
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 重置墨迹管理器的锁定状态,防止墨迹显示错误
|
||||||
|
/// </summary>
|
||||||
|
private void ResetInkManagerLockState()
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
// 获取当前活跃的演示文稿
|
||||||
|
var activePresentation = _pptManager?.GetCurrentActivePresentation();
|
||||||
|
if (activePresentation != null)
|
||||||
|
{
|
||||||
|
// 切换到对应的墨迹管理器
|
||||||
|
_multiPPTInkManager?.SwitchToPresentation(activePresentation);
|
||||||
|
|
||||||
|
// 重置锁定状态
|
||||||
|
_multiPPTInkManager?.ResetCurrentPresentationLockState();
|
||||||
|
|
||||||
|
LogHelper.WriteLogToFile($"已重置墨迹管理器锁定状态", LogHelper.LogType.Trace);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
LogHelper.WriteLogToFile($"重置墨迹管理器锁定状态失败: {ex}", LogHelper.LogType.Error);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 使用防抖机制处理页面切换
|
/// 使用防抖机制处理页面切换
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|||||||
Reference in New Issue
Block a user