introduce 'legacyZIndexMode' tag in carousel

Signed-off-by: Sophia Hadash <sophiahadash@gmail.com>
This commit is contained in:
shadash 2021-10-23 17:34:20 +02:00 committed by Sophia Hadash
parent 957c1fa7fc
commit 3070a66e2c
3 changed files with 36 additions and 12 deletions

View file

@ -402,20 +402,35 @@ void SystemView::render(const glm::mat4& parentTrans)
glm::mat4 trans{getTransform() * parentTrans}; glm::mat4 trans{getTransform() * parentTrans};
// Render the extras that are below the carousel. if (mCarousel.legacyZIndexMode) {
renderExtras(trans, INT16_MIN, mCarousel.zIndex); // Render all extras.
renderExtras(trans, INT16_MIN, INT16_MAX);
// Fade the screen if we're using fade transitions and we're currently transitioning. // Fade the screen if we're using fade transitions and we're currently transitioning.
// This basically renders a black rectangle on top of the currently visible extras // This basically renders a black rectangle on top of the currently visible extras
// (and beneath the carousel and help prompts). // (and beneath the carousel and help prompts).
if (mExtrasFadeOpacity) if (mExtrasFadeOpacity)
renderFade(trans); renderFade(trans);
// Always render the carousel on top so that it's not faded. // Always render the carousel on top so that it's not faded.
renderCarousel(trans); renderCarousel(trans);
}
else {
// Render the extras that are below the carousel.
renderExtras(trans, INT16_MIN, mCarousel.zIndex);
// Render the rest of the extras. // Fade the screen if we're using fade transitions and we're currently transitioning.
renderExtras(trans, mCarousel.zIndex, INT16_MAX); // This basically renders a black rectangle on top of the currently visible extras
// (and beneath the carousel and help prompts).
if (mExtrasFadeOpacity)
renderFade(trans);
// Render the carousel.
renderCarousel(trans);
// Render the rest of the extras.
renderExtras(trans, mCarousel.zIndex, INT16_MAX);
}
} }
std::vector<HelpPrompt> SystemView::getHelpPrompts() std::vector<HelpPrompt> SystemView::getHelpPrompts()
@ -734,4 +749,11 @@ void SystemView::getCarouselFromTheme(const ThemeData::ThemeElement* elem)
else else
mCarousel.logoAlignment = ALIGN_CENTER; mCarousel.logoAlignment = ALIGN_CENTER;
} }
if (elem->has("legacyZIndexMode")) {
mCarousel.legacyZIndexMode =
elem->get<std::string>("legacyZIndexMode").compare("true") == 0 ? true : false;
}
else {
mCarousel.legacyZIndexMode = true;
}
} }

View file

@ -47,6 +47,7 @@ struct SystemViewCarousel {
int maxLogoCount; // Number of logos shown on the carousel. int maxLogoCount; // Number of logos shown on the carousel.
glm::vec2 logoSize; glm::vec2 logoSize;
float zIndex; float zIndex;
bool legacyZIndexMode;
}; };
class SystemView : public IList<SystemViewData, SystemData*> class SystemView : public IList<SystemViewData, SystemData*>

View file

@ -210,7 +210,8 @@ std::map<std::string, std::map<std::string, ThemeData::ElementPropertyType>> The
{"logoSize", NORMALIZED_PAIR}, {"logoSize", NORMALIZED_PAIR},
{"logoAlignment", STRING}, {"logoAlignment", STRING},
{"maxLogoCount", FLOAT}, {"maxLogoCount", FLOAT},
{"zIndex", FLOAT}}}}; {"zIndex", FLOAT},
{"legacyZIndexMode", STRING}}}};
#define MINIMUM_THEME_FORMAT_VERSION 3 #define MINIMUM_THEME_FORMAT_VERSION 3
#define CURRENT_THEME_FORMAT_VERSION 7 #define CURRENT_THEME_FORMAT_VERSION 7