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