summaryrefslogtreecommitdiffstats
path: root/source/kde/kdelibs/fixPopupForPlasmaboard.diff
blob: cf6dec7caf9cdf6ad5b7a7aeb899f0afe00b69c0 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
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)));
             }