Selaa lähdekoodia

InputInt, InputFloat, InputScalar: Fix to keep the label of the +/- buttons centered when style.FramePadding.x is abnormally larger than style.FramePadding.y. Since the buttons are meant to be square (to align with e.g. color button) we always use FramePadding.y. (#2367)

omar 6 vuotta sitten
vanhempi
commit
7c51cba74f
2 muutettua tiedostoa jossa 10 lisäystä ja 1 poistoa
  1. 6 0
      docs/CHANGELOG.txt
  2. 4 1
      imgui_widgets.cpp

+ 6 - 0
docs/CHANGELOG.txt

@@ -33,6 +33,12 @@ HOW TO UPDATE?
  VERSION 1.69 (In Progress)
 -----------------------------------------------------------------------
 
+Other Changes:
+
+- InputInt, InputFloat, InputScalar: Fix to keep the label of the +/- buttons centered when
+  style.FramePadding.x is abnormally larger than style.FramePadding.y. Since the buttons are
+  meant to be square (to align with e.g. color button) we always use FramePadding.y. (#2367)
+
 
 -----------------------------------------------------------------------
  VERSION 1.68 (Released 2019-02-19)

+ 4 - 1
imgui_widgets.cpp

@@ -2648,7 +2648,7 @@ bool ImGui::InputScalar(const char* label, ImGuiDataType data_type, void* data_p
         return false;
 
     ImGuiContext& g = *GImGui;
-    const ImGuiStyle& style = g.Style;
+    ImGuiStyle& style = g.Style;
 
     IM_ASSERT(data_type >= 0 && data_type < ImGuiDataType_COUNT);
     if (format == NULL)
@@ -2674,6 +2674,8 @@ bool ImGui::InputScalar(const char* label, ImGuiDataType data_type, void* data_p
         PopItemWidth();
 
         // Step buttons
+        const ImVec2 backup_frame_padding = style.FramePadding;
+        style.FramePadding.x = style.FramePadding.y;
         ImGuiButtonFlags button_flags = ImGuiButtonFlags_Repeat | ImGuiButtonFlags_DontClosePopups;
         if (flags & ImGuiInputTextFlags_ReadOnly)
             button_flags |= ImGuiButtonFlags_Disabled;
@@ -2691,6 +2693,7 @@ bool ImGui::InputScalar(const char* label, ImGuiDataType data_type, void* data_p
         }
         SameLine(0, style.ItemInnerSpacing.x);
         TextUnformatted(label, FindRenderedTextEnd(label));
+        style.FramePadding = backup_frame_padding;
 
         PopID();
         EndGroup();