Qt 6.8.3 with BlackBerry 10 (QNX 8 / ARMv7) patches
 
 
 
 
 
 
Go to file
Tor Arne Vestbø a3bec3ad37 Don't clear Qt::Window/ForeignWindow of QWidget if window is not top level
The logic was needed for the old QMacCocoaViewContainer, which was a
QWidget, that set Qt::ForeignWindow, and hence Qt::Window, on its
windowHandle().

The modern way of embedding a foreign window into a widget hierarchy
is via QWindow::fromWinId() and QWidget::createWindowContainer(),
which manages the foreign window as a child QWindow of the window
container's window handle, instead of replacing or modifying the
window container's own window handle.

The opposite case is a QWidget embedded into a foreign/non-widget
window hierarchy. Ideally, in this case, we should return false for
isWindow(), as the function is documented to only return true for
"if the widget is an independent window", and "a window is a widget
that isn't visually the child of any other widget and that usually
has a frame and a window title". This notion is used in many places,
including in QApplication::topLevelWidgets(), which in turn affects
the quit logic of QApplication to prevent quitting the application
as long as the child/embedded widget is visible.

Unfortunately, embedding the widget as a non-Qt::Window is not an
option at this point, as we have a lot of code paths that assume
isWindow() || parentWidget(), and these code paths break down in
flames when we end up dereferencing the (non existing) parent
widget.

As a result of removing the logic, we can now embed a QWidget into
a non-widget window hierarchy as a Qt::Window, without the removed
logic resetting the widget back to a Qt::Widget on create(), which
would send us into into the broken code paths described above.

Removing this logic should not cause issues for child widgets backed
by a native window, as those are created with Qt::Widget window flags,
not Qt::Window, so we never relied on the removed logic to sanitize
those window flags.

Task-number: QTBUG-119652
Change-Id: Id6b8e5c67bf8f83af8c2f1594806f3419303b1a1
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
2023-12-06 19:01:19 +01: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 CMake: Don't strip debug builds with qt-cmake-private-install in CI 2023-11-03 18:24:46 +02:00
cmake headersclean: Remove unneeded exceptions 2023-12-05 17:28:12 +01:00
coin coin: Fix installation failing during tqtc-qt5.git integrations 2023-11-22 21:15:38 +01: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 Doc: Add convenience macros for specifying C++ type ordering information 2023-12-01 11:58:36 +00:00
examples SimpleTreeModel: Polish TreeModel::setupModelData() 2023-12-06 18:22:41 +01:00
lib
libexec CMake: Add a config.redo script similar to qt5's config.status 2023-09-20 21:20:13 +02:00
mkspecs Android: bump Android target API level to 34 2023-11-30 08:57:55 +02:00
qmake Android: bump Android target API level to 34 2023-11-30 08:57:55 +02:00
src Don't clear Qt::Window/ForeignWindow of QWidget if window is not top level 2023-12-06 19:01:19 +01:00
tests tst_tostring: support computed expected values 2023-12-06 09:46:55 +00:00
util Convert UTC offset table look-ups to binary chop 2023-11-03 18:27:13 +01:00
.cmake.conf CMake: Warn when configuring Qt with an unsupported Apple SDK or Xcode 2023-11-29 16:00:57 +01:00
.gitattributes
.gitignore Git ignore Visual Studio CMake build directories 2023-11-24 23:42:05 +01: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 Add coverage and coverage-gcov features 2023-09-22 15:54:30 +02:00
configure configure: Make sure the configure script exits with cmake's exit code 2023-11-22 05:34:28 +01:00
configure.bat CMake: Add a config.redo script similar to qt5's config.status 2023-09-20 21:20:13 +02:00
configure.cmake OpenSSL: remove support for 1.1 2023-11-24 19:00:06 +01:00
dependencies.yaml
qt_cmdline.cmake Add coverage and coverage-gcov features 2023-09-22 15:54:30 +02:00