[escher] In alternate empty view controller, do not layout the main view

as long as the view is empty

Change-Id: Ia079e350a5dc58ba73cda81de3918be3249e29d0
This commit is contained in:
Émilie Feral
2016-12-29 15:14:06 +01:00
parent 6cd85b550f
commit 6eb44373f4
2 changed files with 7 additions and 3 deletions

View File

@@ -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;

View File

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