12 #ifndef KWINDOWSYSTEM_H
13 #define KWINDOWSYSTEM_H
16 #include <QWidgetList>
17 #include <kwindowinfo.h>
18 #include <kwindowsystem_export.h>
19 #include <netwm_def.h>
21 class KWindowSystemPrivate;
47 Q_PROPERTY(
bool isPlatformWayland READ isPlatformWayland CONSTANT)
48 Q_PROPERTY(
bool isPlatformX11 READ isPlatformX11 CONSTANT)
56 #if KWINDOWSYSTEM_ENABLE_DEPRECATED_SINCE(5, 101)
75 KWINDOWSYSTEM_DEPRECATED_VERSION(5, 101,
"Use KX11Extras::windows() instead")
79 #if KWINDOWSYSTEM_ENABLE_DEPRECATED_SINCE(5, 101)
86 KWINDOWSYSTEM_DEPRECATED_VERSION(5, 101,
"Use KX11Extras::hasWId() instead")
87 static bool hasWId(WId
id);
90 #if KWINDOWSYSTEM_ENABLE_DEPRECATED_SINCE(5, 0)
102 KWINDOWSYSTEM_DEPRECATED_VERSION(5, 0,
"Use KWindowInfo(WId, NET::Properties, NET::Properties2")
106 #if KWINDOWSYSTEM_ENABLE_DEPRECATED_SINCE(5, 101)
114 KWINDOWSYSTEM_DEPRECATED_VERSION(5, 101,
"Use KX11Extras::stackingOrder() instead")
118 #if KWINDOWSYSTEM_ENABLE_DEPRECATED_SINCE(5, 101)
125 KWINDOWSYSTEM_DEPRECATED_VERSION(5, 101,
"Use KX11Extras::activeWindow() instead")
126 static WId activeWindow();
129 #if KWINDOWSYSTEM_ENABLE_DEPRECATED_SINCE(5, 101)
157 KWINDOWSYSTEM_DEPRECATED_VERSION(5, 101,
"Use KX11Extras::activateWindow() or KWindowSystem::activateWindow(QWindow *) instead")
158 static void activateWindow(WId win,
long time = 0);
189 Q_INVOKABLE
static void activateWindow(
QWindow *window,
long time = 0);
191 #if KWINDOWSYSTEM_ENABLE_DEPRECATED_SINCE(5, 101)
205 KWINDOWSYSTEM_DEPRECATED_VERSION(5, 101,
"Use KX11Extras::forceActiveWindow() instead")
206 static void forceActiveWindow(WId win,
long time = 0);
209 #if KWINDOWSYSTEM_ENABLE_DEPRECATED_SINCE(5, 101)
220 KWINDOWSYSTEM_DEPRECATED_VERSION(5, 101,
"Use QWindow::alert()")
221 static void demandAttention(WId win,
bool set =
true);
224 #if KWINDOWSYSTEM_ENABLE_DEPRECATED_SINCE(5, 101)
230 KWINDOWSYSTEM_DEPRECATED_VERSION(5, 101,
"Use KX11Extras::compositingActive() instead")
231 static bool compositingActive();
234 #if KWINDOWSYSTEM_ENABLE_DEPRECATED_SINCE(5, 101)
240 KWINDOWSYSTEM_DEPRECATED_VERSION(5, 101,
"Use KX11Extras::currentDesktop() instead")
241 static int currentDesktop();
244 #if KWINDOWSYSTEM_ENABLE_DEPRECATED_SINCE(5, 101)
250 KWINDOWSYSTEM_DEPRECATED_VERSION(5, 101,
"Use KX11Extras::numberOfDesktops() instead")
251 static int numberOfDesktops();
254 #if KWINDOWSYSTEM_ENABLE_DEPRECATED_SINCE(5, 101)
261 KWINDOWSYSTEM_DEPRECATED_VERSION(5, 101,
"Use KX11Extras::setCurrentDesktop() instead")
262 static void setCurrentDesktop(
int desktop);
265 #if KWINDOWSYSTEM_ENABLE_DEPRECATED_SINCE(5, 101)
275 KWINDOWSYSTEM_DEPRECATED_VERSION(5, 101,
"Use KX11Extras::setOnAllDesktops() instead")
276 static void setOnAllDesktops(WId win,
bool b);
279 #if KWINDOWSYSTEM_ENABLE_DEPRECATED_SINCE(5, 101)
287 KWINDOWSYSTEM_DEPRECATED_VERSION(5, 101,
"Use KX11Extras::setOnDesktop() instead")
288 static void setOnDesktop(WId win,
int desktop);
291 #if KWINDOWSYSTEM_ENABLE_DEPRECATED_SINCE(5, 101)
302 KWINDOWSYSTEM_DEPRECATED_VERSION(5, 101,
"Use KX11Extras::setOnActivities() instead")
303 static void setOnActivities(WId win,
const QStringList &activities);
317 static void setMainWindow(
QWindow *subwindow, WId mainwindow);
319 #if KWINDOWSYSTEM_ENABLE_DEPRECATED_SINCE(5, 62)
334 KWINDOWSYSTEM_DEPRECATED_VERSION(5, 62,
"Use KWindowSystem::setMainWindow(QWindow *)")
335 static void setMainWindow(
QWidget *subwindow, WId mainwindow);
338 #if KWINDOWSYSTEM_ENABLE_DEPRECATED_SINCE(5, 0)
346 KWINDOWSYSTEM_DEPRECATED_VERSION(5, 0,
"Use KWindowInfo::transientFor()")
347 static WId transientFor(WId window);
354 KWINDOWSYSTEM_DEPRECATED_VERSION(5, 0,
"Use KWindowInfo::groupLeader()")
355 static WId groupLeader(WId window);
358 #if KWINDOWSYSTEM_ENABLE_DEPRECATED_SINCE(5, 101)
376 KWINDOWSYSTEM_DEPRECATED_VERSION(5, 101,
"Use KX11Extras::icon() instead")
377 static QPixmap icon(WId win,
int width = -1,
int height = -1,
bool scale =
false);
380 #if KWINDOWSYSTEM_ENABLE_DEPRECATED_SINCE(5, 101)
397 #if KWINDOWSYSTEM_ENABLE_DEPRECATED_SINCE(5, 101)
413 KWINDOWSYSTEM_DEPRECATED_VERSION(5, 101,
"Use KX11Extras::icon() instead")
414 static
QPixmap icon(WId win,
int width,
int height,
bool scale,
int flags);
417 #if KWINDOWSYSTEM_ENABLE_DEPRECATED_SINCE(5, 101)
442 KWINDOWSYSTEM_DEPRECATED_VERSION(5, 101,
"Use KX11Extras::icon() instead")
443 static
QPixmap icon(WId win,
int width,
int height,
bool scale,
int flags,
NETWinInfo *info);
446 #if KWINDOWSYSTEM_ENABLE_DEPRECATED_SINCE(5, 101)
454 KWINDOWSYSTEM_DEPRECATED_VERSION(5, 101,
"Use QWindow::setIcon() or QGuiApplication::setWindowIcon()")
455 static
void setIcons(WId win, const
QPixmap &icon, const
QPixmap &miniIcon);
491 static void clearState(WId win,
NET::States state);
493 #if KWINDOWSYSTEM_ENABLE_DEPRECATED_SINCE(5, 101)
502 KWINDOWSYSTEM_DEPRECATED_VERSION(5, 101,
"Use KX11Extras::minimizeWindow() or QWindow::setState() instead")
503 static
void minimizeWindow(WId win);
506 #if KWINDOWSYSTEM_ENABLE_DEPRECATED_SINCE(5, 101)
515 KWINDOWSYSTEM_DEPRECATED_VERSION(5, 101,
"Use KX11Extras::unminimizeWindow() or QWindow::setState() instead")
516 static
void unminimizeWindow(WId win);
519 #if KWINDOWSYSTEM_ENABLE_DEPRECATED_SINCE(5, 0)
523 KWINDOWSYSTEM_DEPRECATED_VERSION(5, 0,
"Use KWindowSystem::minimizeWindow(WId)")
524 static
void minimizeWindow(WId win,
bool animation);
527 #if KWINDOWSYSTEM_ENABLE_DEPRECATED_SINCE(5, 0)
531 KWINDOWSYSTEM_DEPRECATED_VERSION(5, 0,
"Use KWindowSystem::unminimizeWindow(WId)")
532 static
void unminimizeWindow(WId win,
bool animation);
541 static void raiseWindow(WId win);
543 #if KWINDOWSYSTEM_ENABLE_DEPRECATED_SINCE(5, 101)
552 KWINDOWSYSTEM_DEPRECATED_VERSION(5, 101,
"No known users.")
553 static
void lowerWindow(WId win);
556 #if KWINDOWSYSTEM_ENABLE_DEPRECATED_SINCE(5, 101)
564 KWINDOWSYSTEM_DEPRECATED_VERSION(5, 101,
"Internal")
565 static
bool icccmCompliantMappingState();
568 #if KWINDOWSYSTEM_ENABLE_DEPRECATED_SINCE(5, 101)
577 KWINDOWSYSTEM_DEPRECATED_VERSION(5, 101,
"Use KX11Extras::workArea() instead")
578 static
QRect workArea(
int desktop = -1);
581 #if KWINDOWSYSTEM_ENABLE_DEPRECATED_SINCE(5, 101)
593 KWINDOWSYSTEM_DEPRECATED_VERSION(5, 101,
"Use KX11Extras::workArea() instead")
594 static
QRect workArea(const
QList<WId> &excludes,
int desktop = -1);
597 #if KWINDOWSYSTEM_ENABLE_DEPRECATED_SINCE(5, 101)
604 KWINDOWSYSTEM_DEPRECATED_VERSION(5, 101,
"Use KX11Extras::desktopName() instead")
605 static
QString desktopName(
int desktop);
608 #if KWINDOWSYSTEM_ENABLE_DEPRECATED_SINCE(5, 101)
615 KWINDOWSYSTEM_DEPRECATED_VERSION(5, 101,
"Use KX11Extras::setDesktopName() instead")
616 static
void setDesktopName(
int desktop, const
QString &name);
622 static bool showingDesktop();
633 static void setShowingDesktop(
bool showing);
635 #if KWINDOWSYSTEM_ENABLE_DEPRECATED_SINCE(5, 101)
646 KWINDOWSYSTEM_DEPRECATED_VERSION(5, 101,
"Use QX11Info::setAppUserTime()")
647 static
void setUserTime(WId win,
long time);
650 #if KWINDOWSYSTEM_ENABLE_DEPRECATED_SINCE(5, 101)
672 KWINDOWSYSTEM_DEPRECATED_VERSION(5, 101,
"Use KX11Extras::setExtendedStrut() instead. In KF6 all arguments must be in the logical coordinates.")
673 static
void setExtendedStrut(WId win,
688 #if KWINDOWSYSTEM_ENABLE_DEPRECATED_SINCE(5, 101)
700 KWINDOWSYSTEM_DEPRECATED_VERSION(5, 101,
"Use KX11Extras::setStrut() instead. In KF6 all arguments must be in the logical coordinates.")
701 static
void setStrut(WId win,
int left,
int right,
int top,
int bottom);
707 static bool allowedActionsSupported();
709 #if KWINDOWSYSTEM_ENABLE_DEPRECATED_SINCE(5, 101)
714 KWINDOWSYSTEM_DEPRECATED_VERSION(5, 101,
"Use KX11Extras::readNameProperty() instead")
715 static
QString readNameProperty(WId window,
unsigned long atom);
718 #if KWINDOWSYSTEM_ENABLE_DEPRECATED_SINCE(5, 104)
738 KWINDOWSYSTEM_DEPRECATED_VERSION(5, 104,
"Not implemented")
739 static
void allowExternalProcessWindowActivation(
int pid = -1);
742 #if KWINDOWSYSTEM_ENABLE_DEPRECATED_SINCE(5, 101)
748 KWINDOWSYSTEM_DEPRECATED_VERSION(5, 101,
"No known users")
749 static
void setBlockingCompositing(WId window,
bool active);
752 #if KWINDOWSYSTEM_ENABLE_DEPRECATED_SINCE(5, 101)
757 static bool mapViewport();
764 static int viewportToDesktop(
const QPoint &pos);
769 static int viewportWindowToDesktop(
const QRect &r);
774 static QPoint desktopToViewport(
int desktop,
bool absolute);
776 #if KWINDOWSYSTEM_ENABLE_DEPRECATED_SINCE(5, 101)
783 KWINDOWSYSTEM_DEPRECATED_VERSION(5, 101,
"No known users")
784 static
QPoint constrainViewportRelativePosition(const
QPoint &pos);
804 static void updateStartupId(
QWindow *window);
834 static Platform platform();
842 static bool isPlatformX11();
850 static bool isPlatformWayland();
862 Q_INVOKABLE
static void requestXdgActivationToken(
QWindow *win, uint32_t serial,
const QString &app_id);
869 Q_INVOKABLE
static void setCurrentXdgActivationToken(
const QString &token);
878 Q_INVOKABLE
static quint32 lastInputSerial(
QWindow *window);
882 #if KWINDOWSYSTEM_ENABLE_DEPRECATED_SINCE(5, 101)
888 KWINDOWSYSTEM_DEPRECATED_VERSION(5, 101,
"Use KX11Extras::currentDesktopChanged()")
889 void currentDesktopChanged(
int desktop);
892 #if KWINDOWSYSTEM_ENABLE_DEPRECATED_SINCE(5, 101)
898 KWINDOWSYSTEM_DEPRECATED_VERSION(5, 101,
"Use KX11Extras::windowAdded()")
899 void windowAdded(WId
id);
902 #if KWINDOWSYSTEM_ENABLE_DEPRECATED_SINCE(5, 101)
908 KWINDOWSYSTEM_DEPRECATED_VERSION(5, 101,
"Use KX11Extras::windowRemoved()")
909 void windowRemoved(WId
id);
912 #if KWINDOWSYSTEM_ENABLE_DEPRECATED_SINCE(5, 101)
918 KWINDOWSYSTEM_DEPRECATED_VERSION(5, 101,
"Use KX11Extras::activeWindowChanged()")
919 void activeWindowChanged(WId
id);
922 #if KWINDOWSYSTEM_ENABLE_DEPRECATED_SINCE(5, 101)
927 KWINDOWSYSTEM_DEPRECATED_VERSION(5, 101,
"Use KX11Extras::desktopNamesChanged()")
928 void desktopNamesChanged();
931 #if KWINDOWSYSTEM_ENABLE_DEPRECATED_SINCE(5, 101)
937 KWINDOWSYSTEM_DEPRECATED_VERSION(5, 101,
"Use KX11Extras::numberOfDesktopsChanged()")
938 void numberOfDesktopsChanged(
int num);
941 #if KWINDOWSYSTEM_ENABLE_DEPRECATED_SINCE(5, 101)
946 KWINDOWSYSTEM_DEPRECATED_VERSION(5, 101,
"Use KX11Extras::workAreaChanged()")
947 void workAreaChanged();
950 #if KWINDOWSYSTEM_ENABLE_DEPRECATED_SINCE(5, 101)
957 KWINDOWSYSTEM_DEPRECATED_VERSION(5, 101,
"Use KX11Extras::strutChanged()")
961 #if KWINDOWSYSTEM_ENABLE_DEPRECATED_SINCE(5, 101)
967 KWINDOWSYSTEM_DEPRECATED_VERSION(5, 101,
"Use KX11Extras::stackingOrderChanged()")
968 void stackingOrderChanged();
971 #if KWINDOWSYSTEM_ENABLE_DEPRECATED_SINCE(5, 101)
984 KWINDOWSYSTEM_DEPRECATED_VERSION(5, 101,
"Use KX11Extras::windowChanged")
985 void windowChanged(WId
id,
NET::Properties properties,
NET::Properties2 properties2);
988 #if KWINDOWSYSTEM_ENABLE_DEPRECATED_SINCE(5, 0)
1001 KWINDOWSYSTEM_DEPRECATED_VERSION(5, 0,
"Use KWindowSystem::windowChanged(WId, NET::Properties, NET::Properties2)")
1002 QT_MOC_COMPAT
void windowChanged(WId
id, const
unsigned long *properties);
1005 #if KWINDOWSYSTEM_ENABLE_DEPRECATED_SINCE(5, 0)
1015 KWINDOWSYSTEM_DEPRECATED_VERSION(5, 0,
"Use KWindowSystem::windowChanged(WId, NET::Properties, NET::Properties2)")
1016 QT_MOC_COMPAT
void windowChanged(WId
id,
unsigned int properties);
1019 #if KWINDOWSYSTEM_ENABLE_DEPRECATED_SINCE(5, 80)
1026 KWINDOWSYSTEM_DEPRECATED_VERSION(5, 80,
"Use KWindowSystem::windowChanged(WId, NET::Properties, NET::Properties2)")
1027 void windowChanged(WId
id);
1033 void showingDesktopChanged(
bool showing);
1035 #if KWINDOWSYSTEM_ENABLE_DEPRECATED_SINCE(5, 101)
1049 KWINDOWSYSTEM_DEPRECATED_VERSION(5, 101,
"Use KX11Extras::compositingChanged()")
1050 void compositingChanged(
bool enabled);
1060 void xdgActivationTokenArrived(
int serial,
const QString &token);
1066 friend class KWindowSystemStaticContainer;
1072 static KWindowSystemPrivate *d_func();