Review Request 116787: Always create NETEventFilter (a QWidget subclass) in the main application thread
Thomas Lübking
thomas.luebking at gmail.com
Fri Mar 14 12:46:33 UTC 2014
> On March 13, 2014, 10:40 p.m., Thomas Lübking wrote:
> > You'll need a drawable, clients will require XInitThreads if that is accessed from a different than the GUI thread, but it might be possible to use an internal Window and move the QObject to the GUI thread on construction.
>
> Martin Gräßlin wrote:
> > clients will require XInitThreads
>
> Qt does that
My Qt broken?
// gcc -fPIC -o qapplication `pkg-config --libs --cflags Qt5Widgets` -lstdc++ qapplication.cpp
#include <QApplication>
#include <QWidget>
#include <QtDebug>
class Widget : public QWidget {
public:
Widget() : QWidget() {}
protected:
virtual void showEvent(QShowEvent *ev) {
qDebug() << QCoreApplication::testAttribute(Qt::AA_X11InitThreads);
QWidget::showEvent(ev);
}
};
int main(int argc, char **argv)
{
QApplication a(argc, argv);
Widget w;
w.show();
return a.exec();
}
--------
Prints false (as i frankly expected ...)
- Thomas
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://git.reviewboard.kde.org/r/116787/#review52915
-----------------------------------------------------------
On March 14, 2014, 10:36 a.m., Aaron J. Seigo wrote:
>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://git.reviewboard.kde.org/r/116787/
> -----------------------------------------------------------
>
> (Updated March 14, 2014, 10:36 a.m.)
>
>
> Review request for KDE Frameworks, kwin and Martin Gräßlin.
>
>
> Repository: kwindowsystem
>
>
> Description
> -------
>
> When using KWindowInfo from a thread other than the main application thread, the application fails on an assert triggered by creating a QWidget in another thread. This is due to NETEventFilter being a QWidget. This patch addresses the issue by using a QObject to create the NETEventFilter, which is itself first moved to the main application thread.
>
>
> Diffs
> -----
>
> src/kwindowsystem.cpp 4c17baa
> src/kwindowsystem_p_x11.h 75f3028
> src/kwindowsystem_x11.cpp 95c396b
>
> Diff: https://git.reviewboard.kde.org/r/116787/diff/
>
>
> Testing
> -------
>
> Used in the Sprinter Windows plugin and works lovely to find desktops, windows, etc.
>
>
> Thanks,
>
> Aaron J. Seigo
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kde-frameworks-devel/attachments/20140314/9c5e9488/attachment.html>
More information about the Kde-frameworks-devel
mailing list