boolis_drag_docking=ImRect(0,0,window->SizeFull.x,GetFrameHeight()).Contains(g.ActiveIdClickOffset);// FIXME-DOCKING: Need to make this stateful and explicit
// Preview docking request and find out split direction/ratio
// Preview docking request and find out split direction/ratio
//const bool do_preview = true; // Ignore testing for payload->IsPreview() which removes one frame of delay, but breaks overlapping drop targets within the same window.
//const bool do_preview = true; // Ignore testing for payload->IsPreview() which removes one frame of delay, but breaks overlapping drop targets within the same window.
// [BETA API] Enable with io.ConfigFlags |= ImGuiConfigFlags_DockingEnable.
// [BETA API] Enable with io.ConfigFlags |= ImGuiConfigFlags_DockingEnable.
// Note: You can use most Docking facilities without calling any API. You DO NOT need to call DockSpace() to use Docking!
// Note: You can use most Docking facilities without calling any API. You DO NOT need to call DockSpace() to use Docking!
// - To dock windows: if io.ConfigDockingWithShift == false (default) drag window from their title bar.
// - Drag from window title bar or their tab to dock/undock. Hold SHIFT to disable docking.
// - To dock windows: if io.ConfigDockingWithShift == true: hold SHIFT anywhere while moving windows.
// - Drag from window menu button (upper-left button) to undock an entire node (all windows).
// About DockSpace:
// About DockSpace:
// - Use DockSpace() to create an explicit dock node _within_ an existing window. See Docking demo for details.
// - Use DockSpace() to create an explicit dock node _within_ an existing window. See Docking demo for details.
// - DockSpace() needs to be submitted _before_ any window they can host. If you use a dockspace, submit it early in your app.
// - DockSpace() needs to be submitted _before_ any window they can host. If you use a dockspace, submit it early in your app.
@ -1854,7 +1854,6 @@ struct ImGuiIO
// Docking options (when ImGuiConfigFlags_DockingEnable is set)
// Docking options (when ImGuiConfigFlags_DockingEnable is set)
boolConfigDockingNoSplit;// = false // Simplified docking mode: disable window splitting, so docking is limited to merging multiple windows together into tab-bars.
boolConfigDockingNoSplit;// = false // Simplified docking mode: disable window splitting, so docking is limited to merging multiple windows together into tab-bars.
boolConfigDockingWithShift;// = false // Enable docking with holding Shift key (reduce visual noise, allows dropping in wider space)
boolConfigDockingAlwaysTabBar;// = false // [BETA] [FIXME: This currently creates regression with auto-sizing and general overhead] Make every single floating window display within a docking node.
boolConfigDockingAlwaysTabBar;// = false // [BETA] [FIXME: This currently creates regression with auto-sizing and general overhead] Make every single floating window display within a docking node.
boolConfigDockingTransparentPayload;// = false // [BETA] Make window or viewport transparent when docking and only display docking boxes on the target viewport. Useful if rendering of multiple viewport cannot be synced. Best used with ConfigViewportsNoAutoMerge.
boolConfigDockingTransparentPayload;// = false // [BETA] Make window or viewport transparent when docking and only display docking boxes on the target viewport. Useful if rendering of multiple viewport cannot be synced. Best used with ConfigViewportsNoAutoMerge.
ImGui::SameLine();HelpMarker(io.ConfigDockingWithShift?"[beta] Use SHIFT to dock window into each others.":"[beta] Drag from title bar to dock windows into each others.");
ImGui::SameLine();HelpMarker("Drag from window title bar or their tab to dock/undock. Hold SHIFT to disable docking.\n\nDrag from window menu button (upper-left button) to undock an entire node (all windows).");
ImGui::SameLine();HelpMarker("Simplified docking mode: disable window splitting, so docking is limited to merging multiple windows together into tab-bars.");
ImGui::SameLine();HelpMarker("Simplified docking mode: disable window splitting, so docking is limited to merging multiple windows together into tab-bars.");
"When docking is enabled, you can ALWAYS dock MOST window into another! Try it now!""\n\n"
"When docking is enabled, you can ALWAYS dock MOST window into another! Try it now!""\n"
" > if io.ConfigDockingWithShift==false (default):""\n"
"- Drag from window title bar or their tab to dock/undock.""\n"
" drag windows from title bar to dock""\n"
"- Drag from window menu button (upper-left button) to undock an entire node (all windows).""\n"
" > if io.ConfigDockingWithShift==true:""\n"
"- Hold SHIFT to disable docking.""\n"
" drag windows from anywhere and hold Shift to dock""\n\n"
"This demo app has nothing to do with it!""\n\n"
"This demo app has nothing to do with it!""\n\n"
"This demo app only demonstrate the use of ImGui::DockSpace() which allows you to manually create a docking node _within_ another window. This is useful so you can decorate your main application window (e.g. with a menu bar).""\n\n"
"This demo app only demonstrate the use of ImGui::DockSpace() which allows you to manually create a docking node _within_ another window. This is useful so you can decorate your main application window (e.g. with a menu bar).""\n\n"
"ImGui::DockSpace() comes with one hard constraint: it needs to be submitted _before_ any window which may be docked into it. Therefore, if you use a dock spot as the central point of your application, you'll probably want it to be part of the very first window you are submitting to imgui every frame.""\n\n"
"ImGui::DockSpace() comes with one hard constraint: it needs to be submitted _before_ any window which may be docked into it. Therefore, if you use a dock spot as the central point of your application, you'll probably want it to be part of the very first window you are submitting to imgui every frame.""\n\n"