[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: branches/KDE/4.2/kdelibs/plasma
From: Aurélien Gâteau <agateau () kde ! org>
Date: 2009-04-21 9:20:11
Message-ID: 1240305611.224617.29725.nullmailer () svn ! kde ! org
[Download RAW message or body]
SVN commit 956998 by gateau:
Do not let plasma popup appear over screensaver.
BUG: 179924
CCMAIL:aseigo@kde.org
M +13 -17 popupapplet.cpp
M +1 -0 private/popupapplet_p.h
--- branches/KDE/4.2/kdelibs/plasma/popupapplet.cpp #956997:956998
@@ -275,13 +275,8 @@
//stuff out of your Dialog (extenders). Monitor WindowDeactivate events so we can
//emulate the same kind of behavior as Qt::Popup (close when you click somewhere
//else.
- Qt::WindowFlags wflags = Qt::FramelessWindowHint | Qt::WindowStaysOnTopHint;
-
- if (passive) {
- wflags |= Qt::X11BypassWindowManagerHint;
- }
-
- dialog->setWindowFlags(wflags);
+ dialog->setWindowFlags(Qt::FramelessWindowHint | Qt::WindowStaysOnTopHint);
+ updateDialogFlags();
KWindowSystem::setState(dialog->winId(), NET::SkipTaskbar | NET::SkipPager);
dialog->installEventFilter(q);
@@ -339,7 +334,7 @@
bool PopupApplet::eventFilter(QObject *watched, QEvent *event)
{
- if (watched == d->dialog && (event->type() == QEvent::WindowDeactivate)) {
+ if (!d->passive && watched == d->dialog && (event->type() == QEvent::WindowDeactivate)) {
d->popupLostFocus = true;
hidePopup();
QTimer::singleShot(100, this, SLOT(clearPopupLostFocus()));
@@ -410,15 +405,7 @@
d->passive = passive;
if (d->dialog) {
- Qt::WindowFlags wflags = d->dialog->windowFlags();
-
- if (d->passive) {
- wflags |= Qt::X11BypassWindowManagerHint;
- } else {
- wflags &= ~Qt::X11BypassWindowManagerHint;
- }
-
- d->dialog->setWindowFlags(wflags);
+ d->updateDialogFlags();
}
}
@@ -627,6 +614,15 @@
dialog->move(pos);
}
+
+
+void PopupAppletPrivate::updateDialogFlags()
+{
+ Q_ASSERT(dialog);
+ dialog->setAttribute(Qt::WA_X11NetWmWindowTypeNotification, passive);
+}
+
+
} // Plasma namespace
#include "popupapplet.moc"
--- branches/KDE/4.2/kdelibs/plasma/private/popupapplet_p.h #956997:956998
@@ -35,6 +35,7 @@
void dialogSizeChanged();
void dialogStatusChanged(bool status);
void updateDialogPosition();
+ void updateDialogFlags();
void popupConstraintsEvent(Plasma::Constraints constraints);
void checkExtenderAppearance(Plasma::FormFactor f);
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic