message: BeginCombo() tweaks, merged from Navigation branch.
diff: @@ -7020,7 +7020,7 @@ bool ImGui::DragFloat(const char* label, float* v, float v_speed, float v_min, f
  // Tabbing or CTRL-clicking on Drag turns it into an input box
  bool start_text_input = false;
  const bool tab_focus_requested = FocusableItemRegister(window, id);
  - if (tab_focus_requested || (hovered && (g.IO.MouseClicked[0] | g.IO.MouseDoubleClicked[0])))
  + if (tab_focus_requested || (hovered && (g.IO.MouseClicked[0] || g.IO.MouseDoubleClicked[0])))
  {
  SetActiveID(id, window);
  FocusWindow(window);
  @@ -8599,25 +8599,31 @@ bool ImGui::BeginCombo(const char* label, const char* preview_value, float popup
  if (label_size.x > 0)
  RenderText(ImVec2(frame_bb.Max.x + style.ItemInnerSpacing.x, frame_bb.Min.y + style.FramePadding.y), label);
  + bool popup_toggled = false;
  if (hovered)
  {
  SetHoveredID(id);
  if (g.IO.MouseClicked[0])
  {
  ClearActiveID();
  - if (IsPopupOpen(id))
  + popup_toggled = true;
  + }
  + }
  + if (popup_toggled)
  + {
  + if (popup_open)
  {
  ClosePopup(id);
  }
  else
  {
  FocusWindow(window);
  - OpenPopup(label);
  - }
  + OpenPopupEx(id, false);
  }
  + popup_open = !popup_open;
  }
  - if (!IsPopupOpen(id))
  + if (!popup_open)
  return false;
  float popup_y1 = frame_bb.Max.y;
  @@ -9054,7 +9060,10 @@ bool ImGui::BeginMenu(const char* label, bool enabled)
  want_open = menu_is_open = false;
  }
  else if (pressed || (hovered && menuset_is_open && !menu_is_open)) // menu-bar: first click to open, then hover to open others
  + {
  want_open = true;
  + }
  +
  if (!enabled) // explicitly close if an open menu becomes disabled, facilitate users code a lot in pattern such as 'if (BeginMenu("options", has_object)) { ..use object.. }'
  want_close = true;
  if (want_close && IsPopupOpen(id))
  