Package: qt-at-spi Version: 0.3.1-5 Severity: normal Tags: patch While trying to figure out why the Caribou On-Screen keyboard does not show up for KDE/Qt apps, I stumbled upon this patch from Fedora/Red Hat.
If applied on top of the current qt-at-spi package in Debian, it shows the Caribou on-screen keyboard, for both KDE and Qt apps. -- System Information: Debian Release: stretch/sid APT prefers testing APT policy: (990, 'testing'), (500, 'unstable'), (101, 'experimental') Architecture: amd64 (x86_64) Foreign Architectures: i386 Kernel: Linux 4.1.2+ (SMP w/4 CPU cores) Locale: LANG=en_IN.utf8, LC_CTYPE=en_IN.utf8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/dash Init: systemd (via /run/systemd/system) Versions of packages qt-at-spi depends on: ii libatspi2.0-0 2.16.0-1 ii libc6 2.19-18 ii libdbus-1-3 1.8.18-1 ii libgcc1 1:5.1.1-12 ii libglib2.0-0 2.44.1-1.1 ii libqt4-dbus 4:4.8.7+dfsg-1 ii libqtcore4 4:4.8.7+dfsg-1 ii libqtgui4 4:4.8.7+dfsg-1 ii libstdc++6 5.1.1-12 qt-at-spi recommends no packages. qt-at-spi suggests no packages. -- no debconf information
Picked up from: https://bugzilla.redhat.com/attachment.cgi?id=865746 This fixes issues with KDE/Qt apps, i.e. the Caribou keyboard now pops up in applications from those toolkits --- a/src/atspiadaptor.cpp +++ b/src/atspiadaptor.cpp @@ -1831,7 +1831,13 @@ } else if (function == "GetCharacterExtents") { int offset = message.arguments().at(0).toInt(); int coordType = message.arguments().at(1).toUInt(); - connection.send(message.createReply(getCharacterExtents(interface, offset, coordType))); + // connection.send(message.createReply(getCharacterExtents(interface, offset, coordType))); + + // There is probably a better way to create the list from the rect. + QRect rect = getCharacterExtents(interface, offset, coordType); + QList<QVariant> variantList = QList<QVariant>(); + variantList << rect.x() << rect.y() << rect.width() << rect.height(); + connection.send(message.createReply(variantList)); } else if (function == "GetDefaultAttributeSet" || function == "GetDefaultAttributes") { // GetDefaultAttributes is deprecated in favour of GetDefaultAttributeSet. // Empty set seems reasonable. There is no default attribute set.