mirror of
https://github.com/UpsilonNumworks/Upsilon.git
synced 2026-01-18 16:27:34 +01:00
[escher/app/modal_view] If will exit app, do not relayout
App::willBecomeInactive calls dismissModalViewController, which puts back the previous repsonder and calls layoutSubviews on the modalViewController. We do not want to do all these operations when the app will be exited anyways.
This commit is contained in:
@@ -55,7 +55,7 @@ public:
|
||||
virtual bool prepareForExit() { return true; }
|
||||
void displayModalViewController(ViewController * vc, float verticalAlignment, float horizontalAlignment,
|
||||
KDCoordinate topMargin = 0, KDCoordinate leftMargin = 0, KDCoordinate bottomMargin = 0, KDCoordinate rightMargin = 0);
|
||||
void dismissModalViewController();
|
||||
void dismissModalViewController(bool willExitApp = false);
|
||||
void displayWarning(I18n::Message warningMessage1, I18n::Message warningMessage2 = (I18n::Message) 0, bool specialExitKeys = false);
|
||||
|
||||
virtual void didBecomeActive(Window * window);
|
||||
|
||||
@@ -14,7 +14,7 @@ public:
|
||||
void displayModalViewController(ViewController * vc, float verticalAlignment, float horizontalAlignment,
|
||||
KDCoordinate topMargin = 0, KDCoordinate leftMargin = 0, KDCoordinate bottomMargin = 0, KDCoordinate rightMargin = 0);
|
||||
void reloadModalViewController();
|
||||
void dismissModalViewController();
|
||||
void dismissModalViewController(bool willExitApp = false);
|
||||
bool isDisplayingModal();
|
||||
void initView() override;
|
||||
void viewWillAppear() override;
|
||||
@@ -31,7 +31,7 @@ private:
|
||||
void layoutSubviews(bool force = false) override;
|
||||
void presentModalView(View * modalView, float verticalAlignment, float horizontalAlignment,
|
||||
KDCoordinate topMargin, KDCoordinate leftMargin, KDCoordinate bottomMargin, KDCoordinate rightMargin);
|
||||
void dismissModalView();
|
||||
void dismissModalView(bool willExitApp = false);
|
||||
bool isDisplayingModal() const;
|
||||
void reload();
|
||||
private:
|
||||
|
||||
@@ -86,8 +86,8 @@ void App::displayModalViewController(ViewController * vc, float verticalAlignmen
|
||||
m_modalViewController.displayModalViewController(vc, verticalAlignment, horizontalAlignment, topMargin, leftMargin, bottomMargin, rightMargin);
|
||||
}
|
||||
|
||||
void App::dismissModalViewController() {
|
||||
m_modalViewController.dismissModalViewController();
|
||||
void App::dismissModalViewController(bool willExitApp) {
|
||||
m_modalViewController.dismissModalViewController(willExitApp);
|
||||
}
|
||||
|
||||
void App::displayWarning(I18n::Message warningMessage1, I18n::Message warningMessage2, bool specialExitKeys) {
|
||||
@@ -105,7 +105,7 @@ void App::didBecomeActive(Window * window) {
|
||||
|
||||
void App::willBecomeInactive() {
|
||||
if (m_modalViewController.isDisplayingModal()) {
|
||||
dismissModalViewController();
|
||||
dismissModalViewController(true);
|
||||
}
|
||||
setFirstResponder(nullptr);
|
||||
m_modalViewController.viewDidDisappear();
|
||||
|
||||
@@ -80,9 +80,11 @@ void ModalViewController::ContentView::presentModalView(View * modalView, float
|
||||
layoutSubviews();
|
||||
}
|
||||
|
||||
void ModalViewController::ContentView::dismissModalView() {
|
||||
void ModalViewController::ContentView::dismissModalView(bool willExitApp) {
|
||||
m_isDisplayingModal = false;
|
||||
layoutSubviews();
|
||||
if (!willExitApp) {
|
||||
layoutSubviews();
|
||||
}
|
||||
m_currentModalView->resetSuperview();
|
||||
m_currentModalView = nullptr;
|
||||
}
|
||||
@@ -128,10 +130,12 @@ void ModalViewController::reloadModalViewController() {
|
||||
m_contentView.layoutSubviews();
|
||||
}
|
||||
|
||||
void ModalViewController::dismissModalViewController() {
|
||||
void ModalViewController::dismissModalViewController(bool willExitApp) {
|
||||
m_currentModalViewController->viewDidDisappear();
|
||||
Container::activeApp()->setFirstResponder(m_previousResponder);
|
||||
m_contentView.dismissModalView();
|
||||
if (!willExitApp) {
|
||||
Container::activeApp()->setFirstResponder(m_previousResponder);
|
||||
}
|
||||
m_contentView.dismissModalView(willExitApp);
|
||||
m_currentModalViewController = nullptr;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user