[prev in list] [next in list] [prev in thread] [next in thread]
List: kwin
Subject: [PATCH] Add an Ignore minimized windows option to TabBox
From: Stefano Avallone <stavallo () unina ! it>
Date: 2011-12-20 19:01:26
Message-ID: 1324411145-2973-1-git-send-email-stavallo () unina ! it
[Download RAW message or body]
---
kwin/kcmkwin/kwintabbox/main.cpp | 9 +++++++++
kwin/kcmkwin/kwintabbox/main.ui | 7 +++++++
kwin/tabbox/tabbox.cpp | 3 +++
kwin/tabbox/tabboxconfig.cpp | 13 +++++++++++++
kwin/tabbox/tabboxconfig.h | 16 ++++++++++++++++
5 files changed, 48 insertions(+), 0 deletions(-)
diff --git a/kwin/kcmkwin/kwintabbox/main.cpp b/kwin/kcmkwin/kwintabbox/main.cpp
index 53b3144..69a409b 100644
--- a/kwin/kcmkwin/kwintabbox/main.cpp
+++ b/kwin/kcmkwin/kwintabbox/main.cpp
@@ -138,6 +138,7 @@ KWinTabBoxConfig::KWinTabBoxConfig(QWidget* parent, const \
QVariantList& args)
connect(m_primaryTabBoxUi->effectCombo, SIGNAL(currentIndexChanged(int)), this, \
SLOT(changed())); // check boxes
connect(m_primaryTabBoxUi->showOutlineCheck, SIGNAL(stateChanged(int)), this, \
SLOT(changed())); + connect(m_primaryTabBoxUi->ignoreMinimizedCheck, \
SIGNAL(stateChanged(int)), this, SLOT(changed()));
connect(m_primaryTabBoxUi->showTabBox, SIGNAL(toggled(bool)), this, \
SLOT(changed()));
connect(m_primaryTabBoxUi->highlightWindowCheck, SIGNAL(stateChanged(int)), \
this, SLOT(changed()));
connect(m_primaryTabBoxUi->showDesktopBox, SIGNAL(stateChanged(int)), this, \
SLOT(changed())); @@ -147,6 +148,7 @@ KWinTabBoxConfig::KWinTabBoxConfig(QWidget* \
parent, const QVariantList& args)
connect(m_alternativeTabBoxUi->effectCombo, SIGNAL(currentIndexChanged(int)), \
this, SLOT(changed())); // check boxes alternative
connect(m_alternativeTabBoxUi->showOutlineCheck, SIGNAL(stateChanged(int)), \
this, SLOT(changed())); + connect(m_alternativeTabBoxUi->ignoreMinimizedCheck, \
SIGNAL(stateChanged(int)), this, SLOT(changed()));
connect(m_alternativeTabBoxUi->showTabBox, SIGNAL(toggled(bool)), this, \
SLOT(changed()));
connect(m_alternativeTabBoxUi->highlightWindowCheck, SIGNAL(stateChanged(int)), \
this, SLOT(changed()));
connect(m_alternativeTabBoxUi->showDesktopBox, SIGNAL(stateChanged(int)), this, \
SLOT(changed())); @@ -235,6 +237,8 @@ void KWinTabBoxConfig::loadConfig(const \
KConfigGroup& config, KWin::TabBox::TabB
tabBoxConfig.setShowOutline(config.readEntry<bool>("ShowOutline",
TabBox::TabBoxConfig::defaultShowOutline()));
+ tabBoxConfig.setIgnoreMinimized(config.readEntry<bool>("IgnoreMinimized",
+ TabBox::TabBoxConfig::defaultIgnoreMinimized()));
tabBoxConfig.setShowTabBox(config.readEntry<bool>("ShowTabBox",
TabBox::TabBoxConfig::defaultShowTabBox()));
tabBoxConfig.setHighlightWindows(config.readEntry<bool>("HighlightWindows",
@@ -262,6 +266,7 @@ void KWinTabBoxConfig::saveConfig(KConfigGroup& config, const \
KWin::TabBox::TabB
// check boxes
config.writeEntry("ShowOutline", tabBoxConfig.isShowOutline());
+ config.writeEntry("IgnoreMinimized", tabBoxConfig.isIgnoreMinimized());
config.writeEntry("ShowTabBox", tabBoxConfig.isShowTabBox());
config.writeEntry("HighlightWindows", tabBoxConfig.isHighlightWindows());
@@ -360,6 +365,7 @@ void KWinTabBoxConfig::defaults()
// checkboxes
m_primaryTabBoxUi->showOutlineCheck->setChecked(TabBox::TabBoxConfig::defaultShowOutline());
+ m_primaryTabBoxUi->ignoreMinimizedCheck->setChecked(TabBox::TabBoxConfig::defaultIgnoreMinimized());
m_primaryTabBoxUi->showTabBox->setChecked(TabBox::TabBoxConfig::defaultShowTabBox());
m_primaryTabBoxUi->highlightWindowCheck->setChecked(TabBox::TabBoxConfig::defaultHighlightWindow());
m_primaryTabBoxUi->showDesktopBox->setChecked(TabBox::TabBoxConfig::defaultShowDesktop());
@@ -374,6 +380,7 @@ void KWinTabBoxConfig::defaults()
// checkboxes
m_alternativeTabBoxUi->showOutlineCheck->setChecked(TabBox::TabBoxConfig::defaultShowOutline());
+ m_alternativeTabBoxUi->ignoreMinimizedCheck->setChecked(TabBox::TabBoxConfig::defaultIgnoreMinimized());
m_alternativeTabBoxUi->showTabBox->setChecked(TabBox::TabBoxConfig::defaultShowTabBox());
m_alternativeTabBoxUi->highlightWindowCheck->setChecked(TabBox::TabBoxConfig::defaultHighlightWindow());
m_alternativeTabBoxUi->showDesktopBox->setChecked(TabBox::TabBoxConfig::defaultShowDesktop());
@@ -404,6 +411,7 @@ void KWinTabBoxConfig::updateUiFromConfig(KWinTabBoxConfigForm* \
ui, const KWin::
// check boxes
ui->showOutlineCheck->setChecked(config.isShowOutline());
+ ui->ignoreMinimizedCheck->setChecked(config.isIgnoreMinimized());
ui->showTabBox->setChecked(config.isShowTabBox());
ui->highlightWindowCheck->setChecked(config.isHighlightWindows());
ui->showDesktopBox->setChecked(config.isShowDesktop());
@@ -415,6 +423,7 @@ void KWinTabBoxConfig::updateConfigFromUi(const \
KWin::KWinTabBoxConfigForm* ui,
config.setClientSwitchingMode(TabBox::TabBoxConfig::ClientSwitchingMode(ui->switchingModeCombo->currentIndex()));
config.setShowOutline(ui->showOutlineCheck->isChecked());
+ config.setIgnoreMinimized(ui->ignoreMinimizedCheck->isChecked());
config.setShowTabBox(ui->showTabBox->isChecked());
config.setHighlightWindows(ui->highlightWindowCheck->isChecked());
config.setShowDesktop(ui->showDesktopBox->isChecked());
diff --git a/kwin/kcmkwin/kwintabbox/main.ui b/kwin/kcmkwin/kwintabbox/main.ui
index e81168c..49b26c4 100644
--- a/kwin/kcmkwin/kwintabbox/main.ui
+++ b/kwin/kcmkwin/kwintabbox/main.ui
@@ -103,6 +103,13 @@
</widget>
</item>
<item>
+ <widget class="QCheckBox" name="ignoreMinimizedCheck">
+ <property name="text">
+ <string>Ignore minimized windows</string>
+ </property>
+ </widget>
+ </item>
+ <item>
<widget class="Line" name="line">
<property name="orientation">
<enum>Qt::Horizontal</enum>
diff --git a/kwin/tabbox/tabbox.cpp b/kwin/tabbox/tabbox.cpp
index 9cc7935..484fa80 100644
--- a/kwin/tabbox/tabbox.cpp
+++ b/kwin/tabbox/tabbox.cpp
@@ -134,6 +134,7 @@ TabBoxClient* TabBoxHandlerImpl::clientToAddToList(TabBoxClient* \
client, int des addClient = current->isOnDesktop(desktop);
addClient = addClient && current->isOnCurrentActivity();
addClient = addClient && current->wantsTabFocus() && !current->skipSwitcher();
+ addClient = addClient && !(current->isMinimized() && \
config().isIgnoreMinimized()); if (addClient) {
// don't add windows that have modal dialogs
Client* modal = current->findModal();
@@ -558,6 +559,8 @@ void TabBox::loadConfig(const KConfigGroup& config, TabBoxConfig& \
tabBoxConfig)
tabBoxConfig.setShowOutline(config.readEntry<bool>("ShowOutline",
TabBoxConfig::defaultShowOutline()));
+ tabBoxConfig.setIgnoreMinimized(config.readEntry<bool>("IgnoreMinimized",
+ TabBoxConfig::defaultIgnoreMinimized()));
tabBoxConfig.setShowTabBox(config.readEntry<bool>("ShowTabBox",
TabBoxConfig::defaultShowTabBox()));
tabBoxConfig.setHighlightWindows(config.readEntry<bool>("HighlightWindows",
diff --git a/kwin/tabbox/tabboxconfig.cpp b/kwin/tabbox/tabboxconfig.cpp
index c1fa4bb..957c667 100644
--- a/kwin/tabbox/tabboxconfig.cpp
+++ b/kwin/tabbox/tabboxconfig.cpp
@@ -31,6 +31,7 @@ public:
: showTabBox(TabBoxConfig::defaultShowTabBox())
, highlightWindows(TabBoxConfig::defaultHighlightWindow())
, showOutline(TabBoxConfig::defaultShowOutline())
+ , ignoreMinimized(TabBoxConfig::defaultIgnoreMinimized())
, tabBoxMode(TabBoxConfig::ClientTabBox)
, layout(TabBoxConfig::defaultLayoutMode())
, clientListMode(TabBoxConfig::defaultListMode())
@@ -48,6 +49,7 @@ public:
bool showTabBox;
bool highlightWindows;
bool showOutline;
+ bool ignoreMinimized;
TabBoxConfig::TabBoxMode tabBoxMode;
TabBoxConfig::LayoutMode layout;
@@ -77,6 +79,7 @@ TabBoxConfig& TabBoxConfig::operator=(const \
KWin::TabBox::TabBoxConfig& object) d->showTabBox = object.isShowTabBox();
d->highlightWindows = object.isHighlightWindows();
d->showOutline = object.isShowOutline();
+ d->ignoreMinimized = object.isIgnoreMinimized();
d->tabBoxMode = object.tabBoxMode();
d->showDesktop = object.isShowDesktop();
d->layout = object.layout();
@@ -111,6 +114,16 @@ bool TabBoxConfig::isShowOutline() const
return d->showOutline;
}
+void TabBoxConfig::setIgnoreMinimized(bool ignore)
+{
+ d->ignoreMinimized = ignore;
+}
+
+bool TabBoxConfig::isIgnoreMinimized() const
+{
+ return d->ignoreMinimized;
+}
+
void TabBoxConfig::setShowTabBox(bool show)
{
d->showTabBox = show;
diff --git a/kwin/tabbox/tabboxconfig.h b/kwin/tabbox/tabboxconfig.h
index c8e5617..a3c26d4 100644
--- a/kwin/tabbox/tabboxconfig.h
+++ b/kwin/tabbox/tabboxconfig.h
@@ -133,6 +133,13 @@ public:
*/
bool isShowOutline() const;
/**
+ * @return If minimized windows should be ignored
+ * This option does not apply for TabBoxMode DesktopTabBox.
+ * @see setIgnoreMinimized
+ * @see defaultIgnoreMinimized
+ */
+ bool isIgnoreMinimized() const;
+ /**
* @return The current TabBoxMode
* @see setTabBoxMode
*/
@@ -219,6 +226,12 @@ public:
*/
void setShowOutline(bool show);
/**
+ * @param ignore Ignore minimized windows.
+ * This option does not apply for TabBoxMode DesktopTabBox.
+ * @see isIgnoreMinimized
+ */
+ void setIgnoreMinimized(bool ignore);
+ /**
* @param mode The new TabBoxMode to be used.
* @see tabBoxMode
*/
@@ -296,6 +309,9 @@ public:
static bool defaultShowOutline() {
return true;
}
+ static bool defaultIgnoreMinimized() {
+ return false;
+ }
static bool defaultHighlightWindow() {
return true;
}
--
1.7.8
_______________________________________________
kwin mailing list
kwin@kde.org
https://mail.kde.org/mailman/listinfo/kwin
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic