thedmd / imgui-node-editor

Node Editor built using Dear ImGui
MIT License
3.48k stars 527 forks source link

ImGui::InputTextMultiline widgets in nodes are not interactible #275

Closed sodamouse closed 5 months ago

sodamouse commented 5 months ago

Hi, thanks for the library. I am having an issue where I cannot interact with any of the InputTextMultiline widgets. Other widgets work as intended.

Repro:

        if (ImGui::Begin("Sammi"))
        {
            ax::NodeEditor::SetCurrentEditor(context);
            ax::NodeEditor::Begin("Node Editor", ImVec2(0.0, 0.0f));

            for (auto& node : nodes)
            {
                ax::NodeEditor::BeginNode(node.id);

                static char buffer[256];
                sprintf(buffer, "%i", node.id);
                ImGui::Text(buffer);

                ImGui::PushID(&node.speaker);
                ImGui::PushItemWidth(250);
                ImGui::InputText("Speaker", &node.speaker);
                ImGui::PopItemWidth();
                ImGui::PopID();

                ImGui::PushID(&node.body);
                ImGui::InputTextMultiline("Body", &node.body, { 250, 350 });
                ImGui::PopID();

                ImGui::PushID(&node.conditions);
                ImGui::InputTextMultiline("Conditions", &node.conditions, { 250, 100 });
                ImGui::PopID();

                ImGui::PushID(&node.effects);
                ImGui::InputTextMultiline("Effects", &node.effects, { 250, 100 });
                ImGui::PopID();

                for (u64 i = 0; i < node.countInputConnections; ++i)
                {
                    ax::NodeEditor::BeginPin(node.inputConnections[i], ax::NodeEditor::PinKind::Input);
                    sprintf(buffer, "%i", node.inputConnections[i]);
                    ImGui::Text(buffer);
                    ax::NodeEditor::EndPin();
                }

                for (u64 i = 0; i < node.countOutputConnections; ++i)
                {
                    ax::NodeEditor::BeginPin(node.outputConnections[i], ax::NodeEditor::PinKind::Output);
                    sprintf(buffer, "%i", node.outputConnections[i]);
                    ImGui::Text(buffer);
                    ax::NodeEditor::EndPin();
                }

                ax::NodeEditor::EndNode();
            }

            ax::NodeEditor::End();
            ax::NodeEditor::SetCurrentEditor(nullptr);
        }
sodamouse commented 5 months ago

I guess this is not supported.