|
|
|
@ -5876,7 +5876,7 @@ static void InputTextApplyArithmeticOp(const char* buf, float *v)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Create text input in place of a slider (when CTRL+Clicking on slider)
|
|
|
|
|
static bool SliderFloatAsInputText(const ImRect& aabb, const char* label, float* v, ImGuiID id, int decimal_precision)
|
|
|
|
|
static bool InputFloatReplaceWidget(const ImRect& aabb, const char* label, float* v, ImGuiID id, int decimal_precision)
|
|
|
|
|
{
|
|
|
|
|
ImGuiState& g = *GImGui;
|
|
|
|
|
ImGuiWindow* window = GetCurrentWindow();
|
|
|
|
@ -6118,15 +6118,14 @@ bool ImGui::SliderFloat(const char* label, float* v, float v_min, float v_max, c
|
|
|
|
|
SetActiveId(id, window);
|
|
|
|
|
FocusWindow(window);
|
|
|
|
|
|
|
|
|
|
const bool is_ctrl_down = g.IO.KeyCtrl;
|
|
|
|
|
if (tab_focus_requested || is_ctrl_down)
|
|
|
|
|
if (tab_focus_requested || g.IO.KeyCtrl)
|
|
|
|
|
{
|
|
|
|
|
start_text_input = true;
|
|
|
|
|
g.ScalarAsInputTextId = 0;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if (start_text_input || (g.ActiveId == id && g.ScalarAsInputTextId == id))
|
|
|
|
|
return SliderFloatAsInputText(frame_bb, label, v, id, decimal_precision);
|
|
|
|
|
return InputFloatReplaceWidget(frame_bb, label, v, id, decimal_precision);
|
|
|
|
|
|
|
|
|
|
ItemSize(total_bb, style.FramePadding.y);
|
|
|
|
|
|
|
|
|
@ -6429,7 +6428,7 @@ bool ImGui::DragFloat(const char* label, float *v, float v_speed, float v_min, f
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if (start_text_input || (g.ActiveId == id && g.ScalarAsInputTextId == id))
|
|
|
|
|
return SliderFloatAsInputText(frame_bb, label, v, id, decimal_precision);
|
|
|
|
|
return InputFloatReplaceWidget(frame_bb, label, v, id, decimal_precision);
|
|
|
|
|
|
|
|
|
|
ItemSize(total_bb, style.FramePadding.y);
|
|
|
|
|
|
|
|
|
|