src/plugins/gfxdrivers/directfb/qdirectfbwindowsurface.cpp
changeset 3 41300fa6a67c
parent 0 1918ee327afb
child 4 3b1da2848fc7
child 7 f7bc934e204c
child 18 2f34d5167611
--- a/src/plugins/gfxdrivers/directfb/qdirectfbwindowsurface.cpp	Tue Jan 26 12:42:25 2010 +0200
+++ b/src/plugins/gfxdrivers/directfb/qdirectfbwindowsurface.cpp	Tue Feb 02 00:43:10 2010 +0200
@@ -128,7 +128,6 @@
     return (dfbWindow ? dfbWindow : (sibling ? sibling->dfbWindow : 0));
 }
 
-
 void QDirectFBWindowSurface::createWindow(const QRect &rect)
 {
     IDirectFBDisplayLayer *layer = screen->dfbDisplayLayer();
@@ -138,7 +137,7 @@
     DFBWindowDescription description;
     memset(&description, 0, sizeof(DFBWindowDescription));
 
-    description.caps = DWCAPS_NODECORATION|DWCAPS_DOUBLEBUFFER;
+    description.caps = DWCAPS_NODECORATION;
     description.flags = DWDESC_CAPS|DWDESC_SURFACE_CAPS|DWDESC_PIXELFORMAT|DWDESC_HEIGHT|DWDESC_WIDTH|DWDESC_POSX|DWDESC_POSY;
 #if (Q_DIRECTFB_VERSION >= 0x010200)
     description.flags |= DWDESC_OPTIONS;
@@ -169,6 +168,9 @@
         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) {
@@ -311,7 +313,7 @@
     if (!dfbSurface || !(flipFlags & DSFLIP_BLIT) || region.isEmpty())
         return false;
     dfbSurface->SetBlittingFlags(dfbSurface, DSBLIT_NOFX);
-    if (region.numRects() == 1) {
+    if (region.rectCount() == 1) {
         scrollSurface(dfbSurface, region.boundingRect(), dx, dy);
     } else {
         const QVector<QRect> rects = region.rects();