qt5base-lts/tests/auto
Gabriel de Dietrich 4c025ca9c7 QCompleter: Send activated() signal only once on return key
Due to the complex event forwarding logic between QCompleter,
QComboBox, QLineEdit and QWidgetLineControl, in some cases the
same single user return key press could result in duplicated
activated() signals being emitted by QComboBox. The first one
would be emitted because QLineEdit emitted editingFinished()
as a result of QCompleter::eventFilter() having forwarded the
return key press event to QComboBox. The second one, would
happen right after, as QCompleter::eventFilter() would process
the same event on behalf of its popup.

(We recall that QCompleter is installed as its own popup event
filter. That's also the case for the completer's widget, although
the purpose there is limited to focus-out events).

The current fix consists on skipping the emit as a result of
QLineEdit::editingFinished() if the completer's popup is still
active. For this to be accurate, it helps to test whether the
completer's popup is visible, so we will not be hiding it in
QWidgetLineControl::processKeyEvent() anymore. Indeed, we know
that if the popup is visible, that means that processKeyEvent()
was called after being forwarded by the completer's popup event
filter. Furthermore, the popup will be hidden by its event filter
shortly after it returns from said event forwarding call.

Based on a patch by Alexey Chernov <4ernov@gmail.com>.

Task-number: QTBUG-51858
Task-number: QTBUG-51889
Change-Id: I013f6c3000ae37b5b0ec20eaf5cf7746c9c903e3
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
2017-09-22 00:02:06 +00:00
..
android Updated license headers 2016-01-21 18:55:18 +00:00
bic/data Update binary compatibility files for Qt 5.9.0 for QtBase 2017-08-14 13:48:17 +00:00
cmake tests: Unify license to GPL-EXCEPT 2017-04-03 07:18:46 +00:00
compilerwarnings/data Updated license headers 2016-01-21 18:55:18 +00:00
concurrent Remove tst_qtconcurrentiteratekernel blockSize test 2017-07-29 09:35:16 +00:00
corelib Remove unnecessary VxWorks ifdef 2017-09-18 21:06:25 +00:00
dbus Use QSharedPointer::create() more 2017-07-19 13:40:42 +00:00
gui Fix convertToFormat with color-tables 2017-09-14 08:13:46 +00:00
guiapplauncher
installed_cmake
network Fix #if-ery and accompanying comment 2017-09-20 11:50:47 +00:00
opengl Switch to RGB(A|X)8888[_Premultiplied] for QOpenGLFBO readbacks on GLES 2017-03-28 11:17:52 +00:00
other tst_qfocusevent activateWindow for Win 10 2017-08-03 06:58:19 +00:00
printsupport Convert features.completer to QT_[REQUIRE_]CONFIG 2017-09-04 11:28:02 +00:00
shared Make self-contained test of condensed font matching and width 2016-10-16 00:11:13 +00:00
sql Fix recordOCI() test to treat clob/nclob as QByteArray 2017-09-18 21:06:49 +00:00
testlib Add flowId to messages when logging in TeamCity format 2017-08-04 18:48:48 +00:00
tools Adapt qmake's raw-string parser to avoid confusion by macros 2017-08-24 14:27:50 +00:00
widgets QCompleter: Send activated() signal only once on return key 2017-09-22 00:02:06 +00:00
xml Merge remote-tracking branch 'origin/5.7' into 5.8 2016-11-01 06:02:55 +01:00
auto.pro Remove remains of wince in .pro files 2017-07-03 05:32:51 +00:00
network-settings.h Merge remote-tracking branch 'origin/5.6' into 5.7 2016-05-06 15:36:44 +02:00