Details
-
Bug
-
Resolution: Done
-
P2: Important
-
4.6.2, 4.7.0, 5.1.0 Beta 1
-
None
-
Windows 7
-
6800728d091e5122e6d93675db84ee028221d161 (5.1.1), transient children: bc4ce284ade4e3584370a74a0cc6aadc40301231 (5.1.2)
Description
I have a widget with the Qt::FramelessWindowHint and Qt::WA_TranslucentBackground flags. When the app is minimized (through a button or other means), and is programmatically restored (message box, showNormal(), etc), the app will no longer respond to paint events.
I've reproduced this in a standalone app, attached to this bug. Press the button after the app launches. The app will minimize itself. In 3 seconds, it will restore itself. After it's restored, notice that the button no longer responds to mouse over events by changing its appearance, but you can click on it and minimize the app again. Once you click on it, things will start painting again. Note: If the app restores itself behind other windows and you have to manually bring the app to the front, it will not exhibit this issue. It's best to minimize everything else to reproduce this 100%.
I do have a workaround, which is to manually post an update request from the showEvent() method.
void MainWindow::showEvent(QShowEvent *event)
{ QApplication::postEvent(this, new QEvent(QEvent::UpdateRequest), Qt::LowEventPriority); QWidget::showEvent(event); }Attachments
Issue Links
- relates to
-
QTBUG-29109 showMinimize() won't work with Frameless main window
- Closed
-
QTBUG-83449 Toggling fullscreen for frameless window with no system background doesn't work if its position is 0,0.
- Closed
- replaces
-
QTBUG-34147 Application (MainWindow) freezes after minimize -> restore steps
- Closed
-
QTBUG-38856 Frameless, transparent widget stops updating on Windows after receiving external show/hide messsages
- Closed