mirror of
https://github.com/spice2x/spice2x.github.io.git
synced 2026-08-01 22:30:42 -07:00
overlay: refactor overlay layering (#739)
## Link to GitHub Issue or related Pull Request, if one exists n/a ## Description of change Create three distinct layers for the overlay: 1. Bottommost persistent layer - non-interactable layer that is always on. This was only for notifications, but now the FPS widget lives here as well. 2. Overlay windows layer - most interactable windows go here. 3. Topmost main menu - this is reserved for the main menu (escape key) and this is a modal dialog that occludes the layers below. Why? - `toggle overlay` behavior with FPS widget *also* toggling on/off was a bit confusing (now they're two separate keys) - FPS widget is popular, but it caused the entire overlay to be active, which affects how input is handled - the main menu being a standalone window was a little awkward (now it's a modal) ## Testing
This commit is contained in:
@@ -1182,7 +1182,20 @@ int main_implementation(int argc, char *argv[]) {
|
||||
overlay::AUTO_SHOW_FPS = true;
|
||||
}
|
||||
if (options[launcher::Options::spice2x_FpsOpposite].value_bool()) {
|
||||
overlay::FPS_SHOULD_FLIP = true;
|
||||
// deprecated flag: equivalent to anchoring the FPS window top-left
|
||||
overlay::FPS_LOCATION = overlay::FpsLocation::TopLeft;
|
||||
}
|
||||
if (options[launcher::Options::FpsLocation].is_active()) {
|
||||
const auto txt = options[launcher::Options::FpsLocation].value_text();
|
||||
if (txt == "topright") {
|
||||
overlay::FPS_LOCATION = overlay::FpsLocation::TopRight;
|
||||
} else if (txt == "topleft") {
|
||||
overlay::FPS_LOCATION = overlay::FpsLocation::TopLeft;
|
||||
} else if (txt == "bottomleft") {
|
||||
overlay::FPS_LOCATION = overlay::FpsLocation::BottomLeft;
|
||||
} else if (txt == "bottomright") {
|
||||
overlay::FPS_LOCATION = overlay::FpsLocation::BottomRight;
|
||||
}
|
||||
}
|
||||
if (options[launcher::Options::spice2x_SubScreenAutoShow].value_bool()) {
|
||||
overlay::AUTO_SHOW_SUBSCREEN = true;
|
||||
|
||||
Reference in New Issue
Block a user