[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:       Rivo Laks <rivolaks () hot ! ee>
Date:       2008-01-27 12:32:24
Message-ID: 1201437144.024913.17638.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 767071 by rivol:

Backport r760808:
Elevate highlighted window when alt-tabbing.


 M  +25 -2     boxswitch.cpp  
 M  +2 -0      boxswitch.h  


--- branches/KDE/4.0/kdebase/workspace/kwin/effects/boxswitch.cpp #767070:767071
@@ -42,6 +42,7 @@
 BoxSwitchEffect::BoxSwitchEffect()
     : mActivated( 0 )
     , mMode( 0 )
+    , selected_window( 0 )
     , painting_desktop( 0 )
     {
     frame_margin = 10;
@@ -271,7 +272,7 @@
                     effects->addRepaint( windows.value( selected_window )->area );
                 selected_window->addRepaintFull();
                 }
-            selected_window = effects->currentTabBoxWindow();
+            setSelectedWindow( effects->currentTabBoxWindow());
             if( windows.contains( selected_window ))
                 effects->addRepaint( windows.value( selected_window )->area );
             selected_window->addRepaintFull();
@@ -306,7 +307,7 @@
     if( mMode == TabBoxWindowsMode )
         {
         original_windows = effects->currentTabBoxWindowList();
-        selected_window = effects->currentTabBoxWindow();
+        setSelectedWindow( effects->currentTabBoxWindow());
         }
     else
         {
@@ -356,6 +357,7 @@
             delete i;
             }
         windows.clear();
+        setSelectedWindow( 0 );
         }
     else
         { // DesktopMode
@@ -367,6 +369,27 @@
     frame_area = QRect();
     }
 
+void BoxSwitchEffect::setSelectedWindow( EffectWindow* w )
+    {
+    if( selected_window )
+        {
+        effects->setElevatedWindow( selected_window, false );
+        }
+    selected_window = w;
+    if( w )
+        {
+        effects->setElevatedWindow( selected_window, true );
+        }
+    }
+
+void BoxSwitchEffect::windowClosed( EffectWindow* w )
+    {
+    if( w == selected_window )
+        {
+        setSelectedWindow( 0 );
+        }
+    }
+
 void BoxSwitchEffect::moveResizeInputWindow( int x, int y, int width, int height )
     {
     XMoveWindow( display(), mInput, x, y );
--- branches/KDE/4.0/kdebase/workspace/kwin/effects/boxswitch.h #767070:767071
@@ -56,6 +56,7 @@
         virtual void tabBoxAdded( int mode );
         virtual void tabBoxClosed();
         virtual void tabBoxUpdated();
+        virtual void windowClosed( EffectWindow* w );
     private:
         class ItemInfo;
         void setActive();
@@ -63,6 +64,7 @@
         void moveResizeInputWindow( int x, int y, int width, int height );
         void calculateFrameSize();
         void calculateItemSizes();
+        void setSelectedWindow( EffectWindow* w );
 
         void paintFrame();
         void paintHighlight( QRect area );
[prev in list] [next in list] [prev in thread] [next in thread] 

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