mirror of
https://github.com/Drezil/imgui.git
synced 2024-11-26 05:27:01 +00:00
Combo: Cleaned up, removed unnecessary code (looks like this part went untouched for a long time!).
This commit is contained in:
parent
3fe2ecfd4c
commit
bbd6d5d5b5
29
imgui.cpp
29
imgui.cpp
@ -8632,7 +8632,10 @@ bool ImGui::BeginCombo(const char* label, const char* preview_value, ImVec2 popu
|
|||||||
return false;
|
return false;
|
||||||
|
|
||||||
const float arrow_size = SmallSquareSize();
|
const float arrow_size = SmallSquareSize();
|
||||||
const bool hovered = IsHovered(frame_bb, id);
|
|
||||||
|
bool hovered, held;
|
||||||
|
bool pressed = ButtonBehavior(frame_bb, id, &hovered, &held);
|
||||||
|
|
||||||
bool popup_open = IsPopupOpen(id);
|
bool popup_open = IsPopupOpen(id);
|
||||||
|
|
||||||
const ImRect value_bb(frame_bb.Min, frame_bb.Max - ImVec2(arrow_size, 0.0f));
|
const ImRect value_bb(frame_bb.Min, frame_bb.Max - ImVec2(arrow_size, 0.0f));
|
||||||
@ -8646,28 +8649,10 @@ bool ImGui::BeginCombo(const char* label, const char* preview_value, ImVec2 popu
|
|||||||
if (label_size.x > 0)
|
if (label_size.x > 0)
|
||||||
RenderText(ImVec2(frame_bb.Max.x + style.ItemInnerSpacing.x, frame_bb.Min.y + style.FramePadding.y), label);
|
RenderText(ImVec2(frame_bb.Max.x + style.ItemInnerSpacing.x, frame_bb.Min.y + style.FramePadding.y), label);
|
||||||
|
|
||||||
bool popup_toggled = false;
|
if (pressed && !popup_open)
|
||||||
if (hovered)
|
|
||||||
{
|
{
|
||||||
SetHoveredID(id);
|
OpenPopupEx(id, false);
|
||||||
if (g.IO.MouseClicked[0])
|
popup_open = true;
|
||||||
{
|
|
||||||
ClearActiveID();
|
|
||||||
popup_toggled = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (popup_toggled)
|
|
||||||
{
|
|
||||||
if (popup_open)
|
|
||||||
{
|
|
||||||
ClosePopup(id);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
FocusWindow(window);
|
|
||||||
OpenPopupEx(id, false);
|
|
||||||
}
|
|
||||||
popup_open = !popup_open;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!popup_open)
|
if (!popup_open)
|
||||||
|
Loading…
Reference in New Issue
Block a user