ocornut / imgui

Dear ImGui: Bloat-free Graphical User interface for C++ with minimal dependencies
MIT License
57.78k stars 9.91k forks source link

Window rounding doesn't apply when windows are docked into each other #6151

Open billgan1024 opened 1 year ago

billgan1024 commented 1 year ago

ImGui Version:

Dear ImGui 1.89.3 WIP (18927)
--------------------------------
sizeof(size_t): 8, sizeof(ImDrawIdx): 2, sizeof(ImDrawVert): 20
define: __cplusplus=201703
define: __linux__
define: __GNUC__=11
define: IMGUI_HAS_VIEWPORT
define: IMGUI_HAS_DOCK
--------------------------------
io.BackendPlatformName: imgui_impl_glfw
io.BackendRendererName: imgui_impl_vulkan
io.ConfigFlags: 0x00000040
 DockingEnable
io.ConfigViewportsNoDecoration
io.ConfigInputTextCursorBlink
io.ConfigWindowsResizeFromEdges
io.ConfigWindowsMoveFromTitleBarOnly
io.ConfigMemoryCompactTimer = 60.0
io.BackendFlags: 0x00001C0E
 HasMouseCursors
 HasSetMousePos
 PlatformHasViewports
 HasMouseHoveredViewport
 RendererHasVtxOffset
 RendererHasViewports
--------------------------------
io.Fonts: 1 fonts, Flags: 0x00000000, TexSize: 512,256
io.DisplaySize: 2560.00,1287.00
io.DisplayFramebufferScale: 1.00,1.00
--------------------------------
style.WindowPadding: 8.00,8.00
style.WindowBorderSize: 1.00
style.FramePadding: 4.00,3.00
style.FrameRounding: 6.00
style.FrameBorderSize: 0.00
style.ItemSpacing: 8.00,4.00
style.ItemInnerSpacing: 4.00,4.00

My Issue/Question:

Window rounding doesn't apply when windows are docked into each other even though it was set with ImGui::GetStyle (the bottom corners aren't rounded).

Screenshots/Video Screencast from 2023-02-06 11:39:36 PM.webm

Standalone, minimal, complete and verifiable example: (see https://github.com/ocornut/imgui/issues/2261)


        ImGuiStyle &style = ImGui::GetStyle();
        style.WindowRounding = 20.0f;
        style.FrameRounding = 20.0f;
        style.GrabRounding = 20.0f;
        style.PopupRounding = 20.0f;
        style.ScrollbarRounding = 20.0f;
        style.TabRounding = 20.0f;
        style.ChildRounding = 20.0f;

        ImGui::Begin("Hello, world!");

        ImGui::Text("This is some useful text.");           
        ImGui::End();

        ImGui::ShowDemoWindow();
PathogenDavid commented 1 year ago

Somewhat related issue, except the expected result was the opposite: https://github.com/ocornut/imgui/issues/5527