Skip to content

Commit f13d2d1

Browse files
committed
Fix: Floating editor window separate from main
1 parent 467ecba commit f13d2d1

3 files changed

Lines changed: 21 additions & 14 deletions

File tree

imgui.ini

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
Pos=228,24
33
Size=1052,776
44
Collapsed=0
5-
DockId=0x00000003,0
5+
DockId=0xCCBD8CF7
66

77
[Window][DockSpace]
88
Pos=0,0
@@ -13,7 +13,6 @@ Collapsed=0
1313
Pos=117,246
1414
Size=1280,800
1515
Collapsed=1
16-
DockId=0x00000013,0
1716

1817
[Window][Font Settings]
1918
Pos=389,285
@@ -27,7 +26,6 @@ Collapsed=0
2726
DockId=0x00000005,0
2827

2928
[Docking][Data]
30-
DockNode ID=0x00000013 Pos=117,246 Size=1280,800
3129
DockSpace ID=0xCCBD8CF7 Window=0x3DA2F1DE Pos=0,24 Size=1280,776 Split=X Selected=0xDF0EC458
3230
DockNode ID=0x00000005 Parent=0xCCBD8CF7 SizeRef=226,776 Selected=0x00F0E82E
3331
DockNode ID=0x00000006 Parent=0xCCBD8CF7 SizeRef=1052,776 Split=X

pcode-settings.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,5 +13,5 @@
1313
"font_size": 17,
1414
"font_name": "CascadiaMono",
1515
"last_open_dir": ".\\src",
16-
"recent_files": [".\\src\\editor_app.h", ".\\src\\main.cpp", ".\\src\\editor_app.cpp", ".\\docs\\versioning.md", ".\\docs\\imgui_tutorial.md", ".\\docs\\VIM_MOTIONS_SPEC.md", "./src/editor_app.h", "./src/main.cpp", "./src/editor_app.cpp", "VERSION"]
16+
"recent_files": [".\\src\\main.cpp", ".\\src\\editor_app.cpp", ".\\src\\editor_app.h", ".\\docs\\versioning.md", ".\\docs\\imgui_tutorial.md", ".\\docs\\VIM_MOTIONS_SPEC.md", "./src/editor_app.h", "./src/main.cpp", "./src/editor_app.cpp", "VERSION"]
1717
}

src/editor_app.cpp

Lines changed: 19 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1786,29 +1786,40 @@ void EditorApp::render() {
17861786
}
17871787
}
17881788

1789-
// Full-screen dockspace - allows docking to edges
1789+
// Main dockspace window
17901790
ImGuiViewport* viewport = ImGui::GetMainViewport();
17911791
ImGui::SetNextWindowPos(viewport->Pos);
17921792
ImGui::SetNextWindowSize(viewport->Size);
17931793
ImGui::SetNextWindowViewport(viewport->ID);
17941794

1795-
ImGuiWindowFlags flags = ImGuiWindowFlags_MenuBar;
1795+
ImGuiWindowFlags flags = ImGuiWindowFlags_MenuBar | ImGuiWindowFlags_NoDocking;
17961796
flags |= ImGuiWindowFlags_NoTitleBar | ImGuiWindowFlags_NoCollapse;
17971797
flags |= ImGuiWindowFlags_NoBringToFrontOnFocus | ImGuiWindowFlags_NoNavFocus;
17981798

17991799
ImGui::PushStyleVar(ImGuiStyleVar_WindowRounding, 0);
18001800
ImGui::PushStyleVar(ImGuiStyleVar_WindowBorderSize, 0);
18011801
ImGui::PushStyleVar(ImGuiStyleVar_WindowPadding, ImVec2(0, 0));
1802-
ImGui::Begin("DockSpace", nullptr, flags);
1802+
ImGui::Begin("MainDock", nullptr, flags);
18031803
ImGui::PopStyleVar(3);
18041804

1805-
ImGuiID dockspace_id = ImGui::GetID("MainDockSpace");
1806-
ImGui::DockSpace(dockspace_id, ImVec2(0, 0), ImGuiDockNodeFlags_PassthruCentralNode);
1807-
ImGui::DockBuilderDockWindow("Editor", dockspace_id);
1808-
1805+
// Menu and sidebar in main window
18091806
render_menu_bar();
18101807
render_sidebar();
1811-
render_editor_area();
1808+
1809+
ImGui::End();
1810+
1811+
// Floating editor window - can be dragged anywhere and docked
1812+
ImGui::SetNextWindowPos(ImVec2(viewport->Pos.x + 60, viewport->Pos.y + 60));
1813+
ImGui::SetNextWindowSize(ImVec2(800, 600));
1814+
ImGui::SetNextWindowViewport(viewport->ID);
1815+
1816+
ImGuiWindowFlags editor_flags = ImGuiWindowFlags_NoCollapse | ImGuiWindowFlags_NoSavedSettings;
1817+
editor_flags |= ImGuiWindowFlags_UnsavedDocument;
1818+
1819+
if (ImGui::Begin("Editor", nullptr, editor_flags)) {
1820+
render_editor_area();
1821+
ImGui::End();
1822+
}
18121823

18131824
// Dialogs
18141825
if (show_find_) render_find_dialog();
@@ -1818,8 +1829,6 @@ void EditorApp::render() {
18181829
if (show_spaces_dialog_) render_spaces_dialog();
18191830
if (show_cmd_palette_) render_command_palette();
18201831

1821-
ImGui::End();
1822-
18231832
render_terminal();
18241833
}
18251834

0 commit comments

Comments
 (0)