Fix stack corruption when exiting an app (the app was destroyed while it was executing the button handler).
This commit is contained in:
parent
ff00873f97
commit
caca6a5cff
2 changed files with 10 additions and 1 deletions
|
@ -205,6 +205,11 @@ void DisplayApp::Refresh() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(nextApp != Apps::None) {
|
||||||
|
LoadApp(nextApp, nextDirection);
|
||||||
|
nextApp = Apps::None;
|
||||||
|
}
|
||||||
|
|
||||||
if (state != States::Idle && touchMode == TouchModes::Polling) {
|
if (state != States::Idle && touchMode == TouchModes::Polling) {
|
||||||
auto info = touchPanel.GetTouchInfo();
|
auto info = touchPanel.GetTouchInfo();
|
||||||
if (info.action == 2) { // 2 = contact
|
if (info.action == 2) { // 2 = contact
|
||||||
|
@ -223,7 +228,8 @@ void DisplayApp::RunningState() {
|
||||||
}
|
}
|
||||||
|
|
||||||
void DisplayApp::StartApp(Apps app, DisplayApp::FullRefreshDirections direction) {
|
void DisplayApp::StartApp(Apps app, DisplayApp::FullRefreshDirections direction) {
|
||||||
LoadApp(app, direction);
|
nextApp = app;
|
||||||
|
nextDirection = direction;
|
||||||
}
|
}
|
||||||
|
|
||||||
void DisplayApp::ReturnApp(Apps app, DisplayApp::FullRefreshDirections direction, TouchEvents touchEvent) {
|
void DisplayApp::ReturnApp(Apps app, DisplayApp::FullRefreshDirections direction, TouchEvents touchEvent) {
|
||||||
|
|
|
@ -111,6 +111,9 @@ namespace Pinetime {
|
||||||
void ReturnApp(Apps app, DisplayApp::FullRefreshDirections direction, TouchEvents touchEvent);
|
void ReturnApp(Apps app, DisplayApp::FullRefreshDirections direction, TouchEvents touchEvent);
|
||||||
void LoadApp(Apps app, DisplayApp::FullRefreshDirections direction);
|
void LoadApp(Apps app, DisplayApp::FullRefreshDirections direction);
|
||||||
void PushMessageToSystemTask(Pinetime::System::Messages message);
|
void PushMessageToSystemTask(Pinetime::System::Messages message);
|
||||||
|
|
||||||
|
Apps nextApp = Apps::None;
|
||||||
|
DisplayApp::FullRefreshDirections nextDirection;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue