Window specific setting to skip window switchers (tabbox, present windows, desktop grid).
FEATURE: 171192 CCBUG: 179723 svn path=/trunk/KDE/kdebase/workspace/; revision=1122404
This commit is contained in:
parent
1a02507f50
commit
fa7f160cb3
16 changed files with 280 additions and 194 deletions
|
@ -1429,6 +1429,15 @@ void Client::setSkipPager( bool b )
|
|||
updateWindowRules();
|
||||
}
|
||||
|
||||
void Client::setSkipSwitcher( bool set )
|
||||
{
|
||||
set = rules()->checkSkipSwitcher( set );
|
||||
if( set == skipSwitcher() )
|
||||
return;
|
||||
skip_switcher = set;
|
||||
updateWindowRules();
|
||||
}
|
||||
|
||||
void Client::setModal( bool m )
|
||||
{ // Qt-3.2 can have even modal normal windows :(
|
||||
if( modal == m )
|
||||
|
|
9
client.h
9
client.h
|
@ -179,6 +179,9 @@ class Client
|
|||
bool skipPager() const;
|
||||
void setSkipPager( bool );
|
||||
|
||||
bool skipSwitcher() const;
|
||||
void setSkipSwitcher( bool set );
|
||||
|
||||
bool keepAbove() const;
|
||||
void setKeepAbove( bool );
|
||||
bool keepBelow() const;
|
||||
|
@ -556,6 +559,7 @@ class Client
|
|||
uint Pping : 1; ///< Does it support _NET_WM_PING?
|
||||
uint input : 1; ///< Does the window want input in its wm_hints
|
||||
uint skip_pager : 1;
|
||||
uint skip_switcher : 1;
|
||||
uint motif_may_resize : 1;
|
||||
uint motif_may_move : 1;
|
||||
uint motif_may_close : 1;
|
||||
|
@ -805,6 +809,11 @@ inline bool Client::skipPager() const
|
|||
return skip_pager;
|
||||
}
|
||||
|
||||
inline bool Client::skipSwitcher() const
|
||||
{
|
||||
return skip_switcher;
|
||||
}
|
||||
|
||||
inline bool Client::keepAbove() const
|
||||
{
|
||||
return keep_above;
|
||||
|
|
|
@ -1544,6 +1544,13 @@ EffectWindowList EffectWindowImpl::mainWindows() const
|
|||
return EffectWindowList();
|
||||
}
|
||||
|
||||
bool EffectWindowImpl::isSkipSwitcher() const
|
||||
{
|
||||
if( Client* c = dynamic_cast< Client* >( toplevel ))
|
||||
return c->skipSwitcher();
|
||||
return false;
|
||||
}
|
||||
|
||||
WindowQuadList EffectWindowImpl::buildQuads( bool force ) const
|
||||
{
|
||||
return sceneWindow()->buildQuads( force );
|
||||
|
|
|
@ -271,6 +271,8 @@ class EffectWindowImpl : public EffectWindow
|
|||
virtual EffectWindow* findModal();
|
||||
virtual EffectWindowList mainWindows() const;
|
||||
|
||||
virtual bool isSkipSwitcher() const;
|
||||
|
||||
virtual WindowQuadList buildQuads( bool force = false ) const;
|
||||
|
||||
virtual void minimize() const;
|
||||
|
|
|
@ -346,7 +346,7 @@ void DesktopGridEffect::paintWindow( EffectWindow* w, int mask, QRegion region,
|
|||
d.xTranslate += qRound( newPos.x() - w->x() );
|
||||
d.yTranslate += qRound( newPos.y() - w->y() );
|
||||
|
||||
if( isUsingPresentWindows() && w->isDock() )
|
||||
if( isUsingPresentWindows() && ( w->isDock() || w->isSkipSwitcher() ) )
|
||||
{
|
||||
// fade out panels if present windows is used
|
||||
d.opacity *= ( 1.0 - timeline.value() );
|
||||
|
@ -1200,7 +1200,7 @@ void DesktopGridEffect::setup()
|
|||
foreach( EffectWindow* w, effects->stackingOrder() )
|
||||
{
|
||||
if( w->isOnDesktop( i ) && w->screen() == j && !w->isDesktop() && !w->isDock() &&
|
||||
w->visibleInClientGroup() )
|
||||
w->visibleInClientGroup() && !w->isSkipSwitcher() )
|
||||
{
|
||||
manager.manage( w );
|
||||
}
|
||||
|
|
|
@ -1670,6 +1670,8 @@ bool PresentWindowsEffect::isSelectableWindow( EffectWindow *w )
|
|||
return false;
|
||||
if( !w->visibleInClientGroup() )
|
||||
return false;
|
||||
if( w->isSkipSwitcher() )
|
||||
return false;
|
||||
switch( m_mode )
|
||||
{
|
||||
case ModeAllDesktops:
|
||||
|
|
|
@ -96,6 +96,7 @@ RulesWidget::RulesWidget( QWidget* parent )
|
|||
SETUP( noborder, set );
|
||||
SETUP( skiptaskbar, set );
|
||||
SETUP( skippager, set );
|
||||
SETUP( skipswitcher, set );
|
||||
SETUP( acceptfocus, force );
|
||||
SETUP( closeable, force );
|
||||
SETUP( autogroup, force );
|
||||
|
@ -147,6 +148,7 @@ UPDATE_ENABLE_SLOT( below )
|
|||
UPDATE_ENABLE_SLOT( noborder )
|
||||
UPDATE_ENABLE_SLOT( skiptaskbar )
|
||||
UPDATE_ENABLE_SLOT( skippager )
|
||||
UPDATE_ENABLE_SLOT( skipswitcher )
|
||||
UPDATE_ENABLE_SLOT( acceptfocus )
|
||||
UPDATE_ENABLE_SLOT( closeable )
|
||||
UPDATE_ENABLE_SLOT( autogroup )
|
||||
|
@ -436,6 +438,7 @@ void RulesWidget::setRules( Rules* rules )
|
|||
CHECKBOX_SET_RULE( noborder, );
|
||||
CHECKBOX_SET_RULE( skiptaskbar, );
|
||||
CHECKBOX_SET_RULE( skippager, );
|
||||
CHECKBOX_SET_RULE( skipswitcher, );
|
||||
CHECKBOX_FORCE_RULE( acceptfocus, );
|
||||
CHECKBOX_FORCE_RULE( closeable, );
|
||||
CHECKBOX_FORCE_RULE( autogroup, );
|
||||
|
@ -530,6 +533,7 @@ Rules* RulesWidget::rules() const
|
|||
CHECKBOX_SET_RULE( noborder, );
|
||||
CHECKBOX_SET_RULE( skiptaskbar, );
|
||||
CHECKBOX_SET_RULE( skippager, );
|
||||
CHECKBOX_SET_RULE( skipswitcher, );
|
||||
CHECKBOX_FORCE_RULE( acceptfocus, );
|
||||
CHECKBOX_FORCE_RULE( closeable, );
|
||||
CHECKBOX_FORCE_RULE( autogroup, );
|
||||
|
@ -651,6 +655,7 @@ void RulesWidget::prefillUnusedValues( const KWindowInfo& info )
|
|||
CHECKBOX_PREFILL( noborder,, info.frameGeometry() == info.geometry() );
|
||||
CHECKBOX_PREFILL( skiptaskbar,, info.state() & NET::SkipTaskbar );
|
||||
CHECKBOX_PREFILL( skippager,, info.state() & NET::SkipPager );
|
||||
CHECKBOX_PREFILL( skipswitcher,, false );
|
||||
//CHECKBOX_PREFILL( acceptfocus, );
|
||||
//CHECKBOX_PREFILL( closeable, );
|
||||
//CHECKBOX_PREFILL( autogroup, );
|
||||
|
|
|
@ -70,6 +70,7 @@ class RulesWidget
|
|||
void updateEnablenoborder();
|
||||
void updateEnableskiptaskbar();
|
||||
void updateEnableskippager();
|
||||
void updateEnableskipswitcher();
|
||||
void updateEnableacceptfocus();
|
||||
void updateEnablecloseable();
|
||||
void updateEnableautogroup();
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>685</width>
|
||||
<height>441</height>
|
||||
<height>462</height>
|
||||
</rect>
|
||||
</property>
|
||||
<layout class="QVBoxLayout">
|
||||
|
@ -19,16 +19,8 @@
|
|||
<property name="currentIndex">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<widget class="QWidget" name="TabPage1" >
|
||||
<property name="geometry" >
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>681</width>
|
||||
<height>416</height>
|
||||
</rect>
|
||||
</property>
|
||||
<attribute name="title" >
|
||||
<widget class="QWidget" name="TabPage1">
|
||||
<attribute name="title">
|
||||
<string>&Window</string>
|
||||
</attribute>
|
||||
<layout class="QGridLayout">
|
||||
|
@ -246,16 +238,8 @@
|
|||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<widget class="QWidget" name="TabPage2" >
|
||||
<property name="geometry" >
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>681</width>
|
||||
<height>416</height>
|
||||
</rect>
|
||||
</property>
|
||||
<attribute name="title" >
|
||||
<widget class="QWidget" name="TabPage2">
|
||||
<attribute name="title">
|
||||
<string>Window &Extra</string>
|
||||
</attribute>
|
||||
<layout class="QGridLayout">
|
||||
|
@ -542,16 +526,8 @@
|
|||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<widget class="QWidget" name="TabPage3" >
|
||||
<property name="geometry" >
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>681</width>
|
||||
<height>416</height>
|
||||
</rect>
|
||||
</property>
|
||||
<attribute name="title" >
|
||||
<widget class="QWidget" name="TabPage3">
|
||||
<attribute name="title">
|
||||
<string>&Geometry</string>
|
||||
</attribute>
|
||||
<layout class="QGridLayout">
|
||||
|
@ -1088,16 +1064,8 @@
|
|||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<widget class="QWidget" name="TabPage4" >
|
||||
<property name="geometry" >
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>681</width>
|
||||
<height>416</height>
|
||||
</rect>
|
||||
</property>
|
||||
<attribute name="title" >
|
||||
<widget class="QWidget" name="TabPage4">
|
||||
<attribute name="title">
|
||||
<string>&Preferences</string>
|
||||
</attribute>
|
||||
<layout class="QGridLayout">
|
||||
|
@ -1115,13 +1083,6 @@
|
|||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="0">
|
||||
<widget class="QCheckBox" name="enable_skippager">
|
||||
<property name="text">
|
||||
<string>Skip pa&ger</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="0">
|
||||
<widget class="QCheckBox" name="enable_skiptaskbar">
|
||||
<property name="text">
|
||||
|
@ -1136,51 +1097,51 @@
|
|||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="5" column="0">
|
||||
<item row="6" column="0">
|
||||
<widget class="QCheckBox" name="enable_acceptfocus">
|
||||
<property name="text">
|
||||
<string>Accept &focus</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="6" column="0">
|
||||
<item row="7" column="0">
|
||||
<widget class="QCheckBox" name="enable_closeable">
|
||||
<property name="text">
|
||||
<string>&Closeable</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="7" column="0" >
|
||||
<widget class="QCheckBox" name="enable_autogroup" >
|
||||
<property name="text" >
|
||||
<item row="8" column="0">
|
||||
<widget class="QCheckBox" name="enable_autogroup">
|
||||
<property name="text">
|
||||
<string>Autogroup with &identical</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="8" column="0" >
|
||||
<widget class="QCheckBox" name="enable_autogroupfg" >
|
||||
<property name="text" >
|
||||
<item row="9" column="0">
|
||||
<widget class="QCheckBox" name="enable_autogroupfg">
|
||||
<property name="text">
|
||||
<string>Autog&roup in foreground</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="9" column="0" >
|
||||
<widget class="QCheckBox" name="enable_autogroupid" >
|
||||
<property name="text" >
|
||||
<item row="10" column="0">
|
||||
<widget class="QCheckBox" name="enable_autogroupid">
|
||||
<property name="text">
|
||||
<string>Autogroup by I&D</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="10" column="0" >
|
||||
<widget class="QCheckBox" name="enable_opacityactive" >
|
||||
<property name="text" >
|
||||
<item row="11" column="0">
|
||||
<widget class="QCheckBox" name="enable_opacityactive">
|
||||
<property name="text">
|
||||
<string>A&ctive opacity in %</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="10" column="1" >
|
||||
<widget class="KComboBox" name="rule_opacityactive" >
|
||||
<property name="enabled" >
|
||||
<item row="11" column="1">
|
||||
<widget class="KComboBox" name="rule_opacityactive">
|
||||
<property name="enabled">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<item>
|
||||
|
@ -1200,9 +1161,9 @@
|
|||
</item>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="10" column="2" colspan="2" >
|
||||
<widget class="KRestrictedLine" name="opacityactive" >
|
||||
<property name="enabled" >
|
||||
<item row="11" column="2" colspan="2">
|
||||
<widget class="KRestrictedLine" name="opacityactive">
|
||||
<property name="enabled">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="validChars">
|
||||
|
@ -1260,7 +1221,7 @@
|
|||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="5" column="2">
|
||||
<item row="6" column="2">
|
||||
<widget class="QCheckBox" name="acceptfocus">
|
||||
<property name="enabled">
|
||||
<bool>false</bool>
|
||||
|
@ -1270,7 +1231,7 @@
|
|||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="6" column="2">
|
||||
<item row="7" column="2">
|
||||
<widget class="QCheckBox" name="closeable">
|
||||
<property name="enabled">
|
||||
<bool>false</bool>
|
||||
|
@ -1280,102 +1241,36 @@
|
|||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="7" column="2" >
|
||||
<widget class="QCheckBox" name="autogroup" >
|
||||
<property name="enabled" >
|
||||
<item row="8" column="2">
|
||||
<widget class="QCheckBox" name="autogroup">
|
||||
<property name="enabled">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="text" >
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="8" column="2" >
|
||||
<widget class="QCheckBox" name="autogroupfg" >
|
||||
<property name="enabled" >
|
||||
<item row="9" column="2">
|
||||
<widget class="QCheckBox" name="autogroupfg">
|
||||
<property name="enabled">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="text" >
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="9" column="2" >
|
||||
<widget class="KLineEdit" name="autogroupid" >
|
||||
<property name="enabled" >
|
||||
<item row="10" column="2">
|
||||
<widget class="KLineEdit" name="autogroupid">
|
||||
<property name="enabled">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="9" column="1" >
|
||||
<widget class="KComboBox" name="rule_autogroupid" >
|
||||
<property name="enabled" >
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<item>
|
||||
<property name="text" >
|
||||
<string>Do Not Affect</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text" >
|
||||
<string>Force</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text" >
|
||||
<string>Force Temporarily</string>
|
||||
</property>
|
||||
</item>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="8" column="1" >
|
||||
<widget class="KComboBox" name="rule_autogroupfg" >
|
||||
<property name="enabled" >
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<item>
|
||||
<property name="text" >
|
||||
<string>Do Not Affect</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text" >
|
||||
<string>Force</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text" >
|
||||
<string>Force Temporarily</string>
|
||||
</property>
|
||||
</item>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="7" column="1" >
|
||||
<widget class="KComboBox" name="rule_autogroup" >
|
||||
<property name="enabled" >
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<item>
|
||||
<property name="text" >
|
||||
<string>Do Not Affect</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text" >
|
||||
<string>Force</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text" >
|
||||
<string>Force Temporarily</string>
|
||||
</property>
|
||||
</item>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="6" column="1" >
|
||||
<widget class="KComboBox" name="rule_closeable" >
|
||||
<property name="enabled" >
|
||||
<item row="10" column="1">
|
||||
<widget class="KComboBox" name="rule_autogroupid">
|
||||
<property name="enabled">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<item>
|
||||
|
@ -1395,7 +1290,73 @@
|
|||
</item>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="5" column="1">
|
||||
<item row="9" column="1">
|
||||
<widget class="KComboBox" name="rule_autogroupfg">
|
||||
<property name="enabled">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>Do Not Affect</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>Force</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>Force Temporarily</string>
|
||||
</property>
|
||||
</item>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="8" column="1">
|
||||
<widget class="KComboBox" name="rule_autogroup">
|
||||
<property name="enabled">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>Do Not Affect</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>Force</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>Force Temporarily</string>
|
||||
</property>
|
||||
</item>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="7" column="1">
|
||||
<widget class="KComboBox" name="rule_closeable">
|
||||
<property name="enabled">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>Do Not Affect</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>Force</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>Force Temporarily</string>
|
||||
</property>
|
||||
</item>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="6" column="1">
|
||||
<widget class="KComboBox" name="rule_acceptfocus">
|
||||
<property name="enabled">
|
||||
<bool>false</bool>
|
||||
|
@ -1602,7 +1563,7 @@
|
|||
</item>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="14" column="1" >
|
||||
<item row="15" column="1">
|
||||
<spacer>
|
||||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
|
@ -1618,9 +1579,9 @@
|
|||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item row="11" column="1" >
|
||||
<widget class="KComboBox" name="rule_opacityinactive" >
|
||||
<property name="enabled" >
|
||||
<item row="12" column="1">
|
||||
<widget class="KComboBox" name="rule_opacityinactive">
|
||||
<property name="enabled">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<item>
|
||||
|
@ -1640,9 +1601,9 @@
|
|||
</item>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="11" column="2" colspan="2" >
|
||||
<widget class="KRestrictedLine" name="opacityinactive" >
|
||||
<property name="enabled" >
|
||||
<item row="12" column="2" colspan="2">
|
||||
<widget class="KRestrictedLine" name="opacityinactive">
|
||||
<property name="enabled">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="validChars">
|
||||
|
@ -1650,16 +1611,16 @@
|
|||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="11" column="0" >
|
||||
<widget class="QCheckBox" name="enable_opacityinactive" >
|
||||
<property name="text" >
|
||||
<item row="12" column="0">
|
||||
<widget class="QCheckBox" name="enable_opacityinactive">
|
||||
<property name="text">
|
||||
<string>I&nactive opacity in %</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="13" column="0" >
|
||||
<widget class="QCheckBox" name="enable_shortcut" >
|
||||
<property name="text" >
|
||||
<item row="14" column="0">
|
||||
<widget class="QCheckBox" name="enable_shortcut">
|
||||
<property name="text">
|
||||
<string>Shortcut</string>
|
||||
</property>
|
||||
<property name="shortcut">
|
||||
|
@ -1667,9 +1628,9 @@
|
|||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="13" column="1" >
|
||||
<widget class="KComboBox" name="rule_shortcut" >
|
||||
<property name="enabled" >
|
||||
<item row="14" column="1">
|
||||
<widget class="KComboBox" name="rule_shortcut">
|
||||
<property name="enabled">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<item>
|
||||
|
@ -1704,28 +1665,28 @@
|
|||
</item>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="13" column="5" >
|
||||
<widget class="QPushButton" name="shortcut_edit" >
|
||||
<property name="text" >
|
||||
<item row="14" column="5">
|
||||
<widget class="QPushButton" name="shortcut_edit">
|
||||
<property name="text">
|
||||
<string>Edit...</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="13" column="2" colspan="3" >
|
||||
<widget class="KRestrictedLine" name="shortcut" >
|
||||
<property name="enabled" >
|
||||
<item row="14" column="2" colspan="3">
|
||||
<widget class="KRestrictedLine" name="shortcut">
|
||||
<property name="enabled">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="12" column="0">
|
||||
<item row="13" column="0">
|
||||
<widget class="QCheckBox" name="enable_tilingoption">
|
||||
<property name="text">
|
||||
<string>T&iling</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="12" column="1">
|
||||
<item row="13" column="1">
|
||||
<widget class="KComboBox" name="rule_tilingoption">
|
||||
<property name="enabled">
|
||||
<bool>false</bool>
|
||||
|
@ -1747,7 +1708,7 @@
|
|||
</item>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="12" column="2">
|
||||
<item row="13" column="2">
|
||||
<widget class="KComboBox" name="tilingoption">
|
||||
<property name="enabled">
|
||||
<bool>false</bool>
|
||||
|
@ -1764,18 +1725,71 @@
|
|||
</item>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="0">
|
||||
<widget class="QCheckBox" name="enable_skippager">
|
||||
<property name="text">
|
||||
<string>Skip pa&ger</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="5" column="0">
|
||||
<widget class="QCheckBox" name="enable_skipswitcher">
|
||||
<property name="text">
|
||||
<string>Skip &switcher</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="5" column="1">
|
||||
<widget class="KComboBox" name="rule_skipswitcher">
|
||||
<property name="enabled">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>Do Not Affect</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>Apply Initially</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>Remember</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>Force</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>Apply Now</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>Force Temporarily</string>
|
||||
</property>
|
||||
</item>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="5" column="2">
|
||||
<widget class="QCheckBox" name="skipswitcher">
|
||||
<property name="enabled">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<widget class="QWidget" name="TabPage5" >
|
||||
<property name="geometry" >
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>681</width>
|
||||
<height>416</height>
|
||||
</rect>
|
||||
</property>
|
||||
<attribute name="title" >
|
||||
<widget class="QWidget" name="TabPage5">
|
||||
<attribute name="title">
|
||||
<string>W&orkarounds</string>
|
||||
</attribute>
|
||||
<layout class="QGridLayout">
|
||||
|
@ -2195,7 +2209,7 @@
|
|||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<customwidgets>
|
||||
<customwidgets>
|
||||
<customwidget>
|
||||
<class>KPushButton</class>
|
||||
<extends>QPushButton</extends>
|
||||
|
@ -2280,9 +2294,9 @@
|
|||
<tabstop>enable_skippager</tabstop>
|
||||
<tabstop>rule_skippager</tabstop>
|
||||
<tabstop>skippager</tabstop>
|
||||
<tabstop>enable_acceptfocus</tabstop>
|
||||
<tabstop>rule_acceptfocus</tabstop>
|
||||
<tabstop>acceptfocus</tabstop>
|
||||
<tabstop>enable_skipswitcher</tabstop>
|
||||
<tabstop>rule_skipswitcher</tabstop>
|
||||
<tabstop>skipswitcher</tabstop>
|
||||
<tabstop>enable_closeable</tabstop>
|
||||
<tabstop>rule_closeable</tabstop>
|
||||
<tabstop>closeable</tabstop>
|
||||
|
@ -2326,6 +2340,15 @@
|
|||
<tabstop>enable_disableglobalshortcuts</tabstop>
|
||||
<tabstop>rule_disableglobalshortcuts</tabstop>
|
||||
<tabstop>disableglobalshortcuts</tabstop>
|
||||
<tabstop>enable_autogroupfg</tabstop>
|
||||
<tabstop>enable_autogroupid</tabstop>
|
||||
<tabstop>autogroupfg</tabstop>
|
||||
<tabstop>autogroupid</tabstop>
|
||||
<tabstop>rule_autogroupid</tabstop>
|
||||
<tabstop>rule_autogroupfg</tabstop>
|
||||
<tabstop>enable_acceptfocus</tabstop>
|
||||
<tabstop>rule_acceptfocus</tabstop>
|
||||
<tabstop>acceptfocus</tabstop>
|
||||
</tabstops>
|
||||
<resources/>
|
||||
<connections>
|
||||
|
|
|
@ -170,7 +170,7 @@ X-KDE-Library=kwin4_effect_cooleffect
|
|||
|
||||
#define KWIN_EFFECT_API_MAKE_VERSION( major, minor ) (( major ) << 8 | ( minor ))
|
||||
#define KWIN_EFFECT_API_VERSION_MAJOR 0
|
||||
#define KWIN_EFFECT_API_VERSION_MINOR 133
|
||||
#define KWIN_EFFECT_API_VERSION_MINOR 134
|
||||
#define KWIN_EFFECT_API_VERSION KWIN_EFFECT_API_MAKE_VERSION( \
|
||||
KWIN_EFFECT_API_VERSION_MAJOR, KWIN_EFFECT_API_VERSION_MINOR )
|
||||
|
||||
|
@ -999,6 +999,12 @@ class KWIN_EXPORT EffectWindow
|
|||
virtual EffectWindow* findModal() = 0;
|
||||
virtual EffectWindowList mainWindows() const = 0;
|
||||
|
||||
/**
|
||||
* Returns whether the window should be excluded from window switching effects.
|
||||
* @since 4.5
|
||||
*/
|
||||
virtual bool isSkipSwitcher() const = 0;
|
||||
|
||||
/**
|
||||
* Returns the unmodified window quad list. Can also be used to force rebuilding.
|
||||
*/
|
||||
|
|
|
@ -407,6 +407,7 @@ bool Client::manage( Window w, bool isMapped )
|
|||
setKeepBelow( session->keepBelow );
|
||||
setSkipTaskbar( session->skipTaskbar, true );
|
||||
setSkipPager( session->skipPager );
|
||||
setSkipSwitcher( session->skipSwitcher );
|
||||
setShade( session->shaded ? ShadeNormal : ShadeNone );
|
||||
setOpacity( session->opacity );
|
||||
if( session->maximized != MaximizeRestore )
|
||||
|
@ -469,6 +470,7 @@ bool Client::manage( Window w, bool isMapped )
|
|||
setKeepBelow( rules()->checkKeepBelow( info->state() & NET::KeepBelow, !isMapped ));
|
||||
setSkipTaskbar( rules()->checkSkipTaskbar( info->state() & NET::SkipTaskbar, !isMapped ), true );
|
||||
setSkipPager( rules()->checkSkipPager( info->state() & NET::SkipPager, !isMapped ));
|
||||
setSkipSwitcher( rules()->checkSkipSwitcher( false, !isMapped ));
|
||||
if( info->state() & NET::DemandsAttention )
|
||||
demandAttention();
|
||||
if( info->state() & NET::Modal )
|
||||
|
|
13
rules.cpp
13
rules.cpp
|
@ -61,6 +61,7 @@ Rules::Rules()
|
|||
, shaderule( UnusedSetRule )
|
||||
, skiptaskbarrule( UnusedSetRule )
|
||||
, skippagerrule( UnusedSetRule )
|
||||
, skipswitcherrule( UnusedSetRule )
|
||||
, aboverule( UnusedSetRule )
|
||||
, belowrule( UnusedSetRule )
|
||||
, fullscreenrule( UnusedSetRule )
|
||||
|
@ -165,6 +166,7 @@ void Rules::readFromCfg( const KConfigGroup& cfg )
|
|||
READ_SET_RULE( shade,, false);
|
||||
READ_SET_RULE( skiptaskbar,, false);
|
||||
READ_SET_RULE( skippager,, false);
|
||||
READ_SET_RULE( skipswitcher,, false);
|
||||
READ_SET_RULE( above,, false);
|
||||
READ_SET_RULE( below,, false);
|
||||
READ_SET_RULE( fullscreen,, false);
|
||||
|
@ -253,6 +255,7 @@ void Rules::write( KConfigGroup& cfg ) const
|
|||
WRITE_SET_RULE( shade, );
|
||||
WRITE_SET_RULE( skiptaskbar, );
|
||||
WRITE_SET_RULE( skippager, );
|
||||
WRITE_SET_RULE( skipswitcher, );
|
||||
WRITE_SET_RULE( above, );
|
||||
WRITE_SET_RULE( below, );
|
||||
WRITE_SET_RULE( fullscreen, );
|
||||
|
@ -293,6 +296,7 @@ bool Rules::isEmpty() const
|
|||
&& shaderule == UnusedSetRule
|
||||
&& skiptaskbarrule == UnusedSetRule
|
||||
&& skippagerrule == UnusedSetRule
|
||||
&& skipswitcherrule == UnusedSetRule
|
||||
&& aboverule == UnusedSetRule
|
||||
&& belowrule == UnusedSetRule
|
||||
&& fullscreenrule == UnusedSetRule
|
||||
|
@ -494,6 +498,11 @@ bool Rules::update( Client* c )
|
|||
updated = updated || skippager != c->skipPager();
|
||||
skippager = c->skipPager();
|
||||
}
|
||||
if( skipswitcherrule == ( SetRule )Remember)
|
||||
{
|
||||
updated = updated || skipswitcher != c->skipSwitcher();
|
||||
skipswitcher = c->skipSwitcher();
|
||||
}
|
||||
if( aboverule == ( SetRule )Remember)
|
||||
{
|
||||
updated = updated || above != c->keepAbove();
|
||||
|
@ -621,6 +630,7 @@ bool Rules::applyShade( ShadeMode& sh, bool init ) const
|
|||
|
||||
APPLY_RULE( skiptaskbar, SkipTaskbar, bool )
|
||||
APPLY_RULE( skippager, SkipPager, bool )
|
||||
APPLY_RULE( skipswitcher, SkipSwitcher, bool )
|
||||
APPLY_RULE( above, KeepAbove, bool )
|
||||
APPLY_RULE( below, KeepBelow, bool )
|
||||
APPLY_RULE( fullscreen, FullScreen, bool )
|
||||
|
@ -687,6 +697,7 @@ void Rules::discardUsed( bool withdrawn )
|
|||
DISCARD_USED_SET_RULE( shade );
|
||||
DISCARD_USED_SET_RULE( skiptaskbar );
|
||||
DISCARD_USED_SET_RULE( skippager );
|
||||
DISCARD_USED_SET_RULE( skipswitcher );
|
||||
DISCARD_USED_SET_RULE( above );
|
||||
DISCARD_USED_SET_RULE( below );
|
||||
DISCARD_USED_SET_RULE( fullscreen );
|
||||
|
@ -811,6 +822,7 @@ CHECK_RULE( Minimize, bool )
|
|||
CHECK_RULE( Shade, ShadeMode )
|
||||
CHECK_RULE( SkipTaskbar, bool )
|
||||
CHECK_RULE( SkipPager, bool )
|
||||
CHECK_RULE( SkipSwitcher, bool )
|
||||
CHECK_RULE( KeepAbove, bool )
|
||||
CHECK_RULE( KeepBelow, bool )
|
||||
CHECK_RULE( FullScreen, bool )
|
||||
|
@ -863,6 +875,7 @@ void Client::applyWindowRules()
|
|||
setShade( shadeMode());
|
||||
setSkipTaskbar( skipTaskbar(), true );
|
||||
setSkipPager( skipPager());
|
||||
setSkipSwitcher( skipSwitcher());
|
||||
setKeepAbove( keepAbove());
|
||||
setKeepBelow( keepBelow());
|
||||
setFullScreen( isFullScreen(), true );
|
||||
|
|
4
rules.h
4
rules.h
|
@ -70,6 +70,7 @@ class WindowRules
|
|||
ShadeMode checkShade( ShadeMode shade, bool init = false ) const;
|
||||
bool checkSkipTaskbar( bool skip, bool init = false ) const;
|
||||
bool checkSkipPager( bool skip, bool init = false ) const;
|
||||
bool checkSkipSwitcher( bool skip, bool init = false ) const;
|
||||
bool checkKeepAbove( bool above, bool init = false ) const;
|
||||
bool checkKeepBelow( bool below, bool init = false ) const;
|
||||
bool checkFullScreen( bool fs, bool init = false ) const;
|
||||
|
@ -126,6 +127,7 @@ class Rules
|
|||
bool applyShade( ShadeMode& shade, bool init ) const;
|
||||
bool applySkipTaskbar( bool& skip, bool init ) const;
|
||||
bool applySkipPager( bool& skip, bool init ) const;
|
||||
bool applySkipSwitcher( bool& skip, bool init ) const;
|
||||
bool applyKeepAbove( bool& above, bool init ) const;
|
||||
bool applyKeepBelow( bool& below, bool init ) const;
|
||||
bool applyFullScreen( bool& fs, bool init ) const;
|
||||
|
@ -236,6 +238,8 @@ class Rules
|
|||
SetRule skiptaskbarrule;
|
||||
bool skippager;
|
||||
SetRule skippagerrule;
|
||||
bool skipswitcher;
|
||||
SetRule skipswitcherrule;
|
||||
bool above;
|
||||
SetRule aboverule;
|
||||
bool below;
|
||||
|
|
2
sm.cpp
2
sm.cpp
|
@ -133,6 +133,7 @@ void Workspace::storeSession( KConfig* config, SMSavePhase phase )
|
|||
cg.writeEntry( QString("keepBelow")+n, c->keepBelow() );
|
||||
cg.writeEntry( QString("skipTaskbar")+n, c->skipTaskbar( true ) );
|
||||
cg.writeEntry( QString("skipPager")+n, c->skipPager() );
|
||||
cg.writeEntry( QString("skipSwitcher")+n, c->skipSwitcher() );
|
||||
// not really just set by user, but name kept for back. comp. reasons
|
||||
cg.writeEntry( QString("userNoBorder")+n, c->noBorder() );
|
||||
cg.writeEntry( QString("windowType")+n, windowTypeToTxt( c->windowType()));
|
||||
|
@ -208,6 +209,7 @@ void Workspace::loadSessionInfo()
|
|||
info->keepBelow = cg.readEntry( QString("keepBelow")+n, false );
|
||||
info->skipTaskbar = cg.readEntry( QString("skipTaskbar")+n, false );
|
||||
info->skipPager = cg.readEntry( QString("skipPager")+n, false );
|
||||
info->skipSwitcher = cg.readEntry( QString("skipSwitcher")+n, false );
|
||||
info->noBorder = cg.readEntry( QString("userNoBorder")+n, false );
|
||||
info->windowType = txtToWindowType( cg.readEntry( QString("windowType")+n, QString() ).toLatin1());
|
||||
info->shortcut = cg.readEntry( QString("shortcut")+n, QString() );
|
||||
|
|
1
sm.h
1
sm.h
|
@ -58,6 +58,7 @@ struct SessionInfo
|
|||
bool keepBelow;
|
||||
bool skipTaskbar;
|
||||
bool skipPager;
|
||||
bool skipSwitcher;
|
||||
bool noBorder;
|
||||
NET::WindowType windowType;
|
||||
QString shortcut;
|
||||
|
|
|
@ -130,7 +130,7 @@ TabBoxClient* TabBoxHandlerImpl::clientToAddToList( TabBoxClient* client, int de
|
|||
addClient = true;
|
||||
else
|
||||
addClient = current->isOnDesktop( desktop );
|
||||
addClient = addClient && current->wantsTabFocus();
|
||||
addClient = addClient && current->wantsTabFocus() && !current->skipSwitcher();
|
||||
if ( addClient )
|
||||
{ // don't add windows that have modal dialogs
|
||||
Client* modal = current->findModal();
|
||||
|
|
Loading…
Reference in a new issue