Add basic information about the X server to supportInformation

* Vendor name
* Vendor release
* Protocol version
* All Extensions used by KWin (name, present and version)

Need for this recognized due to a bug related to no xrandr present.

CCBUG: 345448
This commit is contained in:
Martin Gräßlin 2015-03-24 08:54:03 +01:00
parent b3145f294f
commit 289ec53350

View file

@ -1401,6 +1401,20 @@ QString Workspace::supportInformation() const
#endif #endif
support.append(QStringLiteral("\n")); support.append(QStringLiteral("\n"));
support.append(QStringLiteral("X11\n"));
support.append(QStringLiteral("===\n"));
auto x11setup = xcb_get_setup(connection());
support.append(QStringLiteral("Vendor: %1\n").arg(QString::fromUtf8(QByteArray::fromRawData(xcb_setup_vendor(x11setup), xcb_setup_vendor_length(x11setup)))));
support.append(QStringLiteral("Vendor Release: %1\n").arg(x11setup->release_number));
support.append(QStringLiteral("Protocol Version/Revision: %1/%2\n").arg(x11setup->protocol_major_version).arg(x11setup->protocol_minor_version));
const auto extensions = Xcb::Extensions::self()->extensions();
for (const auto &e : extensions) {
support.append(QStringLiteral("%1: %2; Version: 0x%3\n").arg(QString::fromUtf8(e.name))
.arg(e.present ? yes.trimmed() : no.trimmed())
.arg(QString::number(e.version, 16)));
}
support.append(QStringLiteral("\n"));
if (auto bridge = Decoration::DecorationBridge::self()) { if (auto bridge = Decoration::DecorationBridge::self()) {
support.append(QStringLiteral("Decoration\n")); support.append(QStringLiteral("Decoration\n"));
support.append(QStringLiteral("==========\n")); support.append(QStringLiteral("==========\n"));