5165ee45b5
Summary: The Dim Inactive effect was rewritten mostly to fix most of issues with it, e.g. after leaving a full screen effect(e.g. Desktop Grid) windows sometimes are not dimmed back, or when a window becomes inactive there is no smooth transition, etc. {F5956124} //Before: the window is not smoothly dimmed.// {F5956127} //After: the window is smoothly dimmed.// In combination with an effect that animates the disappearing of windows, e.g. Glide, the rewritten Dim Inactive effect doesn't "flash" windows. If an active window has been closed, it will stay bright. If an inactive window has been closed, it will stay dimmed. Among other changes, the KCM has been re-designed to follow common KCM design in Plasma: {F5956128, layout=center, size=full} The way the rewritten Dim Inactive effect handles flashing/flickering problem can be reused in the Dialog Parent effect. ### Demo {F5959885} //Before: dimming of a window group.// {F5959886} //After: Dimming of a window group.// Depends on D13740 CCBUG: 359251 Test Plan: Test plan #1 * Activated the Desktop Grid effect * Dimmed windows smoothly brightened * Left desktop grid * Windows dimmed back Test plan #2 * Opened Dolphin and its Preferences window * Clicked on desktop, both Dolphin and the Preferences window dimmed * Clicked on Dolphin, both windows smoothly brightened back Reviewers: #kwin, #plasma, #vdg, davidedmundson Reviewed By: #kwin, #plasma, #vdg, davidedmundson Subscribers: davidedmundson, abetts, ngraham, kwin Tags: #kwin Differential Revision: https://phabricator.kde.org/D13720
65 lines
2.1 KiB
C++
65 lines
2.1 KiB
C++
/********************************************************************
|
|
KWin - the KDE window manager
|
|
This file is part of the KDE project.
|
|
|
|
Copyright (C) 2007 Christian Nitschkowski <christian.nitschkowski@kdemail.net>
|
|
Copyright (C) 2018 Vlad Zagorodniy <vladzzag@gmail.com>
|
|
|
|
This program is free software; you can redistribute it and/or modify
|
|
it under the terms of the GNU General Public License as published by
|
|
the Free Software Foundation; either version 2 of the License, or
|
|
(at your option) any later version.
|
|
|
|
This program is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
GNU General Public License for more details.
|
|
|
|
You should have received a copy of the GNU General Public License
|
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
*********************************************************************/
|
|
|
|
#include "diminactive_config.h"
|
|
|
|
// KConfigSkeleton
|
|
#include "diminactiveconfig.h"
|
|
#include <config-kwin.h>
|
|
|
|
#include <kwineffects_interface.h>
|
|
|
|
#include <KAboutData>
|
|
#include <KPluginFactory>
|
|
|
|
K_PLUGIN_FACTORY_WITH_JSON(DimInactiveEffectConfigFactory,
|
|
"diminactive_config.json",
|
|
registerPlugin<KWin::DimInactiveEffectConfig>();)
|
|
|
|
namespace KWin
|
|
{
|
|
|
|
DimInactiveEffectConfig::DimInactiveEffectConfig(QWidget *parent, const QVariantList &args)
|
|
: KCModule(KAboutData::pluginData(QStringLiteral("diminactive")), parent, args)
|
|
{
|
|
m_ui.setupUi(this);
|
|
DimInactiveConfig::instance(KWIN_CONFIG);
|
|
addConfig(DimInactiveConfig::self(), this);
|
|
load();
|
|
}
|
|
|
|
DimInactiveEffectConfig::~DimInactiveEffectConfig()
|
|
{
|
|
}
|
|
|
|
void DimInactiveEffectConfig::save()
|
|
{
|
|
KCModule::save();
|
|
|
|
OrgKdeKwinEffectsInterface interface(QStringLiteral("org.kde.KWin"),
|
|
QStringLiteral("/Effects"),
|
|
QDBusConnection::sessionBus());
|
|
interface.reconfigureEffect(QStringLiteral("diminactive"));
|
|
}
|
|
|
|
} // namespace KWin
|
|
|
|
#include "diminactive_config.moc"
|