diff options
Diffstat (limited to 'compat')
| -rw-r--r-- | compat/qt-dpi.hpp | 17 | 
1 files changed, 11 insertions, 6 deletions
| diff --git a/compat/qt-dpi.hpp b/compat/qt-dpi.hpp index 01659c8a..fc17a062 100644 --- a/compat/qt-dpi.hpp +++ b/compat/qt-dpi.hpp @@ -3,17 +3,22 @@  #include <algorithm>  #include <QWidget> +static inline double screen_dpi(const QPaintDevice* widget) +{ +    const auto& x = *widget; +#ifdef _WIN32 +    return std::max(x.devicePixelRatioF(), 1.); +#else +    return std::max(std::max(x.logicalDpiX()/(double)x.physicalDpiX(), x.devicePixelRatioF()), 1.); +#endif +} +  template<typename self>  struct screen_dpi_mixin  {  protected:      double screen_dpi() const      { -        const auto& x = *static_cast<const self*>(this); -#ifdef _WIN32 -        return std::max(x.devicePixelRatioF(), 1.); -#else -        return std::max(std::max(x.logicalDpiX()/(double)x.physicalDpiX(), x.devicePixelRatioF()), 1.); -#endif +        return ::screen_dpi(static_cast<const self*>(this));      }  }; | 
