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()); }