Go to file
Volker Hilsheimer 03d62322b2 QComboBox on macOS: guard against destruction while native popup is open
Since showing the native popup on macOS is blocking and processes events
the QComboBox might get destroyed while the popup is open. Guard against
this by using QPointer and returning early (dismissing the scope guard
that would otherwise reset the menu's parent, writing to freed memory).

The problem is then that the native popup remains visible, as the
destructor of QComboBox calls cleanupNativeCombobox which destroys the
platform menu (i.e. the QCocoaMenu instance), but that doesn't dismiss()
the popup. Add a call to dismiss() to the QCocoaMenu destructor to make
sure that destroying the menu closes it first.

Fixes: QTBUG-116155
Pick-to: 6.6 6.5
Change-Id: If0ac19796603667f4c8e80c302710dc4c9aded50
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
2023-09-08 07:20:10 +02:00
.github/workflows Repair github action workflow 2021-11-10 18:57:33 +01:00
bin Add simple project generation based on existing source files 2023-02-08 12:59:19 +01:00
cmake CMake: Add a helpers file for commands to run in the top-level dir 2023-09-06 17:22:07 +02:00
coin Enable binfmts incase it is disabled 2023-08-31 06:31:36 +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 Add StateLocation & GenericStateLocation to StandardLocation 2023-09-07 01:17:13 +03:00
examples Doc: Add \examplecategory for qtconcurrent 2023-09-07 15:05:04 +02:00
lib
libexec Remove syncqt.pl 2023-06-30 13:23:46 +02:00
LICENSES Clarify license of SHA-1 algorithm 2023-04-26 16:36:18 +02:00
mkspecs undef READ and WRITE on VxWorks 2023-08-31 22:30:35 +00:00
qmake Doc: Document TR_EXCLUDE 2023-08-25 17:56:28 +02:00
src QComboBox on macOS: guard against destruction while native popup is open 2023-09-08 07:20:10 +02:00
tests QArrayDataPointer: remove Q_CHECK_PTR in assign(it, it) again 2023-09-07 15:05:05 +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
.gitignore Add CMakeUserPresets.json to .gitignore 2023-06-23 12:13:08 +02:00
.lgtm.yml
.tag
CMakeLists.txt CMake: Fix find_package(Qt6*Tools) in non-qtbase tests 2023-08-23 16:21:58 +02:00
config_help.txt CMake: remove test for eventfd, replace with __has_include 2023-08-29 07:41:11 -07: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 CMake: Don't add no-prefix define to qconfig_p.h 2023-09-05 16:33:40 +02:00
dependencies.yaml
qt_cmdline.cmake CMake: Allow installation of example sources into the Qt prefix 2023-08-16 19:04:40 +02:00