mirror of
https://github.com/WerWolv/ImHex.git
synced 2026-03-27 23:37:05 -05:00
fix: Only update font size after letting go of slider
This commit is contained in:
@@ -65,6 +65,9 @@ namespace hex::fonts {
|
||||
public:
|
||||
SliderPoints(float defaultValue, float min, float max) : SliderFloat(defaultValue, min, max) { }
|
||||
bool draw(const std::string &name) override;
|
||||
|
||||
private:
|
||||
bool m_changed = false;
|
||||
};
|
||||
|
||||
|
||||
|
||||
@@ -199,16 +199,21 @@ namespace hex::fonts {
|
||||
}
|
||||
|
||||
bool SliderPoints::draw(const std::string &name) {
|
||||
auto scaleFactor = ImHexApi::System::getBackingScaleFactor();
|
||||
float value = ImHexApi::Fonts::pixelsToPoints(m_value) * scaleFactor;
|
||||
float min = ImHexApi::Fonts::pixelsToPoints(m_min) * scaleFactor;
|
||||
float max = ImHexApi::Fonts::pixelsToPoints(m_max) * scaleFactor;
|
||||
float value = ImHexApi::Fonts::pixelsToPoints(m_value);
|
||||
float min = ImHexApi::Fonts::pixelsToPoints(m_min);
|
||||
float max = ImHexApi::Fonts::pixelsToPoints(m_max);
|
||||
|
||||
auto changed = ImGui::SliderFloat(name.c_str(), &value, min, max, "%.0f pt");
|
||||
if (ImGui::SliderFloat(name.c_str(), &value, min, max, "%.0f pt"))
|
||||
m_changed = true;
|
||||
|
||||
m_value = ImHexApi::Fonts::pointsToPixels(value / scaleFactor);
|
||||
m_value = ImHexApi::Fonts::pointsToPixels(value);
|
||||
|
||||
return changed;
|
||||
if (m_changed && !ImGui::IsItemActive()) {
|
||||
m_changed = false;
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user