From 6eb44373f4a77eb26065ef9e24b269bd2ef9840b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89milie=20Feral?= Date: Thu, 29 Dec 2016 15:14:06 +0100 Subject: [PATCH] [escher] In alternate empty view controller, do not layout the main view as long as the view is empty Change-Id: Ia079e350a5dc58ba73cda81de3918be3249e29d0 --- escher/include/escher/alternate_empty_view_controller.h | 2 +- escher/src/alternate_empty_view_controller.cpp | 8 ++++++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/escher/include/escher/alternate_empty_view_controller.h b/escher/include/escher/alternate_empty_view_controller.h index 530fd1d1a..08af6a7a9 100644 --- a/escher/include/escher/alternate_empty_view_controller.h +++ b/escher/include/escher/alternate_empty_view_controller.h @@ -19,10 +19,10 @@ private: void drawRect(KDContext * ctx, KDRect rect) const override; ViewController * mainViewController() const; AlternateEmptyViewDelegate * alternateEmptyViewDelegate() const; + void layoutSubviews() override; private: int numberOfSubviews() const override; View * subviewAtIndex(int index) override; - void layoutSubviews() override; PointerTextView m_message; ViewController * m_mainViewController; AlternateEmptyViewDelegate * m_delegate; diff --git a/escher/src/alternate_empty_view_controller.cpp b/escher/src/alternate_empty_view_controller.cpp index 847c79ee3..6e288bdb6 100644 --- a/escher/src/alternate_empty_view_controller.cpp +++ b/escher/src/alternate_empty_view_controller.cpp @@ -32,8 +32,11 @@ View * AlternateEmptyViewController::ContentView::subviewAtIndex(int index) { } void AlternateEmptyViewController::ContentView::layoutSubviews() { - m_message.setFrame(bounds()); - m_mainViewController->view()->setFrame(bounds()); + if (alternateEmptyViewDelegate()->isEmpty()) { + m_message.setFrame(bounds()); + } else { + m_mainViewController->view()->setFrame(bounds()); + } } ViewController * AlternateEmptyViewController::ContentView::mainViewController() const { @@ -72,6 +75,7 @@ bool AlternateEmptyViewController::handleEvent(Ion::Events::Event event) { } void AlternateEmptyViewController::didBecomeFirstResponder() { + m_contentView.layoutSubviews(); if (!m_contentView.alternateEmptyViewDelegate()->isEmpty()) { app()->setFirstResponder(m_contentView.mainViewController()); }