qt5base-lts/tests
Volker Hilsheimer 23b998fa45 QWidget: fix regression when changing focus proxy while it has focus
This follows up on commits 3e7463411e and
947883141d.

The changing of the pointer of QApplicationPrivate does not transfer
focus properly. It updates the pointer, but it doesn't deliver events
or update the widget hierarchy's focus chain. The result is that
multiple line edits might show a blinking cursor.

Instead, use QWidget::setFocus when the focus proxy has changed while
it had focus, and pass OtherFocusReason rather than NoFocusReason.

Add a basic test for QWidget::focusProxy, which exercises this code
path and verifies that pointers are consistent when focus changes as
a side effect of modifying the focusProxy.

Change-Id: I15a4d868bab2b590cfe4a1daa6a3c8cebc9c9ca2
Fixes: QTBUG-83720
Fixes: QTBUG-79707
Pick-to: 5.15
Reviewed-by: David Faure <david.faure@kdab.com>
2020-04-23 16:19:07 +02:00
..
auto QWidget: fix regression when changing focus proxy while it has focus 2020-04-23 16:19:07 +02:00
baselineserver Merge remote-tracking branch 'origin/5.15' into dev 2020-02-28 09:48:30 +01:00
benchmarks Merge remote-tracking branch 'origin/5.15' into dev 2020-04-22 15:28:01 +02:00
global tst_bic: Add linux-gcc-ia32 bic data for QtXml 2013-01-16 08:25:28 +01:00
libfuzzer Merge remote-tracking branch 'origin/5.15' into dev 2020-04-22 15:28:01 +02:00
manual Merge remote-tracking branch 'origin/5.15' into dev 2020-04-08 20:11:39 +02:00
shared Fix isRunningArmOnX86 unused function warning 2020-02-03 15:03:51 +01:00
testserver Fix perl script warning 2020-03-19 14:15:04 +00:00
.prev_CMakeLists.txt Make standalone tests build via top level repo project 2019-11-08 15:42:32 +00:00
CMakeLists.txt CMake: Handle finding of OpenSSL headers correctly 2020-04-08 22:03:24 +02:00
README Doc: Fix references to Qt Test 2013-01-30 01:35:06 +01:00
tests.pro Build examples and tests only if their requirements are met 2017-03-22 15:55:55 +00:00

This directory contains autotests and benchmarks based on Qt Test. In order
to run the autotests reliably, you need to configure a desktop to match the
test environment that these tests are written for.

Linux X11:

   * The user must be logged in to an active desktop; you can't run the
     autotests without a valid DISPLAY that allows X11 connections.

   * The tests are run against a KDE3 or KDE4 desktop.

   * Window manager uses "click to focus", and not "focus follows mouse". Many
     tests move the mouse cursor around and expect this to not affect focus
     and activation.

   * Disable "click to activate", i.e., when a window is opened, the window
     manager should automatically activate it (give it input focus) and not
     wait for the user to click the window.