diff --git a/src/gui/kernel/qwidget_win.cpp b/src/gui/kernel/qwidget_win.cpp index 1e8b030..faf2547 100644 --- a/src/gui/kernel/qwidget_win.cpp +++ b/src/gui/kernel/qwidget_win.cpp @@ -1897,6 +1897,7 @@ void QWidgetPrivate::setWindowOpacity_sys(qreal level) if (!isOpaque && ptrUpdateLayeredWindow && (data.window_flags & Qt::FramelessWindowHint)) { if (GetWindowLong(q->internalWinId(), GWL_EXSTYLE) & Q_WS_EX_LAYERED) { BLENDFUNCTION blend = {AC_SRC_OVER, 0, (int)(255.0 * level), AC_SRC_ALPHA}; + qDebug()<< __FUNCTION__ << q<< "UpdateLayeredWindow" << level; ptrUpdateLayeredWindow(q->internalWinId(), NULL, NULL, NULL, NULL, NULL, 0, &blend, Q_ULW_ALPHA); } return; @@ -1921,6 +1922,7 @@ void QWidgetPrivate::setWindowOpacity_sys(qreal level) } else if (wl&Q_WS_EX_LAYERED) { SetWindowLong(q->internalWinId(), GWL_EXSTYLE, wl & ~Q_WS_EX_LAYERED); } + qDebug()<< __FUNCTION__ << q<< "SetLayeredWindowAttributes" << level; ptrSetLayeredWindowAttributes(q->internalWinId(), 0, (int)(level * 255), Q_LWA_ALPHA); } #endif //Q_WS_WINCE diff --git a/src/gui/painting/qwindowsurface_raster.cpp b/src/gui/painting/qwindowsurface_raster.cpp index 3493dd8..da4d0df 100644 --- a/src/gui/painting/qwindowsurface_raster.cpp +++ b/src/gui/painting/qwindowsurface_raster.cpp @@ -189,6 +189,7 @@ void QRasterWindowSurface::flush(QWidget *widget, const QRegion &rgn, const QPoi BLENDFUNCTION blend = {AC_SRC_OVER, 0, (int)(255.0 * window()->windowOpacity()), Q_AC_SRC_ALPHA}; RECT dirty = {dirtyRect.x(), dirtyRect.y(), dirtyRect.x() + dirtyRect.width(), dirtyRect.y() + dirtyRect.height()}; + qDebug() << __FUNCTION__ << widget << "UpdateLayeredWindowIndirect from " << d->image->hdc; Q_UPDATELAYEREDWINDOWINFO info = {sizeof(info), NULL, &ptDst, &size, d->image->hdc, &ptSrc, 0, &blend, Q_ULW_ALPHA, &dirty}; ptrUpdateLayeredWindowIndirect(window()->internalWinId(), &info); } else @@ -199,6 +200,7 @@ void QRasterWindowSurface::flush(QWidget *widget, const QRegion &rgn, const QPoi HDC widget_dc = widget->getDC(); QRect wbr = br.translated(-wOffset); + qDebug() <<__FUNCTION__ << widget << "BitBlt"; BitBlt(widget_dc, wbr.x(), wbr.y(), wbr.width(), wbr.height(), d->image->hdc, br.x() + offset.x(), br.y() + offset.y(), SRCCOPY); widget->releaseDC(widget_dc);