Hi Adam, and sorry for the delayed reply!

On Wed, Jun 04, 2025 at 10:20:04PM +0200, Adam Chyła wrote:
> The Qt-based applications fail to run. All the apps hang without displaying
> anything on the screen, then terminate.
>
> Setting the QT_FONT_DPI environment variable to a sensible default, such as 
> 100,
> can be used as a workaround for the issue.
>
> [...]
>
> For this particular case, the platformScreen->logicalDpi() code calls the
> QXcbScreen::logicalDpi
> function:
>
> qtbase-everywhere-src-5.15.8/src/plugins/platforms/xcb/qxcbscreen.cpp
>   720 int QXcbScreen::forcedDpi() const
>   721 {
>   722     const int forcedDpi = m_virtualDesktop->forcedDpi();
>   723     if (forcedDpi > 0)
>   724         return forcedDpi;
>   725     return 0;
>   726 }
>   727
>   728 QDpi QXcbScreen::logicalDpi() const
>   729 {
>   730     const int forcedDpi = this->forcedDpi();
>   731     if (forcedDpi > 0)
>   732         return QDpi(forcedDpi, forcedDpi);
>   733
>   734     // Fall back to physical virtual desktop DPI, but prevent
>   735     // using DPI values lower than 96. This ensuers that connecting
>   736     // to e.g. a TV works somewhat predictabilly.
>   737     QDpi virtualDesktopPhysicalDPi = m_virtualDesktop->dpi();
>   738     return QDpi(std::max(virtualDesktopPhysicalDPi.first, 96.0),
>   739                 std::max(virtualDesktopPhysicalDPi.second, 96.0));
>   740 }

I believe this commit from Qt 6 should fix this issue, since it removes
the call to dpi():

https://code.qt.io/cgit/qt/qtbase.git/commit?id=7238123521708ec9

Does this change look good to you? If yes, I will upload it to unstable,
and if you want, I can also prepare a fix for Debian stable (Trixie).

--
Dmitry Shachnev

Attachment: signature.asc
Description: PGP signature

Reply via email to