| @@ -296,15 +296,17 @@ public: | |||||
| { | { | ||||
| if (auto* peer = component.getPeer()) | if (auto* peer = component.getPeer()) | ||||
| { | { | ||||
| auto localBounds = component.getLocalBounds(); | |||||
| auto displayScale = Desktop::getInstance().getDisplays().findDisplayForRect (component.getTopLevelComponent()->getScreenBounds()).scale; | |||||
| auto newArea = peer->getComponent().getLocalArea (&component, localBounds).withZeroOrigin() * displayScale; | |||||
| #if JUCE_WINDOWS && JUCE_WIN_PER_MONITOR_DPI_AWARE | #if JUCE_WINDOWS && JUCE_WIN_PER_MONITOR_DPI_AWARE | ||||
| auto newScale = getScaleFactorForWindow (nativeContext->getNativeHandle()); | auto newScale = getScaleFactorForWindow (nativeContext->getNativeHandle()); | ||||
| #else | #else | ||||
| auto newScale = Desktop::getInstance().getDisplays().findDisplayForRect (component.getTopLevelComponent()->getScreenBounds()).scale; | |||||
| auto newScale = displayScale; | |||||
| #endif | #endif | ||||
| auto localBounds = component.getLocalBounds(); | |||||
| auto newArea = peer->getComponent().getLocalArea (&component, localBounds).withZeroOrigin() * newScale; | |||||
| if (scale != newScale || viewportArea != newArea) | if (scale != newScale || viewportArea != newArea) | ||||
| { | { | ||||
| scale = newScale; | scale = newScale; | ||||