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
[email protected]
https://mail.kde.org/mailman/listinfo/plasma-devel