diff --git a/Documentation~/zh/changelog.md b/Documentation~/zh/changelog.md index 7a5d1741..6e98852e 100644 --- a/Documentation~/zh/changelog.md +++ b/Documentation~/zh/changelog.md @@ -73,6 +73,7 @@ slug: /changelog ## master * (2024.03.11) 修复`Legend`的`formatter`在设置`{d}`通配符时显示可能不匹配的问题 (#304) +* (2024.03.11) 修复`Tooltip`移出坐标系后还显示的问题 * (2024.03.08) 修复`Tooltip`的`title`从旧版本升级后可能不显示的问题 ## v3.10.1 diff --git a/Runtime/Component/Tooltip/TooltipHandler.cs b/Runtime/Component/Tooltip/TooltipHandler.cs index 6777c708..aec2878a 100644 --- a/Runtime/Component/Tooltip/TooltipHandler.cs +++ b/Runtime/Component/Tooltip/TooltipHandler.cs @@ -95,30 +95,29 @@ namespace XCharts.Runtime { showTooltip = false; if (tooltip.trigger == Tooltip.Trigger.None) return; - if (!chart.isPointerInChart || !tooltip.show) + if (chart.isPointerInChart && tooltip.show) { - if (tooltip.IsActive()) + for (int i = chart.series.Count - 1; i >= 0; i--) { - tooltip.ClearValue(); - tooltip.SetActive(false); + var serie = chart.series[i]; + if (!(serie is INeedSerieContainer)) + { + showTooltip = true; + containerSeries = null; + return; + } } - return; - } - for (int i = chart.series.Count - 1; i >= 0; i--) - { - var serie = chart.series[i]; - if (!(serie is INeedSerieContainer)) + containerSeries = ListPool.Get(); + UpdatePointerContainerAndSeriesAndTooltip(tooltip, ref containerSeries); + if (containerSeries.Count > 0) { showTooltip = true; - containerSeries = null; - return; } } - containerSeries = ListPool.Get(); - UpdatePointerContainerAndSeriesAndTooltip(tooltip, ref containerSeries); - if (containerSeries.Count > 0) + if (!showTooltip && tooltip.IsActive()) { - showTooltip = true; + tooltip.ClearValue(); + tooltip.SetActive(false); } }