|
|
@ -5987,7 +5987,7 @@ static bool ImGui::UpdateWindowManualResize(ImGuiWindow* window, const ImVec2& s |
|
|
|
return ret_auto_fit; |
|
|
|
} |
|
|
|
|
|
|
|
static inline void ClampWindowRect(ImGuiWindow* window, const ImRect& visibility_rect) |
|
|
|
static inline void ClampWindowPos(ImGuiWindow* window, const ImRect& visibility_rect) |
|
|
|
{ |
|
|
|
ImGuiContext& g = *GImGui; |
|
|
|
ImVec2 size_for_clamping = window->Size; |
|
|
@ -6576,9 +6576,9 @@ bool ImGui::Begin(const char* name, bool* p_open, ImGuiWindowFlags flags) |
|
|
|
|
|
|
|
// Clamp position/size so window stays visible within its viewport or monitor
|
|
|
|
// Ignore zero-sized display explicitly to avoid losing positions if a window manager reports zero-sized window when initializing or minimizing.
|
|
|
|
if (!window_pos_set_by_api && !(flags & ImGuiWindowFlags_ChildWindow) && window->AutoFitFramesX <= 0 && window->AutoFitFramesY <= 0) |
|
|
|
if (!window_pos_set_by_api && !(flags & ImGuiWindowFlags_ChildWindow)) |
|
|
|
if (viewport_rect.GetWidth() > 0.0f && viewport_rect.GetHeight() > 0.0f) |
|
|
|
ClampWindowRect(window, visibility_rect); |
|
|
|
ClampWindowPos(window, visibility_rect); |
|
|
|
window->Pos = ImFloor(window->Pos); |
|
|
|
|
|
|
|
// Lock window rounding for the frame (so that altering them doesn't cause inconsistencies)
|
|
|
|