Add XCUI editor collection primitives and stack rollback
This commit is contained in:
@@ -82,11 +82,27 @@ bool UIScreenStackController::ReplaceTop(
|
||||
return PushScreen(asset, options) != 0;
|
||||
}
|
||||
|
||||
if (!Pop()) {
|
||||
if (m_system == nullptr) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return PushScreen(asset, options) != 0;
|
||||
const UIScreenStackEntry previousTop = m_entries.back();
|
||||
const UIScreenLayerId replacementLayerId = m_system->PushScreen(asset, options);
|
||||
if (replacementLayerId == 0) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!m_system->RemoveLayer(previousTop.layerId)) {
|
||||
m_system->RemoveLayer(replacementLayerId);
|
||||
return false;
|
||||
}
|
||||
|
||||
UIScreenStackEntry replacementEntry = {};
|
||||
replacementEntry.layerId = replacementLayerId;
|
||||
replacementEntry.asset = asset;
|
||||
replacementEntry.options = options;
|
||||
m_entries.back() = std::move(replacementEntry);
|
||||
return true;
|
||||
}
|
||||
|
||||
bool UIScreenStackController::Pop() {
|
||||
|
||||
Reference in New Issue
Block a user