kvirc / KVIrc

The KVIrc IRC Client
http://www.kvirc.net/
GNU General Public License v2.0
244 stars 74 forks source link

`boolUseCompositingForTransparency` is disabled in Qt6 Linux builds #2686

Closed alebastr closed 1 week ago

alebastr commented 1 week ago

KviApplication::supportsCompositing() on Linux expects COMPILE_QX11INFO_SUPPORT to be set and returns false otherwise. Thus, Qt6 builds always assume that compositing is unsupported.

Not sure what's the best fix, but I suspect that simplifying supportsCompositing() to return true wouldn't upset a lot of people. I couldn't come up with a platform that can run Qt6 build of KVirc and is not Windows, Mac, Wayland or X11.

ctrlaltca commented 1 week ago

I agree, even KDE itself nowadays just returns true unless it's running on X11: https://invent.kde.org/plasma/breeze/-/blob/master/kstyle/breezehelper.cpp?ref_type=heads#L1825

DarthGandalf commented 1 week ago

KVIrc supports running on X11 too, not only Wayland though.

ctrlaltca commented 1 week ago

Since KVIrc 5 we were already always assuming supportesComposing() == true as long as QX11Info support was compiled in (I guess 100% of Linux builds). This was caused by Qt5 missing the QX11Info::isCompositingManagerRunning() method at the time of porting (that was later reintroduced in Qt 5.7, but nobody cared). The problem here is that Qt6 dropped QX11Info, so this is now always returning false on Linux even if most (all?) systems supports it. For the remaining 1%, they can still disable it from theme options -> transparency.