Skip to content
Commits on Source (4)
......@@ -12,6 +12,9 @@ compiz (2:0.9.12.2+hypra7.8) UNRELEASED; urgency=medium
* Fix missing Firefox's frame in certain cases.
* 18_switcher-focus: New patch to avoid unnecessary extra focus events
when switching between applications.
* Add an option to enable colorfilter plugin at startup.
* Add an option to disable cumulative filtering in colorfilter plugin.
* Update colorfilter translation.
[ Samuel Thibault ]
* 16_scroll: Add scrolling feature.
......
......@@ -31,6 +31,11 @@
<_long>Select filter to use from filters list : either apply all filters or only one specific filter (triggering this action switches filters one by one and eventually comes back to the "all filters" mode).</_long>
<default>&lt;Control&gt;&lt;Super&gt;s</default>
</option>
<option name="activate_at_startup" type="bool">
<_short>Enable color filter at startup</_short>
<_long>Filter every window at startup.</_long>
<default>false</default>
</option>
<option name="filters" type="list">
<_short>Filters files</_short>
<_long>List of plain text filter files that should be applied when filtering windows or screen.</_long>
......@@ -47,6 +52,11 @@
</default>
<hints>file;</hints>
</option>
<option name="cumulative_enable" type="bool">
<_short>Enable cumulative filters mode</_short>
<_long>Whether a mode applying all filters at once is enabled and can be cycled through with the "Switch filter" binding.</_long>
<default>true</default>
</option>
<option name="filter_decorations" type="bool">
<_short>Filter window decorations</_short>
<_long>Window decorations (borders and titlebar) will be filtered as well as window contents if enabled.</_long>
......
......@@ -72,9 +72,16 @@ ColorfilterScreen::switchFilter ()
{
/* % (count + 1) because of the cumulative filters mode */
currentFilter = (currentFilter + 1) % (filtersFunctions.size () + 1);
if (currentFilter == 0 && !optionGetCumulativeEnable ())
currentFilter = (currentFilter + 1) % (filtersFunctions.size () + 1);
if (currentFilter == 0)
compLogMessage ("colorfilter", CompLogLevelInfo,
"Cumulative filters mode");
{
/* avoid the message if no filter is loaded and cumulative mode is disabled */
if (optionGetCumulativeEnable ())
compLogMessage ("colorfilter", CompLogLevelInfo,
"Cumulative filters mode");
}
else
{
std::shared_ptr <ColorfilterFunction> func = filtersFunctions.at (currentFilter - 1);
......@@ -290,6 +297,9 @@ ColorfilterScreen::loadFilters ()
"Tried to load %d filter(s), %d succeeded.",
count, loaded);
if (currentFilter == 0 && !optionGetCumulativeEnable ())
switchFilter ();
/* Damage currently filtered windows */
foreach (CompWindow *w, screen->windows ())
{
......@@ -420,6 +430,29 @@ ColorfilterScreen::damageDecorations (CompOption *opt,
cScreen->damageScreen ();
}
/*
* Cumulative mode enable updated callback
*/
void
ColorfilterScreen::cumulativeEnableChanged (CompOption *opt,
ColorfilterOptions::Options num)
{
if (currentFilter == 0 && !optionGetCumulativeEnable ())
switchFilter ();
}
/*
* Activate at startup update callback.
* This is done here because options are not loaded in the constructor.
*/
void
ColorfilterScreen::activateAtStartupChanged (CompOption *opt,
ColorfilterOptions::Options num)
{
if (!isFiltered && GL::shaders)
toggle ();
}
ColorfilterScreen::ColorfilterScreen (CompScreen *screen) :
PluginClassHandler <ColorfilterScreen, CompScreen> (screen),
cScreen (CompositeScreen::get (screen)),
......@@ -449,6 +482,18 @@ ColorfilterScreen::ColorfilterScreen (CompScreen *screen) :
optionSetFilterDecorationsNotify (boost::bind (
&ColorfilterScreen::damageDecorations, this, _1,
_2));
optionSetCumulativeEnableNotify (boost::bind (
&ColorfilterScreen::cumulativeEnableChanged, this, _1,
_2));
optionSetActivateAtStartupNotify (boost::bind (
&ColorfilterScreen::activateAtStartupChanged, this, _1,
_2));
/* This never happens because options aren't loaded yet and the
* default is false. Keep it in case the default is changed. */
if (optionGetActivateAtStartup () && !isFiltered && GL::shaders)
toggle ();
loadFilters ();
};
......
......@@ -110,6 +110,14 @@ class ColorfilterScreen :
void
damageDecorations (CompOption *opt,
ColorfilterOptions::Options num);
void
cumulativeEnableChanged (CompOption *opt,
ColorfilterOptions::Options num);
void
activateAtStartupChanged (CompOption *opt,
ColorfilterOptions::Options num);
};
#define FILTER_SCREEN(s) \
......
......@@ -957,7 +957,7 @@ msgstr ""
#: ../plugins/colorfilter/colorfilter.xml.in.h:13
msgid "Filtered windows"
msgstr "Fenêtres à exclure"
msgstr "Fenêtres à filtrer"
#: ../plugins/colorfilter/colorfilter.xml.in.h:14
msgid "Windows to be filtered by default."
......@@ -971,6 +971,26 @@ msgstr "Fenêtres à exclure"
msgid "Windows to exclude from filtering."
msgstr "Fenêtres à exclure du filtrage."
#: ../plugins/colorfilter/colorfilter.xml.in.h
msgid "Enable color filter at startup"
msgstr "Activer le filtre de couleur au démarrage"
#: ../plugins/colorfilter/colorfilter.xml.in.h
msgid "Filter every window at startup."
msgstr "Filtrer toutes les fenêtres au démarrage"
#: ../plugins/colorfilter/colorfilter.xml.in.h
msgid "Enable cumulative filters mode"
msgstr "Activer le mode de filtre cumulatif"
#: ../plugins/colorfilter/colorfilter.xml.in.h
msgid ""
"Whether a mode applying all filters at once is enabled and can be cycled "
"through with the \"Switch filter\" binding."
msgstr ""
"Définit si un mode qui applique tous les filtres en même temps est activé "
"et peut être sélectionné avec le raccourci \"Changer de filtre\"."
#: ../plugins/commands/commands.xml.in.h:1
#: ../plugins/gnomecompat/gnomecompat.xml.in.h:7
msgid "Commands"
......