Assign ActiveWindowID to NullWindowID if window doesn't exist, misc
This commit is contained in:
@@ -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;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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) {
|
||||||
|
|||||||
Reference in New Issue
Block a user