From 63173cdce6ab7e7f728965260c1442fd59d2b8a6 Mon Sep 17 00:00:00 2001 From: monitor1394 Date: Thu, 14 Dec 2023 10:20:48 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Runtime/Component/Tooltip/TooltipHandler.cs | 11 +++++++---- Runtime/Serie/SerieHelper.cs | 4 ++-- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/Runtime/Component/Tooltip/TooltipHandler.cs b/Runtime/Component/Tooltip/TooltipHandler.cs index 4fc3007c..db3d529b 100644 --- a/Runtime/Component/Tooltip/TooltipHandler.cs +++ b/Runtime/Component/Tooltip/TooltipHandler.cs @@ -110,6 +110,7 @@ namespace XCharts.Runtime if (!(serie is INeedSerieContainer)) { showTooltip = true; + containerSeries = null; return; } } @@ -126,6 +127,7 @@ namespace XCharts.Runtime private void UpdateTooltip(Tooltip tooltip) { if (!showTooltip) return; + var anyTrigger = false; for (int i = chart.series.Count - 1; i >= 0; i--) { var serie = chart.series[i]; @@ -133,20 +135,21 @@ namespace XCharts.Runtime { if (SetSerieTooltip(tooltip, serie)) { + anyTrigger = true; chart.RefreshTopPainter(); - return; + break; } } } if (containerSeries != null) { if (!SetSerieTooltip(tooltip, containerSeries)) - { showTooltip = false; - } + else + anyTrigger = true; ListPool.Release(containerSeries); } - if (!showTooltip) + if (!showTooltip || !anyTrigger) { if (tooltip.context.type == Tooltip.Type.Corss && m_PointerContainer != null && m_PointerContainer.IsPointerEnter()) { diff --git a/Runtime/Serie/SerieHelper.cs b/Runtime/Serie/SerieHelper.cs index 573e2c26..61c6e4d3 100644 --- a/Runtime/Serie/SerieHelper.cs +++ b/Runtime/Serie/SerieHelper.cs @@ -606,7 +606,7 @@ namespace XCharts.Runtime innerFill = stateStyle.areaStyle.innerFill; toTop = stateStyle.areaStyle.toTop; GetColor(ref color, stateStyle.areaStyle.color, stateStyle.itemStyle.color, stateStyle.areaStyle.opacity, theme, index); - GetColor(ref color, stateStyle.areaStyle.toColor, color, stateStyle.areaStyle.opacity, theme, index); + GetColor(ref toColor, stateStyle.areaStyle.toColor, color, stateStyle.areaStyle.opacity, theme, index); } else { @@ -645,7 +645,7 @@ namespace XCharts.Runtime } } - private static void GetColor(ref Color32 color, Color32 checkColor, Color32 itemColor, + public static void GetColor(ref Color32 color, Color32 checkColor, Color32 itemColor, float opacity, ThemeStyle theme, int colorIndex, bool setOpacity = true) { if (!ChartHelper.IsClearColor(checkColor)) color = checkColor;