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

View File

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