Qt 6.8.3 with BlackBerry 10 (QNX 8 / ARMv7) patches
 
 
 
 
 
 
Go to file
Axel Spoerl e66cbdf684 Harden QMenuPrivate::hideMenu() against menu argument becoming stale
QMenuPrivate::hideMenu() hides a menu and reposts events in case a new
action has become the active one. For that purpose, it waits 20ms and
60ms for visual effects to be rendered.
If the last action has been triggered, the menu's deleteLater slot has
been called before hideMenu(). In that case, it gets deleted while
events are processed during the waiting periods.
Subsequently, menu becomes stale.

This patch replaces the QMenu * argument with a QPointer. Early returns
are inserted after waiting. QSignalBlocker is replaced by manual signal
blocking, to prevent the signal blocker from recovering the state of a
stale object, when it goes out of scope.

An auto test is not added: The error scenario occurs, when a menu is
triggered by keyboard input, while a mouse event is sent to the main
window from outside the menu. Such a test scenario is complex to match
and exposed to flakiness.

Fixes: QTBUG-115597
Pick-to: 6.6 6.5 6.2
Change-Id: I4f937fe66fb1b5cf78ebee70fd0006712172cb12
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2023-08-14 17:05:36 +02:00
.github/workflows Repair github action workflow 2021-11-10 18:57:33 +01:00
LICENSES Clarify license of SHA-1 algorithm 2023-04-26 16:36:18 +02:00
bin Add simple project generation based on existing source files 2023-02-08 12:59:19 +01:00
cmake Do not override the generator type in configure script 2023-08-14 10:00:05 +02:00
coin COIN: Allow setting Debian rules branch as env variable 2023-08-09 21:57:21 +00:00
config.tests Remove the mandatory x86-64 features from its feature list 2023-05-31 14:55:37 -07:00
dist Add Qt 6.0.0 changes file 2020-11-16 10:02:08 +02:00
doc Docs: Add a macro for documenting something as a technical preview 2023-08-02 12:47:15 +00:00
examples Add QRhiWidget 2023-08-14 17:05:36 +02:00
lib
libexec Remove syncqt.pl 2023-06-30 13:23:46 +02:00
mkspecs Support PRELOAD var substitution for WASM main html with qmake 2023-07-27 22:16:21 +02:00
qmake Allow to override build date with SOURCE_DATE_EPOCH 2023-08-09 10:02:06 +02:00
src Harden QMenuPrivate::hideMenu() against menu argument becoming stale 2023-08-14 17:05:36 +02:00
tests Add QRhiWidget 2023-08-14 17:05:36 +02:00
util Change enumdata.py names so comments read more naturally 2023-08-09 17:53:45 +02:00
.cmake.conf CMake: Require CMake 3.21 when building/using Qt on Apple platforms 2023-06-28 22:09:20 +02:00
.gitattributes Give batch files CRLF line endings 2020-11-04 15:02:29 +00:00
.gitignore Add CMakeUserPresets.json to .gitignore 2023-06-23 12:13:08 +02:00
.lgtm.yml Skip LGTM analysis for the bootstrap library and tools 2020-07-16 01:04:34 +02:00
.tag
CMakeLists.txt Consider BUILD_SHARED_LIBS when adding libraries using _qt_internal_add_library 2023-08-04 14:36:50 +02:00
config_help.txt Correct the default value of unity-build-batch-size in the help message 2023-07-19 22:50:32 +02:00
configure Retrieve an old -redo behavior 2023-02-07 18:51:58 +00:00
configure.bat Retrieve an old -redo behavior 2023-02-07 18:51:58 +00:00
configure.cmake Update the implementation of -unity-build 2023-06-29 10:20:25 +02:00
dependencies.yaml
qt_cmdline.cmake Update the implementation of -unity-build 2023-06-29 10:20:25 +02:00