From 64a1094edf18f284bf044330252943414ae7741f Mon Sep 17 00:00:00 2001 From: Romain Goyet Date: Wed, 8 Apr 2020 15:35:31 -0400 Subject: [PATCH] [escher/layout_field] Use IsMoveEvent --- escher/src/layout_field.cpp | 47 ++++++++++++++++++++----------------- 1 file changed, 25 insertions(+), 22 deletions(-) diff --git a/escher/src/layout_field.cpp b/escher/src/layout_field.cpp index a76aef40e..f72280004 100644 --- a/escher/src/layout_field.cpp +++ b/escher/src/layout_field.cpp @@ -430,6 +430,30 @@ void LayoutField::deleteSelection() { m_contentView.deleteSelection(); } +#define static_assert_immediately_follows(a, b) static_assert( \ + static_cast(a) + 1 == static_cast(b), \ + "Ordering error" \ +) + +#define static_assert_sequential(a, b, c, d) \ + static_assert_immediately_follows(a, b); \ + static_assert_immediately_follows(b, c); \ + static_assert_immediately_follows(c, d); + + +static_assert_sequential( + Ion::Events::Left, + Ion::Events::Up, + Ion::Events::Down, + Ion::Events::Right +); + +static inline bool IsMoveEvent(Ion::Events::Event event) { + return + static_cast(event) >= static_cast(Ion::Events::Left) && + static_cast(event) <= static_cast(Ion::Events::Right); +} + bool LayoutField::privateHandleEvent(Ion::Events::Event event) { if (m_delegate && m_delegate->layoutFieldDidReceiveEvent(this, event)) { return true; @@ -454,7 +478,7 @@ bool LayoutField::privateHandleEvent(Ion::Events::Event event) { /* if move event was not caught neither by privateHandleMoveEvent nor by * layoutFieldShouldFinishEditing, we handle it here to avoid bubbling the * event up. */ - if ((event == Ion::Events::Up || event == Ion::Events::Down || event == Ion::Events::Left || event == Ion::Events::Right) && isEditing()) { + if (IsMoveEvent(event) && isEditing()) { return true; } if ((event == Ion::Events::OK || event == Ion::Events::EXE) && !isEditing()) { @@ -503,15 +527,6 @@ bool LayoutField::privateHandleEvent(Ion::Events::Event event) { return false; } -#define static_assert_immediately_follows(a, b) static_assert( \ - static_cast(a) + 1 == static_cast(b), \ - "Ordering error" \ -) - -#define static_assert_sequential(a, b, c, d) \ - static_assert_immediately_follows(a, b); \ - static_assert_immediately_follows(b, c); \ - static_assert_immediately_follows(c, d); static_assert_sequential( LayoutCursor::Direction::Left, @@ -520,18 +535,6 @@ static_assert_sequential( LayoutCursor::Direction::Right ); -static_assert_sequential( - Ion::Events::Left, - Ion::Events::Up, - Ion::Events::Down, - Ion::Events::Right -); - -static inline bool IsMoveEvent(Ion::Events::Event event) { - return - static_cast(event) >= static_cast(Ion::Events::Left) && - static_cast(event) <= static_cast(Ion::Events::Right); -} static inline LayoutCursor::Direction DirectionForMoveEvent(Ion::Events::Event event) { assert(IsMoveEvent(event));