void QWidgetPrivate::setOpaque(bool opaque)
{
- if (isOpaque == opaque)
- return;
- isOpaque = opaque;
-#ifdef Q_WS_MAC
- macUpdateIsOpaque();
-#endif
-#ifdef Q_WS_X11
- x11UpdateIsOpaque();
-#endif
-#ifdef Q_WS_WIN
- winUpdateIsOpaque();
-#endif
+ if (isOpaque != opaque) {
+ isOpaque = opaque;
+ updateIsTranslucent();
+ }
}
void QWidgetPrivate::updateIsTranslucent()
{
-#ifdef Q_WS_MAC
- macUpdateIsOpaque();
-#endif
-#ifdef Q_WS_X11
- x11UpdateIsOpaque();
-#endif
-#ifdef Q_WS_WIN
- winUpdateIsOpaque();
-#endif
+ Q_Q(QWidget);
+ if (QWindow *window = q->windowHandle())
+ window->setOpacity(isOpaque ? qreal(1.0) : qreal(0.0));
}
static inline void fillRegion(QPainter *painter, const QRegion &rgn, const QBrush &brush)
QAlphaWidget::QAlphaWidget(QWidget* w, Qt::WindowFlags f)
: QWidget(QApplication::desktop()->screen(QApplication::desktop()->screenNumber(w)), f)
{
-#ifndef Q_WS_WIN
+#ifndef Q_OS_WIN
setEnabled(false);
#endif
setAttribute(Qt::WA_NoSystemBackground, true);
QAlphaWidget::~QAlphaWidget()
{
-#if defined(Q_WS_WIN) && !defined(Q_OS_WINCE)
+#if defined(Q_OS_WIN) && !defined(Q_OS_WINCE)
// Restore user-defined opacity value
if (widget)
widget->setWindowOpacity(1);
if (widget) {
if (!showWidget) {
-#ifdef Q_WS_WIN
+#ifdef Q_OS_WIN
setEnabled(true);
setFocus();
-#endif // Q_WS_WIN
+#endif // Q_OS_WIN
widget->hide();
} else {
//Since we are faking the visibility of the widget
QRollEffect::QRollEffect(QWidget* w, Qt::WindowFlags f, DirFlags orient)
: QWidget(0, f), orientation(orient)
{
-#ifndef Q_WS_WIN
+#ifndef Q_OS_WIN
setEnabled(false);
#endif
if (orientation & (DownScroll|UpScroll))
currentHeight = 0;
- pm = widget->grab(QRect());
+ pm = widget->grab();
}
/*
qApp->removeEventFilter(this);
if (widget) {
if (!showWidget) {
-#ifdef Q_WS_WIN
+#ifdef Q_OS_WIN
setEnabled(true);
setFocus();
#endif