Assign ActiveWindowID to NullWindowID if window doesn't exist, misc

This commit is contained in:
Krzosa Karol
2025-12-30 13:06:36 +01:00
parent 5214ce61ac
commit 8270fe2542
3 changed files with 18 additions and 13 deletions

View File

@@ -603,11 +603,17 @@ void Update(Event event) {
}
}
{
ActiveWindowID = NextActiveWindowID;
Window *window = GetWindow(ActiveWindowID, NULL);
if (window == NULL || window->visible == false) {
ActiveWindowID = NextActiveWindowID = LastActiveLayoutWindowID;
window = GetWindow(ActiveWindowID);
window = GetWindow(ActiveWindowID, NULL);
if (window == NULL) {
ActiveWindowID = NullWindowID;
Assert(GetWindow(ActiveWindowID, NULL));
}
}
}
// Behavior where these windows cannot be visible at the same time
@@ -625,6 +631,7 @@ void Update(Event event) {
}
if (ActiveWindowID != LastActiveLayoutWindowID) {
Window *window = GetWindow(ActiveWindowID, NULL);
if (window->layout) {
LastActiveLayoutWindowID = ActiveWindowID;
}

View File

@@ -26,14 +26,12 @@ Window *GetWindow(WindowID id, Window *default_window = Windows[0]) {
}
void Close(WindowID id) {
Window *window = GetWindow(id, NULL);
if (window) {
Window *window = GetWindow(id);
if (window->id.id == 0) {
return;
}
window->close = true;
RunGCThisFrame = true;
}
}
Window *FindWindow(ViewID view_id, Window *default_window = NULL) {