Details
-
Bug
-
Resolution: Done
-
P3: Somewhat important
-
5.6.2, 5.8.0, 5.9
-
None
-
Windows 10, Linux
NVidia drivers
-
fd897629bf698c9efb4628188db79f2937ef3d89
Description
Moving a QOpenGLWidget between top-level parents when the QOpenGLWidget is not visible causes the QOpenGLWidget to stop rendering. The attached patch to the manual qopenglwidget test demonstrates the issue.
There's 2 odd behaviors that I have noticed.
To reproduce the first:
- Launch the test app
- In the "Tabs" MDI window, click the "Not OpenGL" tab
- Click Tools -> Toggle tab widget parent. The tab widget is moved to a second top-level window. The "Not OpenGL" tab remains active.
- Click the "OpenGL" tab. The OpenGL widget is black.
To reproduce the second:
- Launch the test app
- Take note: The triangle in the OpenGL tab widget is spinning along the X axis. The red point is spinning from the top to the bottom of the widget.
- Click Tools -> Toggle tab widget parent. The tab widget is moved to a second top-level window. The "OpenGL" tab is active.
- Change tabs to the "Not OpenGL" tab.
- Click Tools -> Toggle tab widget parent. The tab widget moves back into the MDI subwindow.
- Click the OpenGL tab. Take note: the triangle is now spinning along the Z axis. It appears to be rendering the same texture as the MDI subwindow with the "33 ms timer" title. This can be confirmed by resizing the "33 ms timer" subwindow to be small, and the "Tabs" subwindow to be large. The "Tabs" OpenGL widget appears very pixelated, because it is using the small texture of the "33 ms timer" widget.