summaryrefslogtreecommitdiff
path: root/source/kde/kdelibs/fixPopupForPlasmaboard.diff
diff options
context:
space:
mode:
Diffstat (limited to 'source/kde/kdelibs/fixPopupForPlasmaboard.diff')
-rw-r--r--source/kde/kdelibs/fixPopupForPlasmaboard.diff43
1 files changed, 43 insertions, 0 deletions
diff --git a/source/kde/kdelibs/fixPopupForPlasmaboard.diff b/source/kde/kdelibs/fixPopupForPlasmaboard.diff
new file mode 100644
index 00000000..cf6dec7c
--- /dev/null
+++ b/source/kde/kdelibs/fixPopupForPlasmaboard.diff
@@ -0,0 +1,43 @@
+Index: kdelibs/plasma/popupapplet.cpp
+===================================================================
+--- kdelibs/plasma/popupapplet.cpp (Revision 976120)
++++ kdelibs/plasma/popupapplet.cpp (Arbeitskopie)
+@@ -275,11 +275,7 @@
+ //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.
+- dialog->setWindowFlags(Qt::FramelessWindowHint | Qt::WindowStaysOnTopHint);
+- updateDialogFlags();
+- KWindowSystem::setState(dialog->winId(), NET::SkipTaskbar | NET::SkipPager);
+- dialog->installEventFilter(q);
+-
++
+ q->setMinimumSize(QSize(0, 0));
+ if (gWidget) {
+ Corona *corona = qobject_cast<Corona *>(gWidget->scene());
+@@ -289,14 +285,25 @@
+ corona->addOffscreenWidget(gWidget);
+ dialog->setGraphicsWidget(gWidget);
+ }
++
++ dialog->setWindowFlags(Qt::FramelessWindowHint | Qt::WindowStaysOnTopHint | (gWidget->windowFlags() & Qt::X11BypassWindowManagerHint));
+ } else if (qWidget) {
+ QVBoxLayout *l_layout = new QVBoxLayout(dialog);
+ l_layout->setSpacing(0);
+ l_layout->setMargin(0);
+ l_layout->addWidget(qWidget);
+ dialog->adjustSize();
++
++ dialog->setWindowFlags(Qt::FramelessWindowHint | Qt::WindowStaysOnTopHint | (qWidget->windowFlags() & Qt::X11BypassWindowManagerHint));
+ }
++ else {
++ dialog->setWindowFlags(Qt::FramelessWindowHint | Qt::WindowStaysOnTopHint);
++ }
++ updateDialogFlags();
++ KWindowSystem::setState(dialog->winId(), NET::SkipTaskbar | NET::SkipPager);
++ dialog->installEventFilter(q);
+
++
+ QObject::connect(dialog, SIGNAL(dialogResized()), q, SLOT(dialogSizeChanged()));
+ QObject::connect(dialog, SIGNAL(dialogVisible(bool)), q, SLOT(dialogStatusChanged(bool)));
+ }