You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
328 lines
6.7 KiB
328 lines
6.7 KiB
/* |
|
* Copyright 2019 Martin Flöser <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) version 3 or any later version |
|
* accepted by the membership of KDE e.V. (or its successor approved |
|
* by the membership of KDE e.V.), which shall act as a proxy |
|
* defined in Section 14 of version 3 of the license. |
|
* |
|
* 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 "windowsystem.h" |
|
|
|
#include <KWindowSystem/KWindowSystem> |
|
|
|
#include <QGuiApplication> |
|
#include <QWindow> |
|
|
|
Q_DECLARE_METATYPE(NET::WindowType) |
|
|
|
namespace KWin |
|
{ |
|
|
|
WindowSystem::WindowSystem() |
|
: QObject() |
|
, KWindowSystemPrivate() |
|
{ |
|
} |
|
|
|
void WindowSystem::activateWindow(WId win, long int time) |
|
{ |
|
Q_UNUSED(win) |
|
Q_UNUSED(time) |
|
// KWin cannot activate own windows |
|
} |
|
|
|
void WindowSystem::forceActiveWindow(WId win, long int time) |
|
{ |
|
Q_UNUSED(win) |
|
Q_UNUSED(time) |
|
// KWin cannot activate own windows |
|
} |
|
|
|
WId WindowSystem::activeWindow() |
|
{ |
|
// KWin internal should not use KWindowSystem to find active window |
|
return 0; |
|
} |
|
|
|
bool WindowSystem::allowedActionsSupported() |
|
{ |
|
return false; |
|
} |
|
|
|
void WindowSystem::allowExternalProcessWindowActivation(int pid) |
|
{ |
|
Q_UNUSED(pid) |
|
} |
|
|
|
bool WindowSystem::compositingActive() |
|
{ |
|
// wayland is always composited |
|
return true; |
|
} |
|
|
|
void WindowSystem::connectNotify(const QMetaMethod &signal) |
|
{ |
|
Q_UNUSED(signal) |
|
} |
|
|
|
QPoint WindowSystem::constrainViewportRelativePosition(const QPoint &pos) |
|
{ |
|
Q_UNUSED(pos) |
|
return QPoint(); |
|
} |
|
|
|
int WindowSystem::currentDesktop() |
|
{ |
|
// KWin internal should not use KWindowSystem to find current desktop |
|
return 0; |
|
} |
|
|
|
void WindowSystem::demandAttention(WId win, bool set) |
|
{ |
|
Q_UNUSED(win) |
|
Q_UNUSED(set) |
|
} |
|
|
|
QString WindowSystem::desktopName(int desktop) |
|
{ |
|
Q_UNUSED(desktop) |
|
return QString(); |
|
} |
|
|
|
QPoint WindowSystem::desktopToViewport(int desktop, bool absolute) |
|
{ |
|
Q_UNUSED(desktop) |
|
Q_UNUSED(absolute) |
|
return QPoint(); |
|
} |
|
|
|
#if KWINDOWSYSTEM_BUILD_DEPRECATED_SINCE(5, 0) |
|
WId WindowSystem::groupLeader(WId window) |
|
{ |
|
Q_UNUSED(window) |
|
return 0; |
|
} |
|
#endif |
|
|
|
bool WindowSystem::icccmCompliantMappingState() |
|
{ |
|
return false; |
|
} |
|
|
|
QPixmap WindowSystem::icon(WId win, int width, int height, bool scale, int flags) |
|
{ |
|
Q_UNUSED(win) |
|
Q_UNUSED(width) |
|
Q_UNUSED(height) |
|
Q_UNUSED(scale) |
|
Q_UNUSED(flags) |
|
return QPixmap(); |
|
} |
|
|
|
void WindowSystem::lowerWindow(WId win) |
|
{ |
|
Q_UNUSED(win) |
|
} |
|
|
|
bool WindowSystem::mapViewport() |
|
{ |
|
return false; |
|
} |
|
|
|
void WindowSystem::minimizeWindow(WId win) |
|
{ |
|
Q_UNUSED(win) |
|
} |
|
|
|
void WindowSystem::unminimizeWindow(WId win) |
|
{ |
|
Q_UNUSED(win) |
|
} |
|
|
|
int WindowSystem::numberOfDesktops() |
|
{ |
|
// KWin internal should not use KWindowSystem to find number of desktops |
|
return 1; |
|
} |
|
|
|
void WindowSystem::raiseWindow(WId win) |
|
{ |
|
Q_UNUSED(win) |
|
} |
|
|
|
QString WindowSystem::readNameProperty(WId window, long unsigned int atom) |
|
{ |
|
Q_UNUSED(window) |
|
Q_UNUSED(atom) |
|
return QString(); |
|
} |
|
|
|
void WindowSystem::setBlockingCompositing(WId window, bool active) |
|
{ |
|
Q_UNUSED(window) |
|
Q_UNUSED(active) |
|
} |
|
|
|
void WindowSystem::setCurrentDesktop(int desktop) |
|
{ |
|
Q_UNUSED(desktop) |
|
// KWin internal should not use KWindowSystem to set current desktop |
|
} |
|
|
|
void WindowSystem::setDesktopName(int desktop, const QString &name) |
|
{ |
|
Q_UNUSED(desktop) |
|
Q_UNUSED(name) |
|
// KWin internal should not use KWindowSystem to set desktop name |
|
} |
|
|
|
void WindowSystem::setExtendedStrut(WId win, int left_width, int left_start, int left_end, int right_width, int right_start, int right_end, int top_width, int top_start, int top_end, int bottom_width, int bottom_start, int bottom_end) |
|
{ |
|
Q_UNUSED(win) |
|
Q_UNUSED(left_width) |
|
Q_UNUSED(left_start) |
|
Q_UNUSED(left_end) |
|
Q_UNUSED(right_width) |
|
Q_UNUSED(right_start) |
|
Q_UNUSED(right_end) |
|
Q_UNUSED(top_width) |
|
Q_UNUSED(top_start) |
|
Q_UNUSED(top_end) |
|
Q_UNUSED(bottom_width) |
|
Q_UNUSED(bottom_start) |
|
Q_UNUSED(bottom_end) |
|
} |
|
|
|
void WindowSystem::setStrut(WId win, int left, int right, int top, int bottom) |
|
{ |
|
Q_UNUSED(win) |
|
Q_UNUSED(left) |
|
Q_UNUSED(right) |
|
Q_UNUSED(top) |
|
Q_UNUSED(bottom) |
|
} |
|
|
|
void WindowSystem::setIcons(WId win, const QPixmap &icon, const QPixmap &miniIcon) |
|
{ |
|
Q_UNUSED(win) |
|
Q_UNUSED(icon) |
|
Q_UNUSED(miniIcon) |
|
} |
|
|
|
void WindowSystem::setOnActivities(WId win, const QStringList &activities) |
|
{ |
|
Q_UNUSED(win) |
|
Q_UNUSED(activities) |
|
} |
|
|
|
void WindowSystem::setOnAllDesktops(WId win, bool b) |
|
{ |
|
Q_UNUSED(win) |
|
Q_UNUSED(b) |
|
} |
|
|
|
void WindowSystem::setOnDesktop(WId win, int desktop) |
|
{ |
|
Q_UNUSED(win) |
|
Q_UNUSED(desktop) |
|
} |
|
|
|
void WindowSystem::setShowingDesktop(bool showing) |
|
{ |
|
Q_UNUSED(showing) |
|
// KWin should not use KWindowSystem to set showing desktop state |
|
} |
|
|
|
void WindowSystem::clearState(WId win, NET::States state) |
|
{ |
|
// KWin's windows don't support state |
|
Q_UNUSED(win) |
|
Q_UNUSED(state) |
|
} |
|
|
|
void WindowSystem::setState(WId win, NET::States state) |
|
{ |
|
// KWin's windows don't support state |
|
Q_UNUSED(win) |
|
Q_UNUSED(state) |
|
} |
|
|
|
void WindowSystem::setType(WId win, NET::WindowType windowType) |
|
{ |
|
const auto windows = qApp->allWindows(); |
|
auto it = std::find_if(windows.begin(), windows.end(), [win] (QWindow *w) { return w->winId() == win; }); |
|
if (it == windows.end()) { |
|
return; |
|
} |
|
|
|
(*it)->setProperty("kwin_windowType", QVariant::fromValue(windowType)); |
|
} |
|
|
|
void WindowSystem::setUserTime(WId win, long int time) |
|
{ |
|
Q_UNUSED(win) |
|
Q_UNUSED(time) |
|
} |
|
|
|
bool WindowSystem::showingDesktop() |
|
{ |
|
// KWin should not use KWindowSystem for showing desktop state |
|
return false; |
|
} |
|
|
|
QList< WId > WindowSystem::stackingOrder() |
|
{ |
|
// KWin should not use KWindowSystem for stacking order |
|
return {}; |
|
} |
|
|
|
#if KWINDOWSYSTEM_BUILD_DEPRECATED_SINCE(5, 0) |
|
WId WindowSystem::transientFor(WId window) |
|
{ |
|
Q_UNUSED(window) |
|
return 0; |
|
} |
|
#endif |
|
|
|
int WindowSystem::viewportToDesktop(const QPoint &pos) |
|
{ |
|
Q_UNUSED(pos) |
|
return 0; |
|
} |
|
|
|
int WindowSystem::viewportWindowToDesktop(const QRect &r) |
|
{ |
|
Q_UNUSED(r) |
|
return 0; |
|
} |
|
|
|
QList< WId > WindowSystem::windows() |
|
{ |
|
return {}; |
|
} |
|
|
|
QRect WindowSystem::workArea(const QList< WId > &excludes, int desktop) |
|
{ |
|
Q_UNUSED(excludes) |
|
Q_UNUSED(desktop) |
|
return {}; |
|
} |
|
|
|
QRect WindowSystem::workArea(int desktop) |
|
{ |
|
Q_UNUSED(desktop) |
|
return {}; |
|
} |
|
|
|
}
|
|
|