Rely on isLayered() to decide layering

The logic here was a bit broken. Every QWindow has an opacity
which is 1 by default so the expose was hit for every single
window, regardless of it being layered or not.

Change-Id: I04873cd5db1cd147708e7de140f5947d3a01e9e1
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
This commit is contained in:
Gunnar Sletta 2013-10-23 09:57:59 +02:00 committed by The Qt Project
parent 5d8a882c11
commit cbcfbd798f

View File

@ -1056,9 +1056,10 @@ void QWindowsWindow::setVisible(bool visible)
// When the window is layered, we won't get WM_PAINT, and "we" are in control
// over the rendering of the window
// There is nobody waiting for this, so we don't need to flush afterwards.
QWindow *w = window();
if (w->format().hasAlpha() || qFuzzyCompare(w->opacity(), qreal(1)))
if (isLayered()) {
QWindow *w = window();
fireExpose(QRect(0, 0, w->width(), w->height()));
}
} else {
if (hasMouseCapture())