57 const auto* mainViewPort = ImGui::GetMainViewport();
58 const auto* windowViewPort = ImGui::GetWindowViewport();
59 bool isOnMainViewPort = windowViewPort == mainViewPort;
60 gl::vec2 newViewPortSize = mainViewPort->Size;
61 gl::vec2 mainViewPortPos = mainViewPort->Pos;
64 if (oldIsOnMainViewPort && (oldViewPortSize != newViewPortSize)) {
65 gl::vec2 windowSize = ImGui::GetWindowSize();
66 if (!isOnMainViewPort) {
71 setMainViewPort =
true;
72 isOnMainViewPort =
true;
73 relWindowPos = oldRelWindowPos;
75 auto newPosX = adjustWindowPositionForResizedViewPort(
76 oldViewPortSize.x, newViewPortSize.x, relWindowPos.x, windowSize.x);
77 auto newPosY = adjustWindowPositionForResizedViewPort(
78 oldViewPortSize.y, newViewPortSize.y, relWindowPos.y, windowSize.y);
79 if (newPosX && newPosY) {
80 relWindowPos =
gl::vec2{*newPosX, *newPosY};
81 ImGui::SetWindowPos(mainViewPortPos + relWindowPos);
86 oldViewPortSize = newViewPortSize;
87 oldRelWindowPos = relWindowPos;
88 oldIsOnMainViewPort = isOnMainViewPort;
90 return isOnMainViewPort;