kwin/dbusinterface.h
Martin Gräßlin 15aa42c565 Remove doNotManage hack for Java Applets
The hack used to be used to hide windows before they get embedded into
another window. This has been wrong on multiple levels:
1. it does not belong into a window manager - the window should take care
   of this by itself
2. Window title is not a proper way to identify windows
3. Using D-Bus to inform an X11 window manager about windows which should
   not get managed is rather strange
4. The hack only works with KWin, but not with any other X Window Manager
5. Windows identified with this hack still appear in Alt+Tab, that is
   they are managed after all. Only a flicker is suppressed
6. Such windows are shown in the taskbar which nicely illustrates how
   wrong a D-Bus call to the window manager is

That the hack has been introduced for Java Applets in KHTML also shows
that this is wrong. Why does Gecko and WebKit not need such a hack? Why
is KHTML tied so closely to X11 and KWin? Having a hack for a technology
which is obsoleted (Java Applets) and shouldn't be used due to security
issues is another reason to no longer support this hack. This usage has
been removed from KHTML as of 67939b1 of kdelibs git repo.

REVIEW: 109450
2013-03-22 09:54:45 +01:00

159 lines
4.1 KiB
C++

/********************************************************************
KWin - the KDE window manager
This file is part of the KDE project.
Copyright (C) 2012 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_DBUS_INTERFACE_H
#define KWIN_DBUS_INTERFACE_H
#include <QObject>
#include <QtDBus/QtDBus>
class QByteArray;
template<class T> class QList;
template<class Key, class Value> class QMap;
class QString;
class QStringList;
class QVariant;
namespace KWin
{
/**
* @brief This class is a wrapper for the org.kde.KWin D-Bus interface.
*
* The main purpose of this class is to be exported on the D-Bus as object /KWin.
* It is a pure wrapper to provide the deprecated D-Bus methods which have been
* removed from Workspace which used to implement the complete D-Bus interface.
*
* Nowadays the D-Bus interfaces are distributed, parts of it are exported on
* /Compositor, parts on /Effects and parts on /KWin. The implementation in this
* class just delegates the method calls to the actual implementation in one of the
* three singletons.
*
* @author Martin Gräßlin <mgraesslin@kde.org>
* @todo KDE5: remove the methods provided on /Effects and /Compositor
**/
class DBusInterface: public QObject
{
Q_OBJECT
Q_CLASSINFO("D-Bus Interface", "org.kde.KWin")
public:
explicit DBusInterface(QObject *parent);
virtual ~DBusInterface();
public: // PROPERTIES
public Q_SLOTS: // METHODS
Q_NOREPLY void cascadeDesktop();
/**
* @deprecated
**/
void circulateDesktopApplications();
int currentDesktop();
QList<int> decorationSupportedColors();
/**
* @deprecated
**/
void doNotManage(const QString &name);
Q_NOREPLY void killWindow();
void nextDesktop();
void previousDesktop();
Q_NOREPLY void reconfigure();
bool setCurrentDesktop(int desktop);
/**
* @deprecated
**/
void showWindowMenuAt(qlonglong winId, int x, int y);
bool startActivity(const QString &in0);
bool stopActivity(const QString &in0);
QString supportInformation();
Q_NOREPLY void unclutterDesktop();
// from compositor
/**
* @deprecated
**/
bool compositingActive();
/**
* @deprecated
**/
QString compositingNotPossibleReason();
/**
* @deprecated
**/
bool compositingPossible();
/**
* @deprecated
**/
QString compositingType();
/**
* @deprecated
**/
bool openGLIsBroken();
/**
* @deprecated
**/
Q_NOREPLY void toggleCompositing();
/**
* @deprecated
**/
bool waitForCompositingSetup();
// from effectshandler
/**
* @deprecated
**/
QStringList activeEffects();
/**
* @deprecated
**/
QStringList listOfEffects();
/**
* @deprecated
**/
void loadEffect(const QString &name);
/**
* @deprecated
**/
QStringList loadedEffects();
/**
* @deprecated
**/
void reconfigureEffect(const QString &name);
/**
* @deprecated
**/
QString supportInformationForEffect(const QString &name);
/**
* @deprecated
**/
void toggleEffect(const QString &name);
/**
* @deprecated
**/
void unloadEffect(const QString &name);
Q_SIGNALS: // SIGNALS
/**
* @deprecated
**/
void compositingToggled(bool active);
private Q_SLOTS:
void becomeKWinService(const QString &service);
};
} // namespace
#endif // KWIN_DBUS_INTERFACE_H