[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    branches/KDE/4.0/kdebase/workspace/kwin/effects
From:       Luboš Luňák <l.lunak () kde ! org>
Date:       2008-01-29 17:03:08
Message-ID: 1201626188.009845.27726.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 768277 by lunakl:

Temporary hack for #156798 until http://lists.kde.org/?l=kwin&m=120138051215450&w=2
is evaluated.
CCBUG: 156798



 M  +19 -0     desktopgrid.cpp  


--- branches/KDE/4.0/kdebase/workspace/kwin/effects/desktopgrid.cpp #768276:768277
@@ -29,6 +29,10 @@
 #include <netwm_def.h>
 #include <qevent.h>
 
+#ifdef KWIN_HAVE_OPENGL_COMPOSITING
+#include <GL/gl.h>
+#endif
+
 namespace KWin
 {
 
@@ -132,13 +136,28 @@
     if( window_move != NULL )
         desktop_with_move = window_move->isOnAllDesktops()
             ? posToDesktop( window_move_pos - window_move_diff ) : window_move->desktop();
+#ifdef KWIN_HAVE_OPENGL_COMPOSITING
+    glPushAttrib( GL_SCISSOR_BIT );
+    glEnable( GL_SCISSOR_TEST );
+#endif
     for( int desktop = 1;
          desktop <= effects->numberOfDesktops();
          ++desktop )
         {
         if( desktop != desktop_with_move )
+            {
+#ifdef KWIN_HAVE_OPENGL_COMPOSITING
+            QRect area = desktopRect( desktop, true );
+            int dh = displayHeight();
+            // Scissor rect has to be given in OpenGL coords
+            glScissor( area.x(), dh - area.y() - area.height(), area.width(), area.height());
+#endif
             paintScreenDesktop( desktop, mask, region, data );
+            }
         }
+#ifdef KWIN_HAVE_OPENGL_COMPOSITING
+    glPopAttrib();
+#endif
     // paint the desktop with the window being moved as the last one, i.e. on top of others
     if( desktop_with_move != -1 )
         paintScreenDesktop( desktop_with_move, mask, region, data );
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic