aboutsummaryrefslogtreecommitdiffstats
path: root/recipes/qt4/qt-4.6.0/0998-Set-stacking-class-for-stays-on-top-windows-in-DFB.patch
blob: b8687949e02177c6b53615a6b7d9a06dd83f66a6 (plain)
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
From 472c13edc85a6c7efef1e3b904333d0c9a5f9da6 Mon Sep 17 00:00:00 2001
From: Anders Bakken <anders.bakken@nokia.com>
Date: Thu, 3 Dec 2009 08:55:20 -0800
Subject: [PATCH 0998/1244] Set stacking class for stays-on-top windows in DFB

For better compatibility with non-QWS DirectFB apps running in the same
session we should set the stacking class of Windows that have the
StaysOnTop flag set. This corresponds nicely to DWSC_UPPER.

Reviewed-by: Jervey Kong <jervey.kong@nokia.com>
---
 .../gfxdrivers/directfb/qdirectfbwindowsurface.cpp |    4 +++-
 1 files changed, 3 insertions(+), 1 deletions(-)

diff --git a/src/plugins/gfxdrivers/directfb/qdirectfbwindowsurface.cpp b/src/plugins/gfxdrivers/directfb/qdirectfbwindowsurface.cpp
index 021d52e..b79418a 100644
--- a/src/plugins/gfxdrivers/directfb/qdirectfbwindowsurface.cpp
+++ b/src/plugins/gfxdrivers/directfb/qdirectfbwindowsurface.cpp
@@ -128,7 +128,6 @@ IDirectFBWindow *QDirectFBWindowSurface::directFBWindow() const
     return (dfbWindow ? dfbWindow : (sibling ? sibling->dfbWindow : 0));
 }
 
-
 void QDirectFBWindowSurface::createWindow(const QRect &rect)
 {
     IDirectFBDisplayLayer *layer = screen->dfbDisplayLayer();
@@ -169,6 +168,9 @@ void QDirectFBWindowSurface::createWindow(const QRect &rect)
         DirectFBErrorFatal("QDirectFBWindowSurface::createWindow", result);
 
     if (window()) {
+        if (window()->windowFlags() & Qt::WindowStaysOnTopHint) {
+            dfbWindow->SetStackingClass(dfbWindow, DWSC_UPPER);
+        }
         DFBWindowID winid;
         result = dfbWindow->GetID(dfbWindow, &winid);
         if (result != DFB_OK) {
-- 
1.6.5