| @@ -46,16 +46,20 @@ public: | |||||
| DestroyWindow (hwnd); | DestroyWindow (hwnd); | ||||
| } | } | ||||
| void componentMovedOrResized (bool, bool) override | |||||
| void componentMovedOrResized (bool wasMoved, bool wasResized) override | |||||
| { | { | ||||
| if (auto* peer = owner.getTopLevelComponent()->getPeer()) | if (auto* peer = owner.getTopLevelComponent()->getPeer()) | ||||
| { | { | ||||
| auto area = (peer->getAreaCoveredBy (owner).toFloat() * peer->getPlatformScaleFactor()).toNearestInt(); | |||||
| auto area = (peer->getAreaCoveredBy (owner).toFloat() * peer->getPlatformScaleFactor()).getSmallestIntegerContainer(); | |||||
| setThreadDPIAwarenessForWindow (hwnd); | setThreadDPIAwarenessForWindow (hwnd); | ||||
| SetWindowPos (hwnd, nullptr, area.getX(), area.getY(), area.getWidth(), area.getHeight(), | |||||
| SWP_NOACTIVATE | SWP_NOZORDER | SWP_NOOWNERZORDER); | |||||
| UINT flagsToSend = SWP_NOACTIVATE | SWP_NOZORDER | SWP_NOOWNERZORDER; | |||||
| if (! wasMoved) flagsToSend |= SWP_NOMOVE; | |||||
| if (! wasResized) flagsToSend |= SWP_NOSIZE; | |||||
| SetWindowPos (hwnd, nullptr, area.getX(), area.getY(), area.getWidth(), area.getHeight(), flagsToSend); | |||||
| } | } | ||||
| } | } | ||||