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

List:       kde-commits
Subject:    branches/KDE/4.4/kdebase/workspace/kwin/effects
From:       Martin Gräßlin <ubuntu () martin-graesslin ! com>
Date:       2010-03-14 16:26:10
Message-ID: 1268583970.555981.8043.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 1103210 by graesslin:

Backport rev 1103206:
Rearrange windows when the gemoetry changes in both pw and dg in pw mode.
CCBUG: 228829



 M  +25 -0     desktopgrid/desktopgrid.cpp  
 M  +1 -0      desktopgrid/desktopgrid.h  
 M  +10 -0     presentwindows/presentwindows.cpp  
 M  +1 -0      presentwindows/presentwindows.h  


--- branches/KDE/4.4/kdebase/workspace/kwin/effects/desktopgrid/desktopgrid.cpp \
#1103209:1103210 @@ -419,6 +419,31 @@
     effects->addRepaintFull();
     }
 
+void DesktopGridEffect::windowGeometryShapeChanged( EffectWindow* w, const QRect& \
old ) +    {
+    Q_UNUSED( old )
+    if( !activated )
+        return;
+    if( w == windowMove && wasWindowMove )
+        return;
+    if( isUsingPresentWindows() )
+        {
+        if( w->isOnAllDesktops() )
+            {
+            for( int i=0; i<effects->numberOfDesktops(); i++ )
+                {
+                WindowMotionManager& manager = \
m_managers[i*effects->numScreens()+w->screen()]; +                \
m_proxy->calculateWindowTransformations(manager.managedWindows(), w->screen(), \
manager); +                }
+            }
+        else
+            {
+            WindowMotionManager& manager = \
m_managers[(w->desktop()-1)*effects->numScreens()+w->screen()]; +            \
m_proxy->calculateWindowTransformations(manager.managedWindows(), w->screen(), \
manager); +            }
+        }
+    }
+
 void DesktopGridEffect::windowInputMouseEvent( Window, QEvent* e )
     {
     if((   e->type() != QEvent::MouseMove
--- branches/KDE/4.4/kdebase/workspace/kwin/effects/desktopgrid/desktopgrid.h \
#1103209:1103210 @@ -46,6 +46,7 @@
         virtual void paintWindow( EffectWindow* w, int mask, QRegion region, \
WindowPaintData& data );  virtual void windowClosed( EffectWindow* w );
         virtual void windowAdded( EffectWindow* w );
+        virtual void windowGeometryShapeChanged( EffectWindow* w, const QRect& old \
);  virtual void windowInputMouseEvent( Window w, QEvent* e );
         virtual void grabbedKeyboardEvent( QKeyEvent* e );
         virtual bool borderActivated( ElectricBorder border );
--- branches/KDE/4.4/kdebase/workspace/kwin/effects/presentwindows/presentwindows.cpp \
#1103209:1103210 @@ -408,6 +408,16 @@
     m_motionManager.unmanage( w );
     }
 
+void PresentWindowsEffect::windowGeometryShapeChanged( EffectWindow* w, const QRect& \
old ) +    {
+    Q_UNUSED( old )
+    if( !m_activated )
+        return;
+    if( !m_windowData.contains( w ))
+        return;
+    rearrangeWindows();
+    }
+
 bool PresentWindowsEffect::borderActivated( ElectricBorder border )
     {
     if( !m_borderActivate.contains( border ) && !m_borderActivateAll.contains( \
                border ) )
--- branches/KDE/4.4/kdebase/workspace/kwin/effects/presentwindows/presentwindows.h \
#1103209:1103210 @@ -79,6 +79,7 @@
         virtual void windowAdded( EffectWindow *w );
         virtual void windowClosed( EffectWindow *w );
         virtual void windowDeleted( EffectWindow *w );
+        virtual void windowGeometryShapeChanged( EffectWindow* w, const QRect& old \
);  virtual bool borderActivated( ElectricBorder border );
         virtual void windowInputMouseEvent( Window w, QEvent *e );
         virtual void grabbedKeyboardEvent( QKeyEvent *e );


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

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