Details
-
Bug
-
Resolution: Done
-
P2: Important
-
5.3.0 Beta1
-
None
-
c3e416296a1026d7ba99cf209f5e0720ff5050b1 (6.6.2014, stable, 5.3.1?), a1c5198387fdb7db44a02bb94c56187874e67304 6.6.2014, stable, 5.3.1?) Reverted 5da108a4a76b163116f1b816090075a9b86cf077 9c80a3be4b3beb28a3a6bda717c15b0ded523557 (5.3, 13.6.2014)
Description
Description
When a widget is programmatically resized then it will trigger a spontaneous event even though the event did not originate from the system. Attached is an example that reproduces this by way of a timer using addWidget() on a layout.
Changes:
Approach 1: Do not programmatically generate resize, wait for platform event
- https://codereview.qt-project.org/#change,85474 https://codereview.qt-project.org/#change,85475
--> Deferred, cause changes in timing behaviour
Approach 2: Detect non-spontaneous by checking whether geometry is already correct, suppress platform events in that case
- https://codereview.qt-project.org/#change,86223 , https://codereview.qt-project.org/#change,86224
--> IntroducedQTBUG-39611, had to be reverted: - https://codereview.qt-project.org/87324 https://codereview.qt-project.org/87325
Approach 3: Suppress non-spontaneous events in the QPA plugins.
--> Deferred, breaks a lot of tests, initial resize goes missing.
Approach 4: Let the QPA plugins determine spontaneity
- Base change: 211cef46f6d9d8738c09f906f9c0c3080b445dc8 (dev, 5.9.2014, 5.5) https://codereview.qt-project.org/#/c/90531/
- https://codereview.qt-project.org/87417
Attachments
Issue Links
- relates to
-
QTBUG-32590 two move events per move call, one in subsequent message loop
- Closed
-
QTBUG-30744 QWidget receives two resizeEvent's before its first paintEvent
- Closed
- replaces
-
QTBUG-29937 [REG]: A QGLWidget in a top level widget gets two resize events when programatically resized
- Closed
- resulted in
-
QTBUG-39611 Regression/Windows: QWizard buttons wrongly positioned on branch 5.3 after merge from stable (5.3.0 release tags)
- Closed
For Gerrit Dashboard: QTBUG-38768 | ||||||
---|---|---|---|---|---|---|
# | Subject | Branch | Project | Status | CR | V |
85474,3 | Suppress synthesized resize event when programmatically resizing native widgets. | stable | qt/qtbase | Status: DEFERRED | 0 | 0 |
85475,3 | Set QEvent::spontaneous correctly in move/resize event handling. | stable | qt/qtbase | Status: DEFERRED | +2 | 0 |
86224,3 | Suppress move/resize events if they are the result of call to move()/resize(). | stable | qt/qtbase | Status: MERGED | +2 | 0 |
87417,10 | Introduce spontaneity to QWindowSystemInterface::WindowSystemEvent. | dev | qt/qtbase | Status: DEFERRED | -1 | 0 |
89059,1 | WIP: Fix spontaneity. | dev | qt/qtbase | Status: DEFERRED | 0 | 0 |
90531,4 | Introduce flags to QWindowSystemInterface::WindowSystemEvent. | dev | qt/qtbase | Status: MERGED | +2 | 0 |
97822,17 | Fix too many resizes and move events for native widgets | 5.4 | qt/qtbase | Status: MERGED | +2 | 0 |
98851,1 | Fix too many resizes and move events for native widgets | 5.4.0 | qt/qtbase | Status: ABANDONED | 0 | 0 |