@ -1876,12 +1876,10 @@ bool ImGui::DragScalar(const char* label, ImGuiDataType data_type, void* v, floa
const ImRect inner_bb ( frame_bb . Min + style . FramePadding , frame_bb . Max - style . FramePadding ) ;
const ImRect total_bb ( frame_bb . Min , frame_bb . Max + ImVec2 ( label_size . x > 0.0f ? style . ItemInnerSpacing . x + label_size . x : 0.0f , 0.0f ) ) ;
// NB- we don't call ItemSize() yet because we may turn into a text edit box below
if ( ! ItemAdd ( total_bb , id , & frame_bb ) )
{
ItemSize ( total_bb , style . FramePadding . y ) ;
if ( ! ItemAdd ( total_bb , id , & frame_bb ) )
return false ;
}
const bool hovered = ItemHoverable ( frame_bb , id ) ;
// Default format string when passing NULL
@ -1909,12 +1907,12 @@ bool ImGui::DragScalar(const char* label, ImGuiDataType data_type, void* v, floa
}
if ( start_text_input | | ( g . ActiveId = = id & & g . ScalarAsInputTextId = = id ) )
{
window - > DC . CursorPos = frame_bb . Min ;
FocusableItemUnregister ( window ) ;
return InputScalarAsWidgetReplacement ( frame_bb , id , label , data_type , v , format ) ;
}
// Actual drag behavior
ItemSize ( total_bb , style . FramePadding . y ) ;
const bool value_changed = DragBehavior ( id , data_type , v , v_speed , v_min , v_max , format , power , ImGuiDragFlags_None ) ;
if ( value_changed )
MarkItemEdited ( id ) ;
@ -2311,12 +2309,9 @@ bool ImGui::SliderScalar(const char* label, ImGuiDataType data_type, void* v, co
const ImRect frame_bb ( window - > DC . CursorPos , window - > DC . CursorPos + ImVec2 ( w , label_size . y + style . FramePadding . y * 2.0f ) ) ;
const ImRect total_bb ( frame_bb . Min , frame_bb . Max + ImVec2 ( label_size . x > 0.0f ? style . ItemInnerSpacing . x + label_size . x : 0.0f , 0.0f ) ) ;
// NB- we don't call ItemSize() yet because we may turn into a text edit box below
if ( ! ItemAdd ( total_bb , id , & frame_bb ) )
{
ItemSize ( total_bb , style . FramePadding . y ) ;
if ( ! ItemAdd ( total_bb , id , & frame_bb ) )
return false ;
}
// Default format string when passing NULL
// Patch old "%.0f" format string to use "%d", read function comments for more details.
@ -2344,12 +2339,11 @@ bool ImGui::SliderScalar(const char* label, ImGuiDataType data_type, void* v, co
}
if ( start_text_input | | ( g . ActiveId = = id & & g . ScalarAsInputTextId = = id ) )
{
window - > DC . CursorPos = frame_bb . Min ;
FocusableItemUnregister ( window ) ;
return InputScalarAsWidgetReplacement ( frame_bb , id , label , data_type , v , format ) ;
}
ItemSize ( total_bb , style . FramePadding . y ) ;
// Draw frame
const ImU32 frame_col = GetColorU32 ( g . ActiveId = = id ? ImGuiCol_FrameBgActive : g . HoveredId = = id ? ImGuiCol_FrameBgHovered : ImGuiCol_FrameBg ) ;
RenderNavHighlight ( frame_bb , id ) ;