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); ActiveWindowID = NextActiveWindowID;
if (window == NULL || window->visible == false) { Window *window = GetWindow(ActiveWindowID, NULL);
ActiveWindowID = NextActiveWindowID = LastActiveLayoutWindowID; if (window == NULL || window->visible == false) {
window = GetWindow(ActiveWindowID); ActiveWindowID = NextActiveWindowID = LastActiveLayoutWindowID;
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,14 +26,12 @@ 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;
RunGCThisFrame = true;
} }
window->close = true;
RunGCThisFrame = true;
} }
Window *FindWindow(ViewID view_id, Window *default_window = NULL) { Window *FindWindow(ViewID view_id, Window *default_window = NULL) {

View File

@@ -21,7 +21,7 @@ void DebugWindowInit() {
} }
void DebugWindowLayout(Rect2I *rect, Int wx, Int wy) { void DebugWindowLayout(Rect2I *rect, Int wx, Int wy) {
Window *n = GetWindow(DebugWindowID); Window *n = GetWindow(DebugWindowID);
Rect2 screen_rect = Rect0Size((float)wx, (float)wy); Rect2 screen_rect = Rect0Size((float)wx, (float)wy);
Vec2 size = GetSize(screen_rect); Vec2 size = GetSize(screen_rect);