qwsi: revert parts of 00ae1e6b7b

We actually do not need this "mode" in qwsi API. I think while
writing the patch from 00ae1e6b7b I got confused by focusing
on my test application. We can't know what the native event
filter will filter out, therefore it makes sense that we
unconditionally do filtering at qwsi level as well for user input
vs other events in QWindowSystemInterface::sendWindowSystemEvents().

Pick-to: 5.15
Pick-to: 5.12
Change-Id: Idb23152a24bf3ba3b91804427a6e78f991969c29
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
bb10
Gatis Paeglis 2020-08-19 16:49:53 +02:00
parent 6ece7dd09a
commit 7318328c2d
3 changed files with 2 additions and 26 deletions

View File

@ -60,7 +60,6 @@ Q_LOGGING_CATEGORY(lcQpaInputDevices, "qt.qpa.input.devices")
QElapsedTimer QWindowSystemInterfacePrivate::eventTime;
bool QWindowSystemInterfacePrivate::synchronousWindowSystemEvents = false;
bool QWindowSystemInterfacePrivate::platformFiltersEvents = false;
bool QWindowSystemInterfacePrivate::TabletEvent::platformSynthesizesMouse = true;
QWaitCondition QWindowSystemInterfacePrivate::eventsFlushed;
QMutex QWindowSystemInterfacePrivate::flushEventMutex;
@ -1080,15 +1079,10 @@ bool QWindowSystemInterface::sendWindowSystemEvents(QEventLoop::ProcessEventsFla
int nevents = 0;
while (QWindowSystemInterfacePrivate::windowSystemEventsQueued()) {
QWindowSystemInterfacePrivate::WindowSystemEvent *event = nullptr;
if (QWindowSystemInterfacePrivate::platformFiltersEvents) {
event = QWindowSystemInterfacePrivate::getWindowSystemEvent();
} else {
event = flags & QEventLoop::ExcludeUserInputEvents ?
QWindowSystemInterfacePrivate::WindowSystemEvent *event =
flags & QEventLoop::ExcludeUserInputEvents ?
QWindowSystemInterfacePrivate::getNonUserInputWindowSystemEvent() :
QWindowSystemInterfacePrivate::getWindowSystemEvent();
}
if (!event)
break;
@ -1127,21 +1121,6 @@ bool QWindowSystemInterface::nonUserInputEventsQueued()
return QWindowSystemInterfacePrivate::nonUserInputEventsQueued();
}
/*!
Platforms that implement UserInputEvent filtering at native event level must
set this property to \c true. The default is \c false, which means that event
filtering logic is handled by QWindowSystemInterface. Doing the filtering in
platform plugins is necessary when supporting AbstractEventDispatcher::filterNativeEvent(),
which should respect flags that were passed to event dispatcher's processEvents()
call.
\since 5.12
*/
void QWindowSystemInterface::setPlatformFiltersEvents(bool enable)
{
QWindowSystemInterfacePrivate::platformFiltersEvents = enable;
}
// --------------------- QtTestLib support ---------------------
// The following functions are used by testlib, and need to be synchronous to avoid

View File

@ -296,7 +296,6 @@ public:
static void deferredFlushWindowSystemEvents(QEventLoop::ProcessEventsFlags flags);
static int windowSystemEventsQueued();
static bool nonUserInputEventsQueued();
static void setPlatformFiltersEvents(bool enable);
};
#ifndef QT_NO_DEBUG_STREAM

View File

@ -142,8 +142,6 @@ QXcbIntegration::QXcbIntegration(const QStringList &parameters, int &argc, char
m_instance = this;
qApp->setAttribute(Qt::AA_CompressHighFrequencyEvents, true);
QWindowSystemInterface::setPlatformFiltersEvents(true);
qRegisterMetaType<QXcbWindow*>();
#if QT_CONFIG(xcb_xlib)
XInitThreads();