-
-
Notifications
You must be signed in to change notification settings - Fork 11.7k
popup of the combo widget will NOT show if combo widget is followed by a InputText widget #3102
Copy link
Copy link
Closed
Labels
label/id and id stackimplicit identifiers, pushid(), id stackimplicit identifiers, pushid(), id stack
Description
Version: 1.76
Branch: master
Back-ends: imgui_impl_win32.cpp + imgui_impl_dx9.cpp
Compiler: VS2019
Operating System: win10 x64 10.0.18363.752
My Issue/Question:
If a combo widget is followed by a InputText Widget, the popup of the combo widget will NOT show when left mouse button is clicked.
Possible solution:
edit imgui_widgets.cpp, change the code of line 1470,
from:
bool pressed = ButtonBehavior(frame_bb, id, &hovered, &held);
to:
bool pressed = ButtonBehavior(frame_bb, id, &hovered, &held, ImGuiButtonFlags_PressedOnClick);
Code to reproduce it:
MSG msg;
ZeroMemory(&msg, sizeof(msg));
while (msg.message != WM_QUIT)
{
if (::PeekMessage(&msg, NULL, 0U, 0U, PM_REMOVE))
{
::TranslateMessage(&msg);
::DispatchMessage(&msg);
continue;
}
ImGui_ImplDX9_NewFrame();
ImGui_ImplWin32_NewFrame();
ImGui::NewFrame();
{
ImGui::SetNextWindowPos(ImVec2(0, 0));
ImGui::SetNextWindowSize(ImGui::GetIO().DisplaySize);
bool windowStatus = true;
ImGui::Begin("window title", &windowStatus, ImGuiWindowFlags_NoResize | ImGuiWindowFlags_NoCollapse | ImGuiWindowFlags_NoSavedSettings);
ImGuiWindowFlags window_flags = 0;
ImGui::PushStyleVar(ImGuiStyleVar_ChildRounding, 1.0f);
ImGui::BeginChild("ChildR", ImVec2(0, 65), true, window_flags);
ImGui::Text("Product");
int total_w = ImGui::GetContentRegionAvail().x;
ImGui::SameLine();
ImGui::SetNextItemWidth(total_w- 65);
static ImGuiComboFlags flags = ImGuiComboFlags_PopupAlignLeft;
const char* items[] = { "AAAA", "BBBB", "CCCC", "DDDD", "EEEE", "FFFF", "GGGG", "HHHH", "IIII", "JJJJ", "KKKK", "LLLLLLL", "MMMM", "OOOOOOO" };
static const char* item_current = items[0];
if (ImGui::BeginCombo("", item_current, flags))
{
for (int n = 0; n < IM_ARRAYSIZE(items); n++)
{
bool is_selected = (item_current == items[n]);
if (ImGui::Selectable(items[n], is_selected))
item_current = items[n];
if (is_selected)
ImGui::SetItemDefaultFocus();
}
ImGui::EndCombo();
}
ImGui::Text("number ");
ImGui::SameLine();
char s[128] = { "KKKTESTTEST" };
ImGui::InputText("", s, _countof(s), ImGuiInputTextFlags_ReadOnly);
ImGui::SameLine();
total_w = ImGui::GetContentRegionAvail().x;
ImGui::SetNextItemWidth(total_w);
if (ImGui::Button("Copy"))
{
}
ImGui::EndChild();
ImGui::PopStyleVar();
ImGui::End();
if (!windowStatus)
::PostQuitMessage(0);
}
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
label/id and id stackimplicit identifiers, pushid(), id stackimplicit identifiers, pushid(), id stack