From c3d8e09ceb68f4a74ed86f57d8e25317291bb149 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89milie=20Feral?= Date: Thu, 20 Feb 2020 10:40:50 +0100 Subject: [PATCH] [apps/calculation] Calculation: invalid heights memoization when forcing the display output --- apps/calculation/calculation.cpp | 6 ++++++ apps/calculation/calculation.h | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/apps/calculation/calculation.cpp b/apps/calculation/calculation.cpp index a5fe1e80b..ae3367ff0 100644 --- a/apps/calculation/calculation.cpp +++ b/apps/calculation/calculation.cpp @@ -274,6 +274,12 @@ Calculation::DisplayOutput Calculation::displayOutput(Context * context) { return m_displayOutput; } +void Calculation::forceDisplayOutput(DisplayOutput d) { + m_displayOutput = d; + // Reset heights memoization as it might have changed when we modify the display output + m_height = -1; + m_expandedHeight = -1; +} bool Calculation::shouldOnlyDisplayExactOutput() { /* If the input is a "store in a function", do not display the approximate * result. This prevents x->f(x) from displaying x = undef. */ diff --git a/apps/calculation/calculation.h b/apps/calculation/calculation.h index 98c352f21..4dbe4fc08 100644 --- a/apps/calculation/calculation.h +++ b/apps/calculation/calculation.h @@ -88,7 +88,7 @@ public: // Displayed output DisplayOutput displayOutput(Poincare::Context * context); - void forceDisplayOutput(DisplayOutput d) { m_displayOutput = d; } + void forceDisplayOutput(DisplayOutput d); bool shouldOnlyDisplayExactOutput(); EqualSign exactAndApproximateDisplayedOutputsAreEqual(Poincare::Context * context);