Elevate highlighted window when alt-tabbing.

svn path=/trunk/KDE/kdebase/workspace/; revision=760808
This commit is contained in:
Rivo Laks 2008-01-13 13:08:46 +00:00
parent 0d64af45ce
commit de40298f2c
2 changed files with 27 additions and 2 deletions

View file

@ -42,6 +42,7 @@ KWIN_EFFECT( boxswitch, BoxSwitchEffect )
BoxSwitchEffect::BoxSwitchEffect()
: mActivated( 0 )
, mMode( 0 )
, selected_window( 0 )
, painting_desktop( 0 )
{
frame_margin = 10;
@ -271,7 +272,7 @@ void BoxSwitchEffect::tabBoxUpdated()
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 @@ void BoxSwitchEffect::setActive()
if( mMode == TabBoxWindowsMode )
{
original_windows = effects->currentTabBoxWindowList();
selected_window = effects->currentTabBoxWindow();
setSelectedWindow( effects->currentTabBoxWindow());
}
else
{
@ -356,6 +357,7 @@ void BoxSwitchEffect::setInactive()
delete i;
}
windows.clear();
setSelectedWindow( 0 );
}
else
{ // DesktopMode
@ -367,6 +369,27 @@ void BoxSwitchEffect::setInactive()
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 );

View file

@ -56,6 +56,7 @@ class BoxSwitchEffect
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 @@ class BoxSwitchEffect
void moveResizeInputWindow( int x, int y, int width, int height );
void calculateFrameSize();
void calculateItemSizes();
void setSelectedWindow( EffectWindow* w );
void paintFrame();
void paintHighlight( QRect area );