Hey kwinners,

Apparently, we've had complaints that the panel shown on the desktopgrid is 
the same for all virtual desktops, even when configured to only show windows 
from the current virtual desktops. As we have only one panel which is shown 
for all virtual desktops and we just change that panel based on current 
virtual desktops, it's not easy to solve.

The attached patch hides this issue by simply fading out the panel when the 
desktopgrid is activated and fades it back in when the you zoom into a 
desktop.

OK to commit?
-- 
sebas

 http://www.kde.org | http://vizZzion.org |  GPG Key ID: 9119 0EF9 

diff --git a/workspace/kwin/effects/desktopgrid/desktopgrid.cpp b/workspace/kwin/effects/desktopgrid/desktopgrid.cpp
index 0839374..6687623 100644
--- a/workspace/kwin/effects/desktopgrid/desktopgrid.cpp
+++ b/workspace/kwin/effects/desktopgrid/desktopgrid.cpp
@@ -217,7 +217,10 @@ void DesktopGridEffect::paintWindow( EffectWindow* w, int mask, QRegion region,
         // Don't change brightness of windows on all desktops as this causes flickering
         if( !w->isOnAllDesktops() || w->isDesktop() )
             data.brightness *= 1.0 - ( 0.3 * ( 1.0 - hoverTimeline[paintingDesktop - 1].value() ));
-        
+
+        if ( w->isDock() )
+            data.opacity = 1 - timeline.value();
+
         for( int screen = 0; screen < effects->numScreens(); screen++ )
             {
             // Assume desktop windows can never be on two screens at once (Plasma makes one window per screen)
@@ -470,7 +473,7 @@ QPoint DesktopGridEffect::unscalePos( const QPoint& pos, int* desktop ) const
     {
     int screen = effects->screenNumber( pos );
     QRect screenGeom = effects->clientArea( ScreenArea, screen, 0 );
-    
+
     //double progress = timeline.value();
     double scaledX = /*interpolate(
         ( pos.x() - screenGeom.x() + unscaledBorder[screen] / 2.0 ) / ( screenGeom.width() + unscaledBorder[screen] ) + activeCell.x() - 1,*/
@@ -518,7 +521,7 @@ int DesktopGridEffect::posToDesktop( const QPoint& pos ) const
     { // Copied from unscalePos()
     int screen = effects->screenNumber( pos );
     QRect screenGeom = effects->clientArea( ScreenArea, screen, 0 );
-    
+
     //double progress = timeline.value();
     double scaledX = /*interpolate(
         ( pos.x() - screenGeom.x() + unscaledBorder[screen] / 2.0 ) / ( screenGeom.width() + unscaledBorder[screen] ) + activeCell.x() - 1,*/
_______________________________________________
Plasma-devel mailing list
Plasma-devel@kde.org
https://mail.kde.org/mailman/listinfo/plasma-devel

Reply via email to