mirror of
				https://github.com/Drezil/imgui.git
				synced 2025-10-31 21:21:06 +01:00 
			
		
		
		
	Docking: Hold Shift to force disable docking. (#2109)
This commit is contained in:
		| @@ -6073,7 +6073,7 @@ bool ImGui::Begin(const char* name, bool* p_open, ImGuiWindowFlags flags) | ||||
|         { | ||||
|             // Docking: Dragging a dockable window (or any of its child) turns it into a drag and drop source. | ||||
|             // We need to do this _before_ we overwrite window->DC.LastItemId below because BeginAsDockableDragDropSource() also overwrites it. | ||||
|             if ((g.ActiveId == window->MoveId) && ((g.IO.ConfigDockingWithShift && g.IO.KeyShift) || (!g.IO.ConfigDockingWithShift))) | ||||
|             if ((g.ActiveId == window->MoveId) && (g.IO.ConfigDockingWithShift == g.IO.KeyShift)) | ||||
|                 if ((window->Flags & ImGuiWindowFlags_NoMove) == 0) | ||||
|                     if ((window->RootWindow->Flags & (ImGuiWindowFlags_NoMove | ImGuiWindowFlags_NoDocking)) == 0) | ||||
|                         BeginAsDockableDragDropSource(window); | ||||
| @@ -10862,7 +10862,6 @@ namespace ImGui | ||||
|     static ImGuiDockNode*   DockContextAddNode(ImGuiContext* ctx, ImGuiID id); | ||||
|     static ImGuiID          DockContextGenNodeID(ImGuiContext* ctx); | ||||
|     static void             DockContextRemoveNode(ImGuiContext* ctx, ImGuiDockNode* node, bool merge_sibling_into_parent_node); | ||||
|     static void             DockContextQueueDock(ImGuiContext* ctx, ImGuiWindow* target, ImGuiDockNode* target_node, ImGuiWindow* payload, ImGuiDir split_dir, float split_ratio, bool split_outer); | ||||
|     static void             DockContextQueueNotifyRemovedNode(ImGuiContext* ctx, ImGuiDockNode* node); | ||||
|     static void             DockContextProcessDock(ImGuiContext* ctx, ImGuiDockRequest* req); | ||||
|     static void             DockContextProcessUndockWindow(ImGuiContext* ctx, ImGuiWindow* window, bool clear_persistent_docking_ref = true); | ||||
| @@ -13635,6 +13634,7 @@ void ImGui::BeginAsDockableDragDropTarget(ImGuiWindow* window) | ||||
|     ImGuiContext* ctx = GImGui; | ||||
|     ImGuiContext& g = *ctx; | ||||
|  | ||||
|     //IM_ASSERT(window->RootWindow == window); // May also be a DockSpace | ||||
|     IM_ASSERT((window->Flags & ImGuiWindowFlags_NoDocking) == 0); | ||||
|     if (!g.DragDropActive) | ||||
|         return; | ||||
|   | ||||
| @@ -1674,6 +1674,7 @@ namespace ImGui | ||||
|     IMGUI_API void          DockContextRebuild(ImGuiContext* ctx); | ||||
|     IMGUI_API void          DockContextNewFrameUpdateUndocking(ImGuiContext* ctx); | ||||
|     IMGUI_API void          DockContextNewFrameUpdateDocking(ImGuiContext* ctx); | ||||
|     IMGUI_API void          DockContextQueueDock(ImGuiContext* ctx, ImGuiWindow* target, ImGuiDockNode* target_node, ImGuiWindow* payload, ImGuiDir split_dir, float split_ratio, bool split_outer); | ||||
|     IMGUI_API void          DockContextQueueUndockWindow(ImGuiContext* ctx, ImGuiWindow* window); | ||||
|     IMGUI_API void          DockContextQueueUndockNode(ImGuiContext* ctx, ImGuiDockNode* node); | ||||
|     inline ImGuiDockNode*   DockNodeGetRootNode(ImGuiDockNode* node) { while (node->ParentNode) node = node->ParentNode; return node; } | ||||
| @@ -1809,10 +1810,10 @@ extern void                 ImGuiTestEngineHook_PostNewFrame(ImGuiContext* ctx); | ||||
| extern void                 ImGuiTestEngineHook_ItemAdd(ImGuiContext* ctx, const ImRect& bb, ImGuiID id); | ||||
| extern void                 ImGuiTestEngineHook_ItemInfo(ImGuiContext* ctx, ImGuiID id, const char* label, ImGuiItemStatusFlags flags); | ||||
| #define IMGUI_TEST_ENGINE_ITEM_ADD(_BB, _ID)                ImGuiTestEngineHook_ItemAdd(&g, _BB, _ID)               // Register status flags | ||||
| #define IMGUI_TEST_ENGINE_ITEM_INFO(_ID, _LABEL, _FLAGS)  ImGuiTestEngineHook_ItemInfo(&g, _ID, _LABEL, _FLAGS)   // Register status flags | ||||
| #define IMGUI_TEST_ENGINE_ITEM_INFO(_ID, _LABEL, _FLAGS)    ImGuiTestEngineHook_ItemInfo(&g, _ID, _LABEL, _FLAGS)   // Register status flags | ||||
| #else | ||||
| #define IMGUI_TEST_ENGINE_ITEM_ADD(_BB, _ID)                do { } while (0) | ||||
| #define IMGUI_TEST_ENGINE_ITEM_INFO(_ID, _LABEL, _FLAGS)  do { } while (0) | ||||
| #define IMGUI_TEST_ENGINE_ITEM_INFO(_ID, _LABEL, _FLAGS)    do { } while (0) | ||||
| #endif | ||||
|  | ||||
| #ifdef __clang__ | ||||
|   | ||||
		Reference in New Issue
	
	Block a user