Details
-
Bug
-
Resolution: Unresolved
-
P2: Important
-
None
-
5.9.3
-
None
Description
Docking a QDockWidget can accidentally delete an another, unrelated QDockWidget.
Steps to reproduce:
1. Create an app with four docking windows and allow group-docking
2. Float A, B, C and then D
+---------+ +---+ +---+ +---+ +---+ | | | A | | B | | C | | D | | [APP] | +---+ +---+ +---+ +---+ | | | | | | | | | | | | | | | | | | | | +---------+ +---+ +---+ +---+ +---+
3. Dock B into A, then drag B out:
+-------+ +-------+ +---+ | B | | A [x]| | B | +-------+ --> +-------+ +---+ | | | | | | | | | | | | |-------| +-------+ +---+ | A | B | +-------+
4. Dock D into C, then drag C out:
+-------+ +-------+ +---+ | D | | D [x]| | C | +-------+ --> +-------+ +---+ | | | | | | | | | | | | |-------| +-------+ +---+ | C | D | +-------+
5. Dock C into B, then drag C out:
+-------+ +-------+ +---+ | C | | B [x]| | C | +-------+ --> +-------+ +---+ | | | | | | | | | | | | |-------| +-------+ +---+ | B | C | +-------+
6. Dock A and then D into B:
+-----------+ | D | +-----------+ | | | | |-----------| | B | A | D | +-----------+
7. Dock the BAD docking group back into the application
8. Notice that C is gone and the console error:
External WM_DESTROY received for QWidgetWindow(0x1c73a168, name="dockWidget_3Window") , parent: QWindow(0x0) , transient parent: QWidgetWindow(0x963b8c0, name="MainWindowWindow")
flush: GetDC failed (Invalid window handle.)