diff --git a/modules/cefwebgui/cefwebguimodule.cpp b/modules/cefwebgui/cefwebguimodule.cpp index e783eab1f4..92bfb57e4d 100644 --- a/modules/cefwebgui/cefwebguimodule.cpp +++ b/modules/cefwebgui/cefwebguimodule.cpp @@ -194,7 +194,10 @@ void CefWebGuiModule::internalInitialize(const ghoul::Dictionary& configuration) if (isGuiWindow && isMaster && _instance) { if (global::windowDelegate.windowHasResized()) { - _instance->reshape(global::windowDelegate.currentWindowSize()); + _instance->reshape(static_cast( + static_cast(global::windowDelegate.currentWindowSize()) * + global::windowDelegate.dpiScaling() + )); } if (_visible) { _instance->draw(); diff --git a/modules/webbrowser/src/browserinstance.cpp b/modules/webbrowser/src/browserinstance.cpp index f52c22a626..6b3a79724d 100644 --- a/modules/webbrowser/src/browserinstance.cpp +++ b/modules/webbrowser/src/browserinstance.cpp @@ -73,7 +73,10 @@ BrowserInstance::~BrowserInstance() { } void BrowserInstance::initialize() { - reshape(global::windowDelegate.currentWindowSize()); + reshape(static_cast( + static_cast(global::windowDelegate.currentWindowSize()) * + global::windowDelegate.dpiScaling() + )); _isInitialized = true; } @@ -162,9 +165,11 @@ bool BrowserInstance::sendMouseWheelEvent(const CefMouseEvent& event, } void BrowserInstance::setZoom(float ratio) { - //Zooming in CEF is non-linear according to this: - //https://www.magpcss.org/ceforum/viewtopic.php?f=6&t=11491 - _zoomLevel = glm::log(static_cast(ratio))/glm::log(1.2); + const float dpiScaling = global::windowDelegate.dpiScaling().x; + + // Zooming in CEF is non-linear according to this: + // https://www.magpcss.org/ceforum/viewtopic.php?f=6&t=11491 + _zoomLevel = glm::log(static_cast(ratio * dpiScaling))/glm::log(1.2); _browser->GetHost()->SetZoomLevel(_zoomLevel); } diff --git a/modules/webbrowser/src/eventhandler.cpp b/modules/webbrowser/src/eventhandler.cpp index ef0073d7e4..8cd3c96b3f 100644 --- a/modules/webbrowser/src/eventhandler.cpp +++ b/modules/webbrowser/src/eventhandler.cpp @@ -26,6 +26,8 @@ #include #include +#include +#include #include #include @@ -268,8 +270,9 @@ bool EventHandler::isDoubleClick(const MouseButtonState& button) const { } bool EventHandler::mousePositionCallback(double x, double y) { - _mousePosition.x = floor(static_cast(x)); - _mousePosition.y = floor(static_cast(y)); + const glm::vec2 dpiScaling = global::windowDelegate.dpiScaling(); + _mousePosition.x = floor(static_cast(x) * dpiScaling.x); + _mousePosition.y = floor(static_cast(y) * dpiScaling.y); _browserInstance->sendMouseMoveEvent(mouseEvent()); // Let the mouse event trickle on return false;