diff --git a/es-core/src/components/SwitchComponent.cpp b/es-core/src/components/SwitchComponent.cpp index 23f64dd24..a2712ec5d 100644 --- a/es-core/src/components/SwitchComponent.cpp +++ b/es-core/src/components/SwitchComponent.cpp @@ -49,6 +49,16 @@ void SwitchComponent::render(const glm::mat4& parentTrans) renderChildren(trans); } +void SwitchComponent::setResize(float width, float height) +{ + // Reposition the switch after resizing to make it centered. + const glm::vec2 oldSize = mImage.getSize(); + mImage.setResize(width, height); + const float xDiff = oldSize.x - mImage.getSize().x; + const float yDiff = oldSize.y - mImage.getSize().y; + mImage.setPosition(mImage.getPosition().x + xDiff, mImage.getPosition().y + yDiff / 2.0f); +} + void SwitchComponent::setState(bool state) { mState = state; diff --git a/es-core/src/components/SwitchComponent.h b/es-core/src/components/SwitchComponent.h index c21219144..a0d1ac33c 100644 --- a/es-core/src/components/SwitchComponent.h +++ b/es-core/src/components/SwitchComponent.h @@ -22,7 +22,7 @@ public: void render(const glm::mat4& parentTrans) override; void onSizeChanged() override { mImage.setSize(mSize); } - void setResize(float width, float height) override { mImage.setResize(width, height); } + void setResize(float width, float height) override; bool getState() const { return mState; } void setState(bool state);