mirror of
https://bitbucket.org/smil3y/kde-workspace.git
synced 2025-02-23 18:32:50 +00:00
kwin: remove unused kscreen effect
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
This commit is contained in:
parent
5c6056952d
commit
dd91c12cef
8 changed files with 1 additions and 381 deletions
|
@ -45,7 +45,6 @@ set(kwin4_effect_builtins_sources)
|
|||
set(kwin4_effect_builtins_config_sources effects/configs_builtins.cpp)
|
||||
set(kwin4_effect_include_directories)
|
||||
|
||||
include( effects/kscreen/CMakeLists.txt )
|
||||
include( effects/presentwindows/CMakeLists.txt )
|
||||
include( effects/slidingpopups/CMakeLists.txt )
|
||||
include( effects/taskbarthumbnail/CMakeLists.txt )
|
||||
|
|
|
@ -68,7 +68,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
#include "effects/diminactive/diminactive.h"
|
||||
#include "effects/dimscreen/dimscreen.h"
|
||||
#include "effects/highlightwindow/highlightwindow.h"
|
||||
#include "effects/kscreen/kscreen.h"
|
||||
#include "effects/logout/logout.h"
|
||||
#include "effects/magnifier/magnifier.h"
|
||||
#include "effects/minimizeanimation/minimizeanimation.h"
|
||||
|
@ -1375,9 +1374,7 @@ bool EffectsHandlerImpl::loadEffect(const QString& name, bool checkDefault)
|
|||
Effect* effect = 0;
|
||||
QLibrary* library = 0;
|
||||
// builtins first
|
||||
if (internalname == "kwin4_effect_kscreen") {
|
||||
effect = new KscreenEffect();
|
||||
} else if (internalname == "kwin4_effect_presentwindows") {
|
||||
if (internalname == "kwin4_effect_presentwindows") {
|
||||
effect = new PresentWindowsEffect();
|
||||
} else if (internalname == "kwin4_effect_slidingpopups") {
|
||||
effect = new SlidingPopupsEffect();
|
||||
|
|
|
@ -1,13 +0,0 @@
|
|||
#######################################
|
||||
# Effect
|
||||
|
||||
# Source files
|
||||
set(kwin4_effect_builtins_sources
|
||||
${kwin4_effect_builtins_sources}
|
||||
effects/kscreen/kscreen.cpp
|
||||
)
|
||||
|
||||
kde4_add_kcfg_files(kwin4_effect_builtins_sources effects/kscreen/kscreenconfig.kcfgc)
|
||||
|
||||
# .desktop files
|
||||
install(FILES effects/kscreen/kscreen.desktop DESTINATION ${KDE4_SERVICES_INSTALL_DIR}/kwin)
|
|
@ -1,189 +0,0 @@
|
|||
/********************************************************************
|
||||
KWin - the KDE window manager
|
||||
This file is part of the KDE project.
|
||||
|
||||
Copyright (C) 2013 Martin Gräßlin <mgraesslin@kde.org>
|
||||
|
||||
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/>.
|
||||
*********************************************************************/
|
||||
// own
|
||||
#include "kscreen.h"
|
||||
// KConfigSkeleton
|
||||
#include "kscreenconfig.h"
|
||||
|
||||
/**
|
||||
* How this effect works:
|
||||
*
|
||||
* Effect announces that it is around through property _KDE_KWIN_KSCREEN_SUPPORT on the root window.
|
||||
*
|
||||
* KScreen watches for this property and when it wants to adjust screens, KScreen goes
|
||||
* through the following protocol:
|
||||
* 1. KScreen sets the property value to 1
|
||||
* 2. Effect starts to fade out all windows
|
||||
* 3. When faded out the effect sets property value to 2
|
||||
* 4. KScreen adjusts the screens
|
||||
* 5. KScreen sets property value to 3
|
||||
* 6. Effect starts to fade in all windows again
|
||||
* 7. Effect sets back property value to 0
|
||||
*
|
||||
* The property has type 32 bits cardinal. To test it use:
|
||||
* xprop -root -f _KDE_KWIN_KSCREEN_SUPPORT 32c -set _KDE_KWIN_KSCREEN_SUPPORT 1
|
||||
*
|
||||
* The states are:
|
||||
* 0: normal
|
||||
* 1: fading out
|
||||
* 2: faded out
|
||||
* 3: fading in
|
||||
**/
|
||||
|
||||
namespace KWin
|
||||
{
|
||||
|
||||
KscreenEffect::KscreenEffect()
|
||||
: Effect()
|
||||
, m_state(StateNormal)
|
||||
, m_atom(effects->announceSupportProperty("_KDE_KWIN_KSCREEN_SUPPORT", this))
|
||||
{
|
||||
connect(effects, SIGNAL(propertyNotify(KWin::EffectWindow*,long)), SLOT(propertyNotify(KWin::EffectWindow*,long)));
|
||||
reconfigure(ReconfigureAll);
|
||||
}
|
||||
|
||||
KscreenEffect::~KscreenEffect()
|
||||
{
|
||||
}
|
||||
|
||||
void KscreenEffect::reconfigure(ReconfigureFlags flags)
|
||||
{
|
||||
Q_UNUSED(flags)
|
||||
|
||||
KscreenConfig::self()->readConfig();
|
||||
m_timeLine.setDuration(animationTime<KscreenConfig>(250));
|
||||
}
|
||||
|
||||
void KscreenEffect::prePaintScreen(ScreenPrePaintData &data, int time)
|
||||
{
|
||||
if (m_state == StateFadingIn || m_state == StateFadingOut) {
|
||||
m_timeLine.setCurrentTime(m_timeLine.currentTime() + time);
|
||||
if (m_timeLine.currentValue() >= 1.0) {
|
||||
switchState();
|
||||
}
|
||||
}
|
||||
effects->prePaintScreen(data, time);
|
||||
}
|
||||
|
||||
void KscreenEffect::postPaintScreen()
|
||||
{
|
||||
if (m_state == StateFadingIn || m_state == StateFadingOut) {
|
||||
effects->addRepaintFull();
|
||||
}
|
||||
}
|
||||
|
||||
void KscreenEffect::prePaintWindow(EffectWindow *w, WindowPrePaintData &data, int time)
|
||||
{
|
||||
if (m_state != StateNormal) {
|
||||
data.setTranslucent();
|
||||
}
|
||||
effects->prePaintWindow(w, data, time);
|
||||
}
|
||||
|
||||
void KscreenEffect::paintWindow(EffectWindow *w, int mask, QRegion region, WindowPaintData &data)
|
||||
{
|
||||
switch (m_state) {
|
||||
case StateFadingOut:
|
||||
data.multiplyOpacity(1.0 - m_timeLine.currentValue());
|
||||
break;
|
||||
case StateFadedOut:
|
||||
data.multiplyOpacity(0.0);
|
||||
break;
|
||||
case StateFadingIn:
|
||||
data.multiplyOpacity(m_timeLine.currentValue());
|
||||
break;
|
||||
default:
|
||||
// no adjustment
|
||||
break;
|
||||
}
|
||||
effects->paintWindow(w, mask, region, data);
|
||||
}
|
||||
|
||||
void KscreenEffect::propertyNotify(EffectWindow *window, long atom)
|
||||
{
|
||||
if (window || atom != m_atom) {
|
||||
return;
|
||||
}
|
||||
QByteArray byteData = effects->readRootProperty(m_atom, XCB_ATOM_CARDINAL, 32);
|
||||
long *data = reinterpret_cast<long *>(byteData.data());
|
||||
if (!data[0]) {
|
||||
// Property was deleted
|
||||
if (m_state != StateNormal) {
|
||||
m_state = StateNormal;
|
||||
effects->addRepaintFull();
|
||||
}
|
||||
return;
|
||||
}
|
||||
if (data[0] == 0) {
|
||||
// normal state - KWin should have switched to it
|
||||
if (m_state != StateNormal) {
|
||||
m_state = StateNormal;
|
||||
effects->addRepaintFull();
|
||||
}
|
||||
return;
|
||||
}
|
||||
if (data[0] == 2) {
|
||||
// faded out state - KWin should have switched to it
|
||||
if (m_state != StateFadedOut) {
|
||||
m_state = StateFadedOut;
|
||||
effects->addRepaintFull();
|
||||
}
|
||||
return;
|
||||
}
|
||||
if (data[0] == 1) {
|
||||
// kscreen wants KWin to fade out all windows
|
||||
m_state = StateFadingOut;
|
||||
m_timeLine.setCurrentTime(0);
|
||||
effects->addRepaintFull();
|
||||
return;
|
||||
}
|
||||
if (data[0] == 3) {
|
||||
// kscreen wants KWin to fade in again
|
||||
m_state = StateFadingIn;
|
||||
m_timeLine.setCurrentTime(0);
|
||||
effects->addRepaintFull();
|
||||
return;
|
||||
}
|
||||
kDebug(1212) << "Incorrect Property state, immediate stop: " << data[0];
|
||||
m_state = StateNormal;
|
||||
effects->addRepaintFull();
|
||||
}
|
||||
|
||||
void KscreenEffect::switchState()
|
||||
{
|
||||
long value = -1l;
|
||||
if (m_state == StateFadingOut) {
|
||||
m_state = StateFadedOut;
|
||||
value = 2l;
|
||||
} else if (m_state == StateFadingIn) {
|
||||
m_state = StateNormal;
|
||||
value = 0l;
|
||||
}
|
||||
if (value != -1l) {
|
||||
xcb_change_property(connection(), XCB_PROP_MODE_REPLACE, rootWindow(), m_atom, XCB_ATOM_CARDINAL, 32, 1, &value);
|
||||
}
|
||||
}
|
||||
|
||||
bool KscreenEffect::isActive() const
|
||||
{
|
||||
return m_state != StateNormal;
|
||||
}
|
||||
|
||||
} // namespace KWin
|
|
@ -1,93 +0,0 @@
|
|||
[Desktop Entry]
|
||||
Name=Kscreen
|
||||
Name[bs]=KScreen
|
||||
Name[ca]=Kscreen
|
||||
Name[ca@valencia]=Kscreen
|
||||
Name[cs]=Kscreen
|
||||
Name[da]=KScreen
|
||||
Name[de]=Kscreen
|
||||
Name[el]=Kscreen
|
||||
Name[en_GB]=Kscreen
|
||||
Name[es]=Kscreen
|
||||
Name[et]=Kscreen
|
||||
Name[eu]=Kscreen
|
||||
Name[fi]=Kscreen
|
||||
Name[gl]=KScreen
|
||||
Name[hu]=Kscreen
|
||||
Name[ia]=Kscreen
|
||||
Name[kk]=Kscreen
|
||||
Name[ko]=Kscreen
|
||||
Name[nb]=Kscreen
|
||||
Name[nds]=KScreen
|
||||
Name[nl]=Kscreen
|
||||
Name[pa]=ਕੇਸਕਰੀਨ
|
||||
Name[pl]=Kscreen
|
||||
Name[pt]=Kscreen
|
||||
Name[pt_BR]=KScreen
|
||||
Name[ro]=Kscreen
|
||||
Name[ru]=Kscreen
|
||||
Name[sk]=Kscreen
|
||||
Name[sl]=Kscreen
|
||||
Name[sr]=К‑екран
|
||||
Name[sr@ijekavian]=К‑екран
|
||||
Name[sr@ijekavianlatin]=K‑ekran
|
||||
Name[sr@latin]=K‑ekran
|
||||
Name[sv]=Kskärm
|
||||
Name[tr]=Kscreen
|
||||
Name[uk]=Kscreen
|
||||
Name[x-test]=xxKscreenxx
|
||||
Name[zh_CN]=Kscreen
|
||||
Name[zh_TW]=Kscreen
|
||||
Icon=preferences-system-windows-effect-kscreen
|
||||
Comment=Helper Effect for KScreen
|
||||
Comment[bs]=Pomoćni efekat za KScreen
|
||||
Comment[ca]=Efecte auxiliar pel KScreen
|
||||
Comment[ca@valencia]=Efecte auxiliar pel KScreen
|
||||
Comment[cs]=Pomocný efekt pro KScreen
|
||||
Comment[da]=Hjælpeeffekt til KScreen
|
||||
Comment[de]=Hilfseffekt für KScreen
|
||||
Comment[el]=Βοηθητικό εφέ για το KScreen
|
||||
Comment[en_GB]=Helper Effect for KScreen
|
||||
Comment[es]=Efecto auxiliar para KScreen
|
||||
Comment[et]=KScreeni abiefekt
|
||||
Comment[eu]=KScreen-entzako efektu laguntzailea
|
||||
Comment[fi]=KScreenin avustustehoste
|
||||
Comment[gl]=Efecto auxiliar para KScreen.
|
||||
Comment[hu]=Segédeffektus a KScreenhez
|
||||
Comment[ia]=Effecto de adjutante pro KScreen
|
||||
Comment[kk]=KScreen-нің көмек эффекті
|
||||
Comment[ko]=KScreen 도우미 효과
|
||||
Comment[nb]=Hjelpereffekt for KScreen
|
||||
Comment[nds]=Hülpeffekt för KScreen
|
||||
Comment[nl]=Effect van hulp voor KScreen
|
||||
Comment[pa]=ਕੇਸਕਰੀਨ ਲਈ ਮੱਦਦ ਪ੍ਰਭਾਵ
|
||||
Comment[pl]=Efekt pomocniczy dla KScreen
|
||||
Comment[pt]=Efeito auxiliar do KScreen
|
||||
Comment[pt_BR]=Efeito auxiliar do KScreen
|
||||
Comment[ro]=Efect ajutător pentru KScreen
|
||||
Comment[ru]=Вспомогательный эффект для KScreen
|
||||
Comment[sk]=Pomocný efekt pre KScreen
|
||||
Comment[sl]=Pomožni učinek za KScreen
|
||||
Comment[sr]=Помоћни ефекат за К‑екран
|
||||
Comment[sr@ijekavian]=Помоћни ефекат за К‑екран
|
||||
Comment[sr@ijekavianlatin]=Pomoćni efekat za K‑ekran
|
||||
Comment[sr@latin]=Pomoćni efekat za K‑ekran
|
||||
Comment[sv]=Hjälpeffekt för Kskärm
|
||||
Comment[tr]=KScreen için Yardımcı Efekt
|
||||
Comment[uk]=Допоміжний ефект KScreen
|
||||
Comment[x-test]=xxHelper Effect for KScreenxx
|
||||
Comment[zh_CN]=KScreen 的帮助效果
|
||||
Comment[zh_TW]=KScreen 輔助效果
|
||||
|
||||
Type=Service
|
||||
X-KDE-ServiceTypes=KWin/Effect
|
||||
X-KDE-PluginInfo-Author=Martin Gräßlin
|
||||
X-KDE-PluginInfo-Email=mgraesslin@kde.org
|
||||
X-KDE-PluginInfo-Name=kwin4_effect_kscreen
|
||||
X-KDE-PluginInfo-Version=0.1.0
|
||||
X-KDE-PluginInfo-Category=Appearance
|
||||
X-KDE-PluginInfo-Depends=
|
||||
X-KDE-PluginInfo-License=GPL
|
||||
X-KDE-PluginInfo-EnabledByDefault=true
|
||||
X-KDE-Ordering=99
|
||||
X-KWin-Requires-Shaders=false
|
|
@ -1,64 +0,0 @@
|
|||
/********************************************************************
|
||||
KWin - the KDE window manager
|
||||
This file is part of the KDE project.
|
||||
|
||||
Copyright (C) 2013 Martin Gräßlin <mgraesslin@kde.org>
|
||||
|
||||
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/>.
|
||||
*********************************************************************/
|
||||
#ifndef KWIN_KSCREEN_H
|
||||
#define KWIN_KSCREEN_H
|
||||
|
||||
#include <kwineffects.h>
|
||||
// Qt
|
||||
#include <QTimeLine>
|
||||
|
||||
namespace KWin
|
||||
{
|
||||
|
||||
class KscreenEffect : public Effect
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
KscreenEffect();
|
||||
virtual ~KscreenEffect();
|
||||
|
||||
virtual void prePaintScreen(ScreenPrePaintData &data, int time);
|
||||
virtual void postPaintScreen();
|
||||
virtual void prePaintWindow(EffectWindow *w, WindowPrePaintData &data, int time);
|
||||
virtual void paintWindow(EffectWindow *w, int mask, QRegion region, WindowPaintData &data);
|
||||
|
||||
void reconfigure(ReconfigureFlags flags);
|
||||
virtual bool isActive() const;
|
||||
|
||||
private Q_SLOTS:
|
||||
void propertyNotify(KWin::EffectWindow *window, long atom);
|
||||
|
||||
private:
|
||||
void switchState();
|
||||
enum FadeOutState {
|
||||
StateNormal,
|
||||
StateFadingOut,
|
||||
StateFadedOut,
|
||||
StateFadingIn
|
||||
};
|
||||
QTimeLine m_timeLine;
|
||||
FadeOutState m_state;
|
||||
xcb_atom_t m_atom;
|
||||
};
|
||||
|
||||
|
||||
} // namespace KWin
|
||||
#endif // KWIN_KSCREEN_H
|
|
@ -1,12 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<kcfg xmlns="http://www.kde.org/standards/kcfg/1.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://www.kde.org/standards/kcfg/1.0
|
||||
http://www.kde.org/standards/kcfg/1.0/kcfg.xsd" >
|
||||
<kcfgfile name="kwinrc"/>
|
||||
<group name="Effect-Kscreen">
|
||||
<entry name="Duration" type="Int">
|
||||
<default>0</default>
|
||||
</entry>
|
||||
</group>
|
||||
</kcfg>
|
|
@ -1,5 +0,0 @@
|
|||
File=kscreen.kcfg
|
||||
ClassName=KscreenConfig
|
||||
NameSpace=KWin
|
||||
Singleton=true
|
||||
Mutators=true
|
Loading…
Add table
Reference in a new issue