mirror of
https://github.com/spice2x/spice2x.github.io.git
synced 2026-08-02 06:40: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:
@@ -14,8 +14,13 @@ namespace overlay::windows {
|
||||
public:
|
||||
ExitPrompt(SpiceOverlay *overlay);
|
||||
void build_content() override;
|
||||
void update() override;
|
||||
|
||||
private:
|
||||
void build_button(Window *window, std::string label, const ImVec2 &size, NextItem next, bool is_toggle=true);
|
||||
void build_button(Window *window, std::string label, const ImVec2 &size, NextItem next);
|
||||
|
||||
// latch so the popup is opened once per activation; reset in update()
|
||||
// whenever the menu is inactive
|
||||
bool popup_opened = false;
|
||||
};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user