aboutsummaryrefslogtreecommitdiffstats
path: root/src/quick
Commit message (Collapse)AuthorAgeFilesLines
...
* Improve AnimatedSprite's documentationMitch Curtis2018-03-161-16/+16
| | | | | | Change-Id: Icc86afe67fd5a432798ce3173da51275bed1bf64 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io> Reviewed-by: Venugopal Shivashankar <Venugopal.Shivashankar@qt.io>
* Improve SpriteSequence's documentationMitch Curtis2018-03-161-12/+12
| | | | | Change-Id: I7e9e09ba3b6c0ec3c0b4bed75b24ed87fbe9660f Reviewed-by: Venugopal Shivashankar <Venugopal.Shivashankar@qt.io>
* QQuickWindow: skip mouse synthesis for touch events from trackpadsShawn Rutledge2018-03-162-1/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | A trackpad is primarily a mouse-emulating device, which can also recognize gestures, and furthermore can send raw touches iff it is asked to. So, every touch event from a trackpad is likely to be followed by a mouse or gesture event (especially when the MouseEmulation capability confirms that it is able to do that). Therefore mouse event synthesis is redundant. In this bug scenario, MultiPointTouchArea enables touch events within its rectangular bounds. A Flickable is on top. As you flick with two fingers on the trackpad, macOS sends touch events with two touch points (because MPTA enabled touch events) and also a series of QWheelEvents as it recognizes the flick gesture. The Flickable receives mouse events sythesized from one touch point, and reacts as if you were dragging with one finger on a touchscreen, while it simultaneously also reacts to the QWheelEvents. Meanwhile the remaining touchpoint falls through to the MPTA underneath; so the user ends up interacting with both at the same time and making the Flickable jump around besides. This patch just fixes the jumpiness in Flickable: it will no longer receive the synth-mouse events, so it will not be dragged, and will react only to the wheel events. But MPTA still gets the touches. Task-number: QTBUG-66329 Change-Id: I6f535a2c9e47bcb284eaf9ae1fdaa39f8b510af9 Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
* Scale up SVG images if source size is larger than original sizeAndy Shaw2018-03-151-3/+6
| | | | | | | | | | | | | | Since SVG images can be scaled up without any loss of quality then we should allow this to happen even though it is not done for other image formats. This restores the 5.9.x behavior for SVG images. Additionally the manual test is updated to showcase an embedded image inside a SVG one to indicate this is continuing to work as before too. Task-number: QTBUG-67019 Change-Id: Ia719899937f8146e8fab50aa85adf18e2f79aa98 Reviewed-by: Evangelos Foutras <evangelos@foutrelis.com> Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* Doc: Add Qt Quick usage guidelinesVenugopal Shivashankar2018-03-134-0/+368
| | | | | | Task-number: QTBUG-15757 Change-Id: I9193ed459ced63cceb819a66f5a8c76042f455b6 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* Fix typos, punctuation, and grammar in sprites.qdocMitch Curtis2018-03-131-30/+30
| | | | | Change-Id: Ie3c24958e96c54cd91cd4a752638c11764338028 Reviewed-by: Venugopal Shivashankar <Venugopal.Shivashankar@qt.io>
* Fix non-integer scale factors with Text native renderingDavid Edmundson2018-03-131-2/+2
| | | | | | Task-number: QTBUG-67007 Change-Id: Id32cc14ea1bc258cfc139a859ccae014f5893563 Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
* Add an example of binding LayoutMirroring to the app's layoutDirectionMitch Curtis2018-03-081-0/+7
| | | | | Change-Id: I81aa96641d9bef35e003b67e691607a926c087d7 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* touchDevice: don't lose bits from QTouchDevice::capabilitiesShawn Rutledge2018-03-081-2/+1
| | | | | | | | | | | | It was a bug that we made a local QQuickPointerDevice::Capabilities instance and didn't pass it to the QQuickPointerDevice constructor. Further, we've now reserved the entire lower byte for storing QTouchDevice::capabilities, and the upper byte for storing QtQuick- specific capabilities, so we can copy the whole lower byte instead of just the lower nybble. Change-Id: Ia21b6a1503ea870a1e16cebe70a20f4e21903054 Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
* TapHandler: add singleTapped and doubleTapped signalsShawn Rutledge2018-03-022-3/+29
| | | | | | | | | | | | | This is for convenience. It's nicer not to need to test tapCount in JavaScript if you know you want to react on double-click: onTapped: if (tapCount === 2) doSomething() becomes onDoubleTapped: doSomething() Neither of these are guaranteed to be exclusive though: singleTapped occurs first, then doubleTapped if you tap again quickly, then tapCount keeps increasing as long as you keep tapping. Change-Id: I6fff10880831d5be0848b9957141311db8c2c0f0 Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
* Doc: Change QtQuickTest to QtQmlTestMartin Smith2018-03-021-1/+1
| | | | | | | | | | | | | The creation of module QtQmlTest remains incomplete, but this update improves the situation a bit. In qtqmltest.qdocconf, all instances of QtQuickTest are changed to QtQmlTest. In qtquick.qdocconf, qtqmltest is added as a dependency. This remains incomplete, because the module header is still called QtQuickTest, but the number of qdoc warnings in qtdeclarative is reduced. Change-Id: Id545f9b5ecb2165d3f0972a059a8a4a4cfd52f2f Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
* doc: Fix another link to page titleMartin Smith2018-03-021-1/+1
| | | | | | | Added the word OpenGL, which was missing. Change-Id: Ie09ba1ec59615d2f139ef72e0743f67b6c8ff33d Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
* doc: Fix link to page titleMartin Smith2018-03-021-1/+1
| | | | | | | Removed the word Overview, which had been deleted from the title. Change-Id: I1af6cc48b0f3c38e2fabe11346b023de317b1fd7 Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
* doc: Add qtquickcontrols2 to the dependency listMartin Smith2018-03-021-1/+1
| | | | | | | | qtquickcontrols2 was missing from the dependency list in qtquick.qdocconf. Change-Id: I29231c097ca9f748ed8b3ae49100466318da8352 Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
* allow DeviceType and PointerType enums 16 bits each; bit packingShawn Rutledge2018-03-021-11/+13
| | | | | | | | | | | | Now in QQuickPointerDevice, the types, flags and capabilities take up 64 bits together, and we reserve enough bits to add more types later. In C++11 enums can be strongly typed by "inheriting" an integer type, so we do that. They are signed because button count and maximum touch points are signed, and because MS compilers do that by default with enums. Change-Id: I45f27bcceeef275cbee256472b35f78fbdeeaad6 Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
* Don't crash if DragHandler have target: nullJan Arve Sæther2018-03-021-6/+8
| | | | | Change-Id: Ie5c5367439f8773eb523ef5d639a018a2fd59c65 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* Fix: Do not read texture files when backend is not openglEirik Aavitsland2018-03-011-5/+21
| | | | | | | | | | | | The software backend would assert for the compressed GL texture files. Autotests updated for this functionality. Moved tests of the optional texture-file support out of qmltest (where it did not belong) and into tst_qquickimage, side by side with the tests of the optional svg format. Change-Id: I98c407093ccebeb70ba5a93ff0882dbd0b8060d5 Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* Silence a GCC 8 warning in qquickanimationVille Voutilainen2018-02-281-3/+3
| | | | | | | | qtdeclarative/src/quick/util/qquickanimation.cpp:1669:109: error: cast between incompatible function types from ‘QVariant (*)(qreal&, qreal&, qreal)’ {aka ‘QVariant (*)(double&, double&, double)’} to ‘QVariantAnimation::Interpolator’ {aka ‘QVariant (*)(const void*, const void*, double)’} [-Werror=cast-function-type] d->interpolator = reinterpret_cast<QVariantAnimation::Interpolator>(&_q_interpolateClockwiseRotation); Change-Id: I8da70ef666deb3cbdbf05c5bac89f705a2ec5ea8 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* Doc: correct references to snippetNico Vertriest2018-02-281-107/+0
| | | | | | | | | - replace by \quotefromfile statements from existing code - if no example in existing code: use \badcode - this makes dbransaction.js redundant Change-Id: I748fd1b3ee564556d71e9af5ca2dbc70ec37ecc2 Reviewed-by: Martin Smith <martin.smith@qt.io>
* Fix: do data size check of pkm format compressed texture filesEirik Aavitsland2018-02-281-3/+2
| | | | | | | | | | Reintroduce reading - and sanity checking - the data size from the file header of pkm files. This was commented out during the refactoring, since it lacked the fix for ETC2_EAC format (ref. 16cd1f8 on 5.10 branch). This commit also includes that fix. Change-Id: Id85547fb6bee254d58e49ddff4593704f7ab83ed Reviewed-by: Michael Brasser <michael.brasser@live.com>
* Doc: add code examples and GIFs of AnimatedSpriteMitch Curtis2018-02-285-3/+61
| | | | | Change-Id: Ie1c7541e526e2777af83a46d6ff01b3f7a9a0d3e Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* finish renaming of containsMask -> containmentMaskShawn Rutledge2018-02-283-6/+6
| | | | | | | | Followup to 6fa746fa6 to rename setContainsMask and registerAsContainsMask Change-Id: Ifdfaf58dccb5fd3665615418e7f1ea09cb914c55 Reviewed-by: Paolo Angelelli <paolo.angelelli@qt.io>
* TapHandler: document that DragThreshold is the default gesturePolicyShawn Rutledge2018-02-281-18/+19
| | | | | | | Followup to 6eaa95662c2d4ba287ac5d1de5ec49bd3a9f59e6 Change-Id: I082d0a52588a90f6c066f31e4595a01302e19241 Reviewed-by: Martin Smith <martin.smith@qt.io>
* doc: Fix some odds and ends in qdoc commentsMartin Smith2018-02-283-6/+10
| | | | | | | | | | | A few incorrent link commands were fixed. A few "No such parameter..." errors were fixed. A \qmlproperty return type qwas adjusted. A comment was removed from between a qdoc coment and its function definition. And a missing \reimp comment was added. Change-Id: I79c0882d730c77a179a4daf98bc6a46916c585d5 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io> Reviewed-by: Martin Smith <martin.smith@qt.io>
* doc: Fix some odds and ends in qdoc commentsMartin Smith2018-02-281-1/+1
| | | | | | | | | | A few incorrent link commands were fixed. A few "No such parameter..." errors were fixed. A \qmlproperty return type qwas adjusted. A comment was removed from between a qdoc coment and its function definition. And a missing \reimp comment was added. Change-Id: Ia1775715b5343d279ca3701e6875abacfadb0cfe Reviewed-by: Martin Smith <martin.smith@qt.io>
* doc: Fix several Can't link to errorsMartin Smith2018-02-282-26/+49
| | | | | | | | This update corrects several "Can't link to..." errors and splits a \qmlpropertygroup into two separate \qmlpropertygroups. Change-Id: Ic9b89a11eef64069154a932dd9dedf18279506a2 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* rename containsMask to containmentMaskShawn Rutledge2018-02-272-9/+9
| | | | | | | | | It was pointed out that containsMask sounds like it ought to be a boolean property. Change-Id: I2b56823b60d64f9903b0d5108c6428e691c09ed0 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io> Reviewed-by: Paolo Angelelli <paolo.angelelli@qt.io>
* Fix memory leak in compressed texture file readingEirik Aavitsland2018-02-273-0/+7
| | | | | | | The format handler object would never be deleted. Change-Id: I44e0740f8ab0404ebb2951865bfedc5a4c8227f3 Reviewed-by: Michael Brasser <michael.brasser@live.com>
* use the override keyword consistently and correctly (clang-tidy)Shawn Rutledge2018-02-2734-62/+62
| | | | | Change-Id: If9e28d143f8cba3df3c757476b4f2265e2eb8b2a Reviewed-by: Johan Helsing <johan.helsing@qt.io>
* AnimatedSprite: set implicit size based on implicit frame sizeMitch Curtis2018-02-261-1/+13
| | | | | | | | | | | | | | By doing so, users no longer need to set an implicit or explicit size for AnimatedSprite. [ChangeLog][QtQuick][AnimatedSprite] AnimatedSprite's implicitWidth and implicitHeight are now based on frameWidth and frameHeight, respectively. This means it is no longer necessary to explicitly size AnimatedSprite. Task-number: QTBUG-36341 Change-Id: I3eb87e9b1c6bb93b3c667123c345341f34e2eee8 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* Fix QQmlEngine::retranslate() with PropertyChangesSimon Hausmann2018-02-261-8/+17
| | | | | | | | | When changing the language, we need to re-apply the state of items and re-run the translations if present. Task-number: QTBUG-66541 Change-Id: I83a542af033990ef9a0f92801c5f52d3a5ec722c Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* init variables where they are declared when possible (clang-tidy)Shawn Rutledge2018-02-2626-279/+192
| | | | | | | | clang-tidy -p compile_commands.json $file -checks='-*,modernize-use-default-member-init,readability-redundant-member-init' -config='{CheckOptions: [{key: modernize-use-default-member-init.UseAssignment, value: "1"}]}' -header-filter='qtdeclarative' -fix Change-Id: I705f3235ff129ba68b0d8dad54a083e29fcead5f Reviewed-by: Johan Helsing <johan.helsing@qt.io>
* Sprite, SpriteAnimation: document that frameDuration is in millisecondsMitch Curtis2018-02-262-2/+2
| | | | | Change-Id: I849661f6bed1c5d15edb79ac05e0f74212ce1e02 Reviewed-by: Andy Nichols <andy.nichols@qt.io>
* use nullptr consistently (clang-tidy)Shawn Rutledge2018-02-26216-1227/+1227
| | | | | | | | | | | | | From now on we prefer nullptr instead of 0 to clarify cases where we are assigning or testing a pointer rather than a numeric zero. Also, replaced cases where 0 was passed as Qt::KeyboardModifiers with Qt::NoModifier (clang-tidy replaced them with nullptr, which waas wrong, so it was just as well to make the tests more readable rather than to revert those lines). Change-Id: I4735d35e4d9f42db5216862ce091429eadc6e65d Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* doc: Correct mostly linking errorsMartin Smith2018-02-236-76/+124
| | | | | | | | | This update corrects many qdoc warnings, mostly of the "Can't link to..." variety, but there were also a few qdoc comments added. As of this update, the qdoc warning count is 46 in QtDeclarative. Change-Id: Icf2d34c7ce7010ebfd9b474feacfe8af42f3fd5f Reviewed-by: Martin Smith <martin.smith@qt.io>
* doc: Correct several QML property linksMartin Smith2018-02-231-24/+29
| | | | | | | | | | | | This update corrects several QML property links. Currently, the best way to link to a QML property is like this: \l {QtQuick::EventPoint::velocity} {velocity} In other words, use the full path to the property as the link, using '::' as the separator, and use the property name as the label. Enclose both the link and the label in curly braces. Change-Id: I19231403b82d41ad89096dd27787eff57c91b8ae Reviewed-by: Martin Smith <martin.smith@qt.io>
* doc: QtQuick must see the index file for QtSqlMartin Smith2018-02-231-1/+1
| | | | | | | The qdocconffile for QtQuick is updated to include the dependency on QtSql. Change-Id: I9d0315e4d52958bd213afa611c2898b386c4c728 Reviewed-by: Martin Smith <martin.smith@qt.io>
* doc: Fix remaining "Can't tie this..." errorsMartin Smith2018-02-236-20/+13
| | | | | | | | This update mostly removes qdoc comment markers from comments that should not have been qdoc comments. Change-Id: I8ccaa7fd4ae610371e25066e048fcba6cfba8038 Reviewed-by: Martin Smith <martin.smith@qt.io>
* Fix draghandler to respect axis constraintsJan Arve Sæther2018-02-212-36/+62
| | | | | | | | | | | | | | | | | | | | | | | ..while its (ancestor) coordinate system has changed during the drag. For example, ensure that a DragHandler-based Slider keeps its knob centered. If the Slider is used on a Flickable which you are flicking with a second finger, then the coordinate system is changing underneath the Slider. The problem was that DragHandler stored the initial drag position of the target when the target item was pressed, and used that throughout the whole drag operation. Unfortunately if the target item was inside a Flickable that got flicked during a drag operation, that initial position was not updated (and thus, incorrect). Instead of storing the initial target position in scene coordinates, we now store the position that got pressed in local target coordinates, and ensure that in any further updates the touchpoint have the same local position (by moving the target). Task-number: QTBUG-64852 Change-Id: I25012d34d88f45c7eb9c711db0037d530cf10854 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* Image: respect aspect ratio of an SVG when width or height is zeroAndy Shaw2018-02-211-1/+1
| | | | | | | | This amends f42f1366dcd4b070c69c9e7fe42a704ef23da14d Task-number: QTBUG-65789 Change-Id: I1db05259f0aeb3310bbaf5ea03be52cbd243d115 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* Only warn about actual *anchors* in layout childrenJan Arve Sæther2018-02-192-0/+14
| | | | | | | | | | | Do not warn if they don't actually pose a problem, such as having just anchors.margins: 42 in a layout child item (as demonstrated by the test) Change-Id: I01e4515e91d7d0df3ae6bf9061cebe5c51802998 Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
* Software render: Fix warnings floodFriedemann Kleint2018-02-191-0/+1
| | | | | | | | | | Add missing QPainter::end(), fixing: QBackingStore::endPaint() called with active painter on backingstore paint device Task-number: QTBUG-66452 Change-Id: Ia00e61953528b15015b3e41ba1868e670818cf14 Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* Finally really remove QT_NO_QML_DEBUGGERUlf Hermann2018-02-191-0/+1
| | | | | | | | | | We don't want the JIT to ignore the debug instructions, and in qsgatlastexture.cpp qqmlglobal_p.h which defines DEFINE_BOOL_CONFIG_OPTION was implicitly included via qml_debug. Change-Id: I82329b9422f4938f097263517afadebab33a0d0c Reviewed-by: Simon Hausmann <simon.hausmann@qt.io> Reviewed-by: Nodir Temirkhodjaev <nodir.temir@gmail.com>
* Merge remote-tracking branch 'origin/5.9' into 5.11Liang Qi2018-02-183-2/+16
|\ | | | | | | | | | | | | | | Conflicts: .qmake.conf tests/auto/qml/qqmlcontext/tst_qqmlcontext.cpp Change-Id: I7feb9772fc35066f56b7c073482b53ca8c86c70b
| * QQuickItemView::currentItemChanged called upon currentItem destructionAleix Pol2018-02-131-0/+7
| | | | | | | | | | | | | | | | | | There were some cases where the signal wasn't emitted and we ended up with events being delivered to objects that didn't exist anymore. Task-number: QTBUG-65881 Change-Id: I847669a978e82a0332907b029a8295bb993d2850 Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
| * Fix performance regressionJesus Fernandez2018-02-072-2/+9
| | | | | | | | | | | | | | | | | | | | | | Reverts 2c2e7f27426cb4381f2dcaa36affe55719619753. WebGL does not support a shared index and vertex buffer. Due to a performance regression, this patch is reverted. Task-number: QTBUG-66191 Change-Id: I296d2a6c1c7b5fa66532bd7e106f5360d9d2403a Reviewed-by: Simon Hausmann <simon.hausmann@qt.io> Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* | Merge remote-tracking branch 'origin/5.10.1' into 5.11Qt Forward Merge Bot2018-02-151-3/+4
|\ \ | | | | | | | | | Change-Id: I64bf7d183bbd8af7282270097809d14a54ba0188
| * | skip filtering during post-delivery if there are no PointerHandlersv5.10.1Shawn Rutledge2018-02-061-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In QQuickWindowPrivate::deliverMouseEvent() we call childMouseEventFilter on parents of items which have pointer handlers before we give the pointer handlers one last chance to handle un-handled events. This last-chance delivery is a new feature in 5.10. (Maybe letting filtering happen in that scenario is dubious anyway. The reason it was done in 7042cfd9cb1b552c5fd753b6912439ce604eb1a0 was to allow Flickable to steal the grab from a passively-grabbing TapHandler.) But certainly if there aren't any pointer handlers as children of an item, it doesn't make sense to let the item's ancestors do filtering because in 5.9 and previous versions they would not have gotten that chance. Task-number: QTBUG-65651 Change-Id: I7a14a1f6cac03bf9beb4fa9ab47193df1bd773a8 Reviewed-by: Paolo Angelelli <paolo.angelelli@qt.io>
| * | Make sure passive grabbers are cleared on releaseJan Arve Saether2018-02-021-3/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | This got regressed by change e6d4df156e9aec62054740dc99ab8ba2855eaafc. Before that change, we always cleared both the exclusive and passive grabbers. Task-number: QTBUG-66152 Change-Id: I93d2568bd2a23ddd55a5294d544f978a50a5543e Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* | | Fix crash with the software renderer and windows with QObject parentSimon Hausmann2018-02-151-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When a QQuickWindow is a child of another QObject (such as a Loader) and is scheduled for deletion using a deferred delete event, then a deletion via the parent ends up calling the window's destructor, which will finally end up in ~QObject(), which takes care of removing the posted deferred deletion event from the event queue. In the case of QQuickWindow, the destructor - called before ~QObject - calls windowDestroyed(this) on the SG render loop. The implementation in the software renderer calls QCoreApplication::sendPostedEvents() with QEvent::DeferedDelete, which ends up deleting the same window a second time and resulting in a crash. I can't see a good reason for the existence of the sendPostedEvents() call there. It is not present in the other render loops and according to git blame it stems from the very early first implementation of the software renderer where surely copy & paste from other render loop code was involved back then. The same fix is applied to the single-threaded VG and D3D12 render loops, as they are most likely copy & paste from the software render loop implementation. ASAN trace for tst_qquickwindow::unloadSubWindow() on 5.11 branch that shows invalid access to the QObjectPrivate/QQuickWindowPrivate, which follows the QObject in terms of life-cycle: ==4736==ERROR: AddressSanitizer: heap-use-after-free on address 0x617000011778 at pc 0x7fdd211cfbb3 bp 0x7fffecb47ea0 sp 0x7fffecb47e90 READ of size 8 at 0x617000011778 thread T0 #0 0x7fdd211cfbb2 in QQuickWindow::~QQuickWindow() items/qquickwindow.cpp:1308 #1 0x7fdd21470974 in QQuickWindowQmlImpl::~QQuickWindowQmlImpl() items/qquickwindowmodule_p.h:63 #2 0x7fdd21470974 in QQmlPrivate::QQmlElement<QQuickWindowQmlImpl>::~QQmlElement() .../qqmlprivate.h:103 #3 0x7fdd21470974 in QQmlPrivate::QQmlElement<QQuickWindowQmlImpl>::~QQmlElement() .../qqmlprivate.h:103 #4 0x7fdd1e24da24 in qDeleteInEventHandler(QObject*) kernel/qobject.cpp:4601 #5 0x7fdd1e253d2f in QObject::event(QEvent*) kernel/qobject.cpp:1240 #6 0x7fdd1fbd1d41 in QWindow::event(QEvent*) kernel/qwindow.cpp:2356 #7 0x7fdd211f778e in QQuickWindow::event(QEvent*) items/qquickwindow.cpp:1628 #8 0x7fdd1e1a4e3c in QCoreApplicationPrivate::notify_helper(QObject*, QEvent*) kernel/qcoreapplication.cpp:1216 #9 0x7fdd1e1a508b in doNotify kernel/qcoreapplication.cpp:1157 #10 0x7fdd1e1a555a in QCoreApplication::notify(QObject*, QEvent*) kernel/qcoreapplication.cpp:1143 #11 0x7fdd1fb87665 in QGuiApplication::notify(QObject*, QEvent*) kernel/qguiapplication.cpp:1723 #12 0x7fdd1e1a52fa in QCoreApplication::notifyInternal2(QObject*, QEvent*) kernel/qcoreapplication.cpp:1067 #13 0x7fdd1e1b6ed2 in QCoreApplication::sendEvent(QObject*, QEvent*) ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:234 #14 0x7fdd1e1b6ed2 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) kernel/qcoreapplication.cpp:1764 #15 0x7fdd1e1b8cda in QCoreApplication::sendPostedEvents(QObject*, int) kernel/qcoreapplication.cpp:1618 #16 0x7fdd210cb034 in QSGSoftwareRenderLoop::windowDestroyed(QQuickWindow*) scenegraph/adaptations/software/qsgsoftwarerenderloop.cpp:100 #17 0x7fdd211cfb8c in QQuickWindow::~QQuickWindow() items/qquickwindow.cpp:1305 [...] 0x617000011778 is located 632 bytes inside of 704-byte region [0x617000011500,0x6170000117c0) freed by thread T0 here: #0 0x7fdd21a8a9d8 in operator delete(void*, unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe19d8) #1 0x7fdd2146fa3c in QQuickWindowQmlImplPrivate::~QQuickWindowQmlImplPrivate() items/qquickwindowmodule.cpp:57 #2 0x7fdd1e26b252 in QScopedPointerDeleter<QObjectData>::cleanup(QObjectData*) [...] #3 0x7fdd1e26b252 in QScopedPointer<QObjectData, QScopedPointerDeleter<QObjectData> >::~QScopedPointer() [...] #4 0x7fdd1e26b252 in QObject::~QObject() kernel/qobject.cpp:882 #5 0x7fdd1fbcf51c in QWindow::~QWindow() kernel/qwindow.cpp:211 #6 0x7fdd211d0466 in QQuickWindow::~QQuickWindow() items/qquickwindow.cpp:1297 #7 0x7fdd211d0644 in QQuickWindow::~QQuickWindow() items/qquickwindow.cpp:1335 #8 0x7fdd1e2666b4 in QObjectPrivate::deleteChildren() kernel/qobject.cpp:1995 #9 0x7fdd1e26b329 in QObject::~QObject() kernel/qobject.cpp:1023 [...] Change-Id: Iffa90d365d02b074e2a78c5be2895c9f86a4b80e Task-number: QTBUG-66381 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io> Reviewed-by: Andy Nichols <andy.nichols@qt.io>