From 39af89d66101eeaafae7f332df374082b639c87f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9a=20Saviot?= Date: Wed, 21 Nov 2018 11:04:10 +0100 Subject: [PATCH] [poincare] Fix LayoutNode::canBeOmittedMultiplicationRightFactor --- poincare/include/poincare/char_layout.h | 1 + poincare/include/poincare/vertical_offset_layout.h | 1 + poincare/src/char_layout.cpp | 7 +++++++ poincare/src/layout_node.cpp | 2 +- 4 files changed, 10 insertions(+), 1 deletion(-) diff --git a/poincare/include/poincare/char_layout.h b/poincare/include/poincare/char_layout.h index 1843f0b4a..8d1290d18 100644 --- a/poincare/include/poincare/char_layout.h +++ b/poincare/include/poincare/char_layout.h @@ -28,6 +28,7 @@ public: int serialize(char * buffer, int bufferSize, Preferences::PrintFloatMode floatDisplayMode, int numberOfSignificantDigits) const override; bool isChar() const override { return true; } bool isCollapsable(int * numberOfOpenParenthesis, bool goingLeft) const override; + bool canBeOmittedMultiplicationRightFactor() const override; // TreeNode size_t size() const override { return sizeof(CharLayoutNode); } diff --git a/poincare/include/poincare/vertical_offset_layout.h b/poincare/include/poincare/vertical_offset_layout.h index 245673cb0..c46caba12 100644 --- a/poincare/include/poincare/vertical_offset_layout.h +++ b/poincare/include/poincare/vertical_offset_layout.h @@ -31,6 +31,7 @@ public: int serialize(char * buffer, int bufferSize, Preferences::PrintFloatMode floatDisplayMode, int numberOfSignificantDigits) const override; bool mustHaveLeftSibling() const override { return true; } bool isVerticalOffset() const override { return true; } + bool canBeOmittedMultiplicationRightFactor() const override { return false; } // TreeNode size_t size() const override { return sizeof(VerticalOffsetLayoutNode); } diff --git a/poincare/src/char_layout.cpp b/poincare/src/char_layout.cpp index 8a4a4caf7..b6d42f81d 100644 --- a/poincare/src/char_layout.cpp +++ b/poincare/src/char_layout.cpp @@ -65,6 +65,13 @@ bool CharLayoutNode::isCollapsable(int * numberOfOpenParenthesis, bool goingLeft return true; } +bool CharLayoutNode::canBeOmittedMultiplicationRightFactor() const { + if (m_char == '!') { + return false; + } + return LayoutNode::canBeOmittedMultiplicationRightFactor(); +} + // Sizing and positioning KDSize CharLayoutNode::computeSize() { return m_font->glyphSize(); diff --git a/poincare/src/layout_node.cpp b/poincare/src/layout_node.cpp index 7aa1e002c..53f80eba5 100644 --- a/poincare/src/layout_node.cpp +++ b/poincare/src/layout_node.cpp @@ -123,7 +123,7 @@ bool LayoutNode::canBeOmittedMultiplicationRightFactor() const { * functions changes, it might not be the case anymore so make sure to modify * canBeOmittedMultiplicationRightFactor if needed. */ int numberOfOpenParentheses = 0; - return isCollapsable(&numberOfOpenParentheses, false) && !isVerticalOffset(); + return isCollapsable(&numberOfOpenParentheses, false); } // Private