mirror of
https://github.com/KDE/latte-dock.git
synced 2025-03-28 18:50:40 +03:00
expose WindowAbilities from LastActiveWindow API
--expose isClosable,isMinimizable, isMaximizable etc.. through the LastActiveWindow API for applets or containments to use
This commit is contained in:
parent
63f6d22f47
commit
f8dd3d5c40
@ -198,6 +198,145 @@ void LastActiveWindow::setHasSkipTaskbar(bool skip)
|
||||
emit hasSkipTaskbarChanged();
|
||||
}
|
||||
|
||||
//! BEGIN: Window Abitilities
|
||||
bool LastActiveWindow::isClosable() const
|
||||
{
|
||||
return m_isClosable;
|
||||
}
|
||||
|
||||
void LastActiveWindow::setIsClosable(bool closable)
|
||||
{
|
||||
if (m_isClosable == closable) {
|
||||
return;
|
||||
}
|
||||
|
||||
m_isClosable = closable;
|
||||
emit isClosableChanged();
|
||||
}
|
||||
|
||||
bool LastActiveWindow::isFullScreenable() const
|
||||
{
|
||||
return m_isFullScreenable;
|
||||
}
|
||||
|
||||
void LastActiveWindow::setIsFullScreenable(bool fullscreenable)
|
||||
{
|
||||
if (m_isFullScreenable == fullscreenable) {
|
||||
return;
|
||||
}
|
||||
|
||||
m_isFullScreenable = fullscreenable;
|
||||
emit isFullScreenableChanged();
|
||||
}
|
||||
|
||||
bool LastActiveWindow::isGroupable() const
|
||||
{
|
||||
return m_isGroupable;
|
||||
}
|
||||
|
||||
void LastActiveWindow::setIsGroupable(bool groupable)
|
||||
{
|
||||
if (m_isGroupable == groupable) {
|
||||
return;
|
||||
}
|
||||
|
||||
m_isGroupable = groupable;
|
||||
emit isGroupableChanged();
|
||||
}
|
||||
|
||||
|
||||
bool LastActiveWindow::isMaximizable() const
|
||||
{
|
||||
return m_isMaximizable;
|
||||
}
|
||||
|
||||
void LastActiveWindow::setIsMaximizable(bool maximizable)
|
||||
{
|
||||
if (m_isMaximizable == maximizable) {
|
||||
return;
|
||||
}
|
||||
|
||||
m_isMaximizable = maximizable;
|
||||
emit isMaximizableChanged();
|
||||
}
|
||||
|
||||
bool LastActiveWindow::isMinimizable() const
|
||||
{
|
||||
return m_isMinimizable;
|
||||
}
|
||||
|
||||
void LastActiveWindow::setIsMinimizable(bool minimizable)
|
||||
{
|
||||
if (m_isMinimizable == minimizable) {
|
||||
return;
|
||||
}
|
||||
|
||||
m_isMinimizable = minimizable;
|
||||
emit isMinimizableChanged();
|
||||
}
|
||||
|
||||
bool LastActiveWindow::isMovable() const
|
||||
{
|
||||
return m_isMovable;
|
||||
}
|
||||
|
||||
void LastActiveWindow::setIsMovable(bool movable)
|
||||
{
|
||||
if (m_isMovable == movable) {
|
||||
return;
|
||||
}
|
||||
|
||||
m_isMovable = movable;
|
||||
emit isMovableChanged();
|
||||
}
|
||||
|
||||
bool LastActiveWindow::isResizable() const
|
||||
{
|
||||
return m_isResizable;
|
||||
}
|
||||
|
||||
void LastActiveWindow::setIsResizable(bool resizable)
|
||||
{
|
||||
if (m_isResizable == resizable) {
|
||||
return;
|
||||
}
|
||||
|
||||
m_isResizable = resizable;
|
||||
emit isResizableChanged();
|
||||
}
|
||||
|
||||
bool LastActiveWindow::isShadeable() const
|
||||
{
|
||||
return m_isShadeable;
|
||||
}
|
||||
|
||||
void LastActiveWindow::setIsShadeable(bool shadeable)
|
||||
{
|
||||
if (m_isShadeable == shadeable) {
|
||||
return;
|
||||
}
|
||||
|
||||
m_isShadeable = shadeable;
|
||||
emit isShadeableChanged();
|
||||
}
|
||||
|
||||
bool LastActiveWindow::isVirtualDesktopChangeable() const
|
||||
{
|
||||
return m_isVirtualDesktopsChangeable;
|
||||
}
|
||||
|
||||
void LastActiveWindow::setIsVirtualDesktopsChangeable(bool virtualdestkopschangeable)
|
||||
{
|
||||
if (m_isVirtualDesktopsChangeable == virtualdestkopschangeable) {
|
||||
return;
|
||||
}
|
||||
|
||||
m_isVirtualDesktopsChangeable = virtualdestkopschangeable;
|
||||
emit isVirtualDesktopChangeableChanged();
|
||||
}
|
||||
//! END: Window Abitilities
|
||||
|
||||
|
||||
QRect LastActiveWindow::geometry() const
|
||||
{
|
||||
return m_geometry;
|
||||
@ -309,6 +448,18 @@ void LastActiveWindow::setInformation(const WindowInfoWrap &info)
|
||||
setIsMaximized(info.isMaximized());
|
||||
setIsOnAllDesktops(info.isOnAllDesktops());
|
||||
|
||||
//! Window Abilities
|
||||
setIsClosable(info.isCloseable());
|
||||
setIsFullScreenable(info.isFullScreenable());
|
||||
setIsGroupable(info.isGroupable());
|
||||
setIsMaximizable(info.isMaximizable());
|
||||
setIsMinimizable(info.isMinimizable());
|
||||
setIsMovable(info.isMovable());
|
||||
setIsResizable(info.isResizable());
|
||||
setIsShadeable(info.isShadeable());
|
||||
setIsVirtualDesktopsChangeable(info.isVirtualDesktopsChangeable());
|
||||
//! Window Abilities
|
||||
|
||||
setAppName(info.appName());
|
||||
setDisplay(info.display());
|
||||
setGeometry(info.geometry());
|
||||
|
@ -45,6 +45,8 @@ namespace Tracker {
|
||||
|
||||
class LastActiveWindow : public QObject {
|
||||
Q_OBJECT
|
||||
Q_PROPERTY(bool isValid READ isValid NOTIFY isValidChanged)
|
||||
|
||||
Q_PROPERTY(bool isActive READ isActive NOTIFY isActiveChanged)
|
||||
Q_PROPERTY(bool isMinimized READ isMinimized NOTIFY isMinimizedChanged)
|
||||
Q_PROPERTY(bool isMaximized READ isMaximized NOTIFY isMaximizedChanged)
|
||||
@ -52,9 +54,21 @@ class LastActiveWindow : public QObject {
|
||||
Q_PROPERTY(bool isKeepAbove READ isKeepAbove NOTIFY isKeepAboveChanged)
|
||||
Q_PROPERTY(bool isOnAllDesktops READ isOnAllDesktops NOTIFY isOnAllDesktopsChanged)
|
||||
Q_PROPERTY(bool isShaded READ isShaded NOTIFY isShadedChanged)
|
||||
Q_PROPERTY(bool isValid READ isValid NOTIFY isValidChanged)
|
||||
Q_PROPERTY(bool hasSkipTaskbar READ hasSkipTaskbar NOTIFY hasSkipTaskbarChanged)
|
||||
|
||||
//! BEGIN: Window Abitilities
|
||||
/*since Latte v0.9.8*/
|
||||
Q_PROPERTY(bool isClosable READ isClosable NOTIFY isClosableChanged)
|
||||
Q_PROPERTY(bool isFullScreenable READ isFullScreenable NOTIFY isFullScreenableChanged)
|
||||
Q_PROPERTY(bool isGroupable READ isGroupable NOTIFY isGroupableChanged)
|
||||
Q_PROPERTY(bool isMaximizable READ isMaximizable NOTIFY isMaximizableChanged)
|
||||
Q_PROPERTY(bool isMinimizable READ isMinimizable NOTIFY isMinimizableChanged)
|
||||
Q_PROPERTY(bool isMovable READ isMovable NOTIFY isMovableChanged)
|
||||
Q_PROPERTY(bool isResizable READ isResizable NOTIFY isResizableChanged)
|
||||
Q_PROPERTY(bool isShadeable READ isShadeable NOTIFY isShadeableChanged)
|
||||
Q_PROPERTY(bool isVirtualDesktopChangeable READ isVirtualDesktopChangeable NOTIFY isVirtualDesktopChangeableChanged)
|
||||
//! END: Window Abitilities
|
||||
|
||||
/*since Latte v0.9.4*/
|
||||
Q_PROPERTY(QString colorScheme READ colorScheme NOTIFY colorSchemeChanged)
|
||||
|
||||
@ -70,6 +84,7 @@ public:
|
||||
LastActiveWindow(TrackedGeneralInfo *trackedInfo);
|
||||
~LastActiveWindow() override;
|
||||
|
||||
bool isValid() const;
|
||||
bool isActive() const;
|
||||
bool isMinimized() const;
|
||||
bool isMaximized() const;
|
||||
@ -77,9 +92,21 @@ public:
|
||||
bool isKeepAbove() const;
|
||||
bool isOnAllDesktops() const;
|
||||
bool isShaded() const;
|
||||
bool isValid() const;
|
||||
bool hasSkipTaskbar() const;
|
||||
|
||||
//! BEGIN: Window Abitilities
|
||||
/*since Latte v0.9.8*/
|
||||
bool isClosable() const;
|
||||
bool isFullScreenable() const;
|
||||
bool isGroupable() const;
|
||||
bool isMaximizable() const;
|
||||
bool isMinimizable() const;
|
||||
bool isMovable() const;
|
||||
bool isResizable() const;
|
||||
bool isShadeable() const;
|
||||
bool isVirtualDesktopChangeable() const;
|
||||
//! END: Window Abitilities
|
||||
|
||||
QString appName() const;
|
||||
QString colorScheme() const;
|
||||
QString display() const;
|
||||
@ -123,6 +150,19 @@ signals:
|
||||
void isValidChanged();
|
||||
void hasSkipTaskbarChanged();
|
||||
|
||||
//! BEGIN: Window Abitilities
|
||||
/*since Latte v0.9.8*/
|
||||
void isClosableChanged();
|
||||
void isFullScreenableChanged();
|
||||
void isGroupableChanged();
|
||||
void isMaximizableChanged();
|
||||
void isMinimizableChanged();
|
||||
void isMovableChanged();
|
||||
void isResizableChanged();
|
||||
void isShadeableChanged();
|
||||
void isVirtualDesktopChangeableChanged();
|
||||
//! END: Window Abitilities
|
||||
|
||||
void appNameChanged();
|
||||
void displayChanged();
|
||||
|
||||
@ -140,6 +180,19 @@ private:
|
||||
void setIsValid(bool valid);
|
||||
void setHasSkipTaskbar(bool skip);
|
||||
|
||||
//! BEGIN: Window Abitilities
|
||||
/*since Latte v0.9.8*/
|
||||
void setIsClosable(bool closable);
|
||||
void setIsFullScreenable(bool fullscreenable);
|
||||
void setIsGroupable(bool groupable);
|
||||
void setIsMaximizable(bool maximizable);
|
||||
void setIsMinimizable(bool minimizable);
|
||||
void setIsMovable(bool movable);
|
||||
void setIsResizable(bool resizable);
|
||||
void setIsShadeable(bool shadeable);
|
||||
void setIsVirtualDesktopsChangeable(bool virtualdestkopschangeable);
|
||||
//! END: Window Abitilities
|
||||
|
||||
void setColorScheme(QString scheme);
|
||||
|
||||
void setAppName(QString appName);
|
||||
@ -164,6 +217,19 @@ private:
|
||||
bool m_isValid{false};
|
||||
bool m_hasSkipTaskbar{false};
|
||||
|
||||
//! BEGIN: Window Abitilities
|
||||
/*since Latte v0.9.8*/
|
||||
bool m_isClosable{true};
|
||||
bool m_isFullScreenable{true};
|
||||
bool m_isGroupable{true};
|
||||
bool m_isMaximizable{true};
|
||||
bool m_isMinimizable{true};
|
||||
bool m_isMovable{true};
|
||||
bool m_isResizable{true};
|
||||
bool m_isShadeable{true};
|
||||
bool m_isVirtualDesktopsChangeable{true};
|
||||
//! END: Window Abitilities
|
||||
|
||||
QString m_colorScheme;
|
||||
|
||||
QString m_appName;
|
||||
|
@ -431,6 +431,19 @@ WindowInfoWrap WaylandInterface::requestInfo(WindowId wid) const
|
||||
winfoWrap.setIsValid(true);
|
||||
winfoWrap.setIsPlasmaDesktop(true);
|
||||
winfoWrap.setWid(wid);
|
||||
|
||||
//! Window Abilities
|
||||
winfoWrap.setIsClosable(false);
|
||||
winfoWrap.setIsFullScreenable(false);
|
||||
winfoWrap.setIsGroupable(false);
|
||||
winfoWrap.setIsMaximizable(false);
|
||||
winfoWrap.setIsMinimizable(false);
|
||||
winfoWrap.setIsMovable(false);
|
||||
winfoWrap.setIsResizable(false);
|
||||
winfoWrap.setIsShadeable(false);
|
||||
winfoWrap.setIsVirtualDesktopsChangeable(false);
|
||||
//! Window Abilities
|
||||
|
||||
} else if (isValidWindow(w)) {
|
||||
winfoWrap.setIsValid(true);
|
||||
winfoWrap.setWid(wid);
|
||||
@ -445,6 +458,18 @@ WindowInfoWrap WaylandInterface::requestInfo(WindowId wid) const
|
||||
winfoWrap.setIsOnAllActivities(true);
|
||||
winfoWrap.setGeometry(w->geometry());
|
||||
winfoWrap.setHasSkipTaskbar(w->skipTaskbar());
|
||||
|
||||
//! Window Abilities
|
||||
winfoWrap.setIsClosable(w->isCloseable());
|
||||
winfoWrap.setIsFullScreenable(w->isFullscreenable());
|
||||
winfoWrap.setIsMaximizable(w->isMaximizeable());
|
||||
winfoWrap.setIsMinimizable(w->isMinimizeable());
|
||||
winfoWrap.setIsMovable(w->isMovable());
|
||||
winfoWrap.setIsResizable(w->isResizable());
|
||||
winfoWrap.setIsShadeable(w->isShadeable());
|
||||
winfoWrap.setIsVirtualDesktopsChangeable(w->isVirtualDesktopChangeable());
|
||||
//! Window Abilities
|
||||
|
||||
winfoWrap.setDisplay(w->title());
|
||||
#if KF5_VERSION_MINOR >= 52
|
||||
winfoWrap.setDesktops(w->plasmaVirtualDesktops());
|
||||
|
@ -48,7 +48,17 @@ public:
|
||||
, m_isKeepAbove(false)
|
||||
, m_hasSkipTaskbar(false)
|
||||
, m_isOnAllDesktops(false)
|
||||
, m_isOnAllActivities(false) {
|
||||
, m_isOnAllActivities(false)
|
||||
, m_isClosable(false)
|
||||
, m_isFullScreenable(false)
|
||||
, m_isGroupable(false)
|
||||
, m_isMaximizable(false)
|
||||
, m_isMinimizable(false)
|
||||
, m_isMovable(false)
|
||||
, m_isResizable(false)
|
||||
, m_isShadeable(false)
|
||||
, m_isVirtualDesktopsChangeable(false)
|
||||
{
|
||||
}
|
||||
|
||||
WindowInfoWrap(const WindowInfoWrap &o) noexcept
|
||||
@ -67,6 +77,15 @@ public:
|
||||
, m_hasSkipTaskbar(o.m_hasSkipTaskbar)
|
||||
, m_isOnAllDesktops(o.m_isOnAllDesktops)
|
||||
, m_isOnAllActivities(o.m_isOnAllActivities)
|
||||
, m_isClosable(o.m_isClosable)
|
||||
, m_isFullScreenable(o.m_isFullScreenable)
|
||||
, m_isGroupable(o.m_isGroupable)
|
||||
, m_isMaximizable(o.m_isMaximizable)
|
||||
, m_isMinimizable(o.m_isMinimizable)
|
||||
, m_isMovable(o.m_isMovable)
|
||||
, m_isResizable(o.m_isResizable)
|
||||
, m_isShadeable(o.m_isShadeable)
|
||||
, m_isVirtualDesktopsChangeable(o.m_isVirtualDesktopsChangeable)
|
||||
, m_desktops(o.m_desktops)
|
||||
, m_activities(o.m_activities)
|
||||
, m_display(o.m_display) {
|
||||
@ -88,6 +107,15 @@ public:
|
||||
, m_hasSkipTaskbar(o.m_hasSkipTaskbar)
|
||||
, m_isOnAllDesktops(o.m_isOnAllDesktops)
|
||||
, m_isOnAllActivities(o.m_isOnAllActivities)
|
||||
, m_isClosable(o.m_isClosable)
|
||||
, m_isFullScreenable(o.m_isFullScreenable)
|
||||
, m_isGroupable(o.m_isGroupable)
|
||||
, m_isMaximizable(o.m_isMaximizable)
|
||||
, m_isMinimizable(o.m_isMinimizable)
|
||||
, m_isMovable(o.m_isMovable)
|
||||
, m_isResizable(o.m_isResizable)
|
||||
, m_isShadeable(o.m_isShadeable)
|
||||
, m_isVirtualDesktopsChangeable(o.m_isVirtualDesktopsChangeable)
|
||||
, m_desktops(o.m_desktops)
|
||||
, m_activities(o.m_activities)
|
||||
, m_display(o.m_display) {
|
||||
@ -137,6 +165,35 @@ public:
|
||||
inline bool isOnAllActivities() const noexcept;
|
||||
inline void setIsOnAllActivities(bool allactivities) noexcept;
|
||||
|
||||
//!BEGIN: Window Abilities
|
||||
inline bool isCloseable() const noexcept;
|
||||
inline void setIsClosable(bool closable) noexcept;
|
||||
|
||||
inline bool isFullScreenable() const noexcept;
|
||||
inline void setIsFullScreenable(bool fullscreenable) noexcept;
|
||||
|
||||
inline bool isGroupable() const noexcept;
|
||||
inline void setIsGroupable(bool groupable) noexcept;
|
||||
|
||||
inline bool isMaximizable() const noexcept;
|
||||
inline void setIsMaximizable(bool maximizable) noexcept;
|
||||
|
||||
inline bool isMinimizable() const noexcept;
|
||||
inline void setIsMinimizable(bool minimizable) noexcept;
|
||||
|
||||
inline bool isMovable() const noexcept;
|
||||
inline void setIsMovable(bool movable) noexcept;
|
||||
|
||||
inline bool isResizable() const noexcept;
|
||||
inline void setIsResizable(bool resizable) noexcept;
|
||||
|
||||
inline bool isShadeable() const noexcept;
|
||||
inline void setIsShadeable(bool shadeble) noexcept;
|
||||
|
||||
inline bool isVirtualDesktopsChangeable() const noexcept;
|
||||
inline void setIsVirtualDesktopsChangeable(bool virtualdesktopchangeable) noexcept;
|
||||
//!END: Window Abilities
|
||||
|
||||
inline bool isMainWindow() const noexcept;
|
||||
inline bool isChildWindow() const noexcept;
|
||||
|
||||
@ -186,6 +243,18 @@ private:
|
||||
bool m_isOnAllDesktops: 1;
|
||||
bool m_isOnAllActivities: 1;
|
||||
|
||||
//!BEGIN: Window Abilities
|
||||
bool m_isClosable : 1;
|
||||
bool m_isFullScreenable : 1;
|
||||
bool m_isGroupable : 1;
|
||||
bool m_isMaximizable : 1;
|
||||
bool m_isMinimizable : 1;
|
||||
bool m_isMovable : 1;
|
||||
bool m_isResizable : 1;
|
||||
bool m_isShadeable : 1;
|
||||
bool m_isVirtualDesktopsChangeable : 1;
|
||||
//!END: Window Abilities
|
||||
|
||||
QString m_appName;
|
||||
QString m_display;
|
||||
|
||||
@ -213,6 +282,16 @@ inline WindowInfoWrap &WindowInfoWrap::operator=(WindowInfoWrap &&rhs) noexcept
|
||||
m_hasSkipTaskbar = rhs.m_hasSkipTaskbar;
|
||||
m_isOnAllDesktops = rhs.m_isOnAllDesktops;
|
||||
m_isOnAllActivities = rhs.m_isOnAllActivities;
|
||||
m_isClosable = rhs.m_isClosable;
|
||||
m_isFullScreenable = rhs.m_isFullScreenable;
|
||||
m_isGroupable = rhs.m_isGroupable;
|
||||
m_isMaximizable = rhs.m_isMaximizable;
|
||||
m_isMinimizable = rhs.m_isMinimizable;
|
||||
m_isMovable = rhs.m_isMovable;
|
||||
m_isResizable = rhs.m_isResizable;
|
||||
m_isShadeable = rhs.m_isShadeable;
|
||||
m_isVirtualDesktopsChangeable = rhs.m_isVirtualDesktopsChangeable;
|
||||
|
||||
m_display = rhs.m_display;
|
||||
m_desktops = rhs.m_desktops;
|
||||
m_activities = rhs.m_activities;
|
||||
@ -236,6 +315,16 @@ inline WindowInfoWrap &WindowInfoWrap::operator=(const WindowInfoWrap &rhs) noex
|
||||
m_hasSkipTaskbar = rhs.m_hasSkipTaskbar;
|
||||
m_isOnAllDesktops = rhs.m_isOnAllDesktops;
|
||||
m_isOnAllActivities = rhs.m_isOnAllActivities;
|
||||
m_isClosable = rhs.m_isClosable;
|
||||
m_isFullScreenable = rhs.m_isFullScreenable;
|
||||
m_isGroupable = rhs.m_isGroupable;
|
||||
m_isMaximizable = rhs.m_isMaximizable;
|
||||
m_isMinimizable = rhs.m_isMinimizable;
|
||||
m_isMovable = rhs.m_isMovable;
|
||||
m_isResizable = rhs.m_isResizable;
|
||||
m_isShadeable = rhs.m_isShadeable;
|
||||
m_isVirtualDesktopsChangeable = rhs.m_isVirtualDesktopsChangeable;;
|
||||
|
||||
m_display = rhs.m_display;
|
||||
m_desktops = rhs.m_desktops;
|
||||
m_activities = rhs.m_activities;
|
||||
@ -382,6 +471,91 @@ inline void WindowInfoWrap::setIsOnAllActivities(bool allactivities) noexcept
|
||||
m_isOnAllActivities = allactivities;
|
||||
}
|
||||
|
||||
//!BEGIN: Window Abilities
|
||||
inline bool WindowInfoWrap::isCloseable() const noexcept
|
||||
{
|
||||
return m_isClosable;
|
||||
}
|
||||
inline void WindowInfoWrap::setIsClosable(bool closable) noexcept
|
||||
{
|
||||
m_isClosable = closable;
|
||||
}
|
||||
|
||||
inline bool WindowInfoWrap::isFullScreenable() const noexcept
|
||||
{
|
||||
return m_isFullScreenable;
|
||||
}
|
||||
inline void WindowInfoWrap::setIsFullScreenable(bool fullscreenable) noexcept
|
||||
{
|
||||
m_isFullScreenable = fullscreenable;
|
||||
}
|
||||
|
||||
inline bool WindowInfoWrap::isGroupable() const noexcept
|
||||
{
|
||||
return m_isGroupable;
|
||||
}
|
||||
inline void WindowInfoWrap::setIsGroupable(bool groupable) noexcept
|
||||
{
|
||||
m_isGroupable = groupable;
|
||||
}
|
||||
|
||||
inline bool WindowInfoWrap::isMaximizable() const noexcept
|
||||
{
|
||||
return m_isMaximizable;
|
||||
}
|
||||
inline void WindowInfoWrap::setIsMaximizable(bool maximizable) noexcept
|
||||
{
|
||||
m_isMaximizable = maximizable;
|
||||
}
|
||||
|
||||
inline bool WindowInfoWrap::isMinimizable() const noexcept
|
||||
{
|
||||
return m_isMinimizable;
|
||||
}
|
||||
inline void WindowInfoWrap::setIsMinimizable(bool minimizable) noexcept
|
||||
{
|
||||
m_isMinimizable = minimizable;
|
||||
}
|
||||
|
||||
inline bool WindowInfoWrap::isMovable() const noexcept
|
||||
{
|
||||
return m_isMovable;
|
||||
}
|
||||
inline void WindowInfoWrap::setIsMovable(bool movable) noexcept
|
||||
{
|
||||
m_isMovable = movable;
|
||||
}
|
||||
|
||||
inline bool WindowInfoWrap::isResizable() const noexcept
|
||||
{
|
||||
return m_isResizable;
|
||||
}
|
||||
inline void WindowInfoWrap::setIsResizable(bool resizable) noexcept
|
||||
{
|
||||
m_isResizable = resizable;
|
||||
}
|
||||
|
||||
inline bool WindowInfoWrap::isShadeable() const noexcept
|
||||
{
|
||||
return m_isShadeable;
|
||||
}
|
||||
inline void WindowInfoWrap::setIsShadeable(bool shadeble) noexcept
|
||||
{
|
||||
m_isShadeable = shadeble;
|
||||
}
|
||||
|
||||
inline bool WindowInfoWrap::isVirtualDesktopsChangeable() const noexcept
|
||||
{
|
||||
return m_isVirtualDesktopsChangeable;
|
||||
}
|
||||
inline void WindowInfoWrap::setIsVirtualDesktopsChangeable(bool virtualdesktopchangeable) noexcept
|
||||
{
|
||||
m_isVirtualDesktopsChangeable = virtualdesktopchangeable;
|
||||
}
|
||||
//!END: Window Abilities
|
||||
|
||||
|
||||
|
||||
inline bool WindowInfoWrap::isMainWindow() const noexcept
|
||||
{
|
||||
return (m_parentId.toInt() <= 0);
|
||||
|
@ -315,6 +315,7 @@ WindowInfoWrap XWindowInterface::requestInfo(WindowId wid) const
|
||||
| NET::WMVisibleName,
|
||||
NET::WM2WindowClass
|
||||
| NET::WM2Activities
|
||||
| NET::WM2AllowedActions
|
||||
| NET::WM2TransientFor};
|
||||
|
||||
//! update desktop id
|
||||
@ -344,8 +345,19 @@ WindowInfoWrap XWindowInterface::requestInfo(WindowId wid) const
|
||||
winfoWrap.setGeometry(winfo.frameGeometry());
|
||||
winfoWrap.setIsKeepAbove(winfo.hasState(NET::KeepAbove));
|
||||
winfoWrap.setHasSkipTaskbar(winfo.hasState(NET::SkipTaskbar));
|
||||
winfoWrap.setDisplay(winfo.visibleName());
|
||||
|
||||
//! Window Abilities
|
||||
winfoWrap.setIsClosable(winfo.actionSupported(NET::ActionClose));
|
||||
winfoWrap.setIsFullScreenable(winfo.actionSupported(NET::ActionFullScreen));
|
||||
winfoWrap.setIsMaximizable(winfo.actionSupported(NET::ActionMax));
|
||||
winfoWrap.setIsMinimizable(winfo.actionSupported(NET::ActionMinimize));
|
||||
winfoWrap.setIsMovable(winfo.actionSupported(NET::ActionMove));
|
||||
winfoWrap.setIsResizable(winfo.actionSupported(NET::ActionResize));
|
||||
winfoWrap.setIsShadeable(winfo.actionSupported(NET::ActionShade));
|
||||
winfoWrap.setIsVirtualDesktopsChangeable(winfo.actionSupported(NET::ActionChangeDesktop));
|
||||
//! Window Abilities
|
||||
|
||||
winfoWrap.setDisplay(winfo.visibleName());
|
||||
winfoWrap.setDesktops({QString(winfo.desktop())});
|
||||
winfoWrap.setActivities(winfo.activities());
|
||||
} else if (m_desktopId == wid) {
|
||||
@ -354,6 +366,18 @@ WindowInfoWrap XWindowInterface::requestInfo(WindowId wid) const
|
||||
winfoWrap.setWid(wid);
|
||||
winfoWrap.setParentId(0);
|
||||
winfoWrap.setHasSkipTaskbar(true);
|
||||
|
||||
//! Window Abilities
|
||||
winfoWrap.setIsClosable(false);
|
||||
winfoWrap.setIsFullScreenable(false);
|
||||
winfoWrap.setIsGroupable(false);
|
||||
winfoWrap.setIsMaximizable(false);
|
||||
winfoWrap.setIsMinimizable(false);
|
||||
winfoWrap.setIsMovable(false);
|
||||
winfoWrap.setIsResizable(false);
|
||||
winfoWrap.setIsShadeable(false);
|
||||
winfoWrap.setIsVirtualDesktopsChangeable(false);
|
||||
//! Window Abilities
|
||||
}
|
||||
|
||||
return winfoWrap;
|
||||
@ -402,34 +426,23 @@ QUrl XWindowInterface::windowUrl(WindowId wid) const
|
||||
|
||||
bool XWindowInterface::windowCanBeDragged(WindowId wid) const
|
||||
{
|
||||
KWindowInfo info(wid.value<WId>(), 0, NET::WM2AllowedActions);
|
||||
|
||||
if (info.valid()) {
|
||||
WindowInfoWrap winfo = requestInfo(wid);
|
||||
return (winfo.isValid()
|
||||
&& info.actionSupported(NET::ActionMove)
|
||||
&& !winfo.isMinimized()
|
||||
&& inCurrentDesktopActivity(winfo)
|
||||
&& !winfo.isPlasmaDesktop());
|
||||
}
|
||||
|
||||
return false;
|
||||
WindowInfoWrap winfo = requestInfo(wid);
|
||||
return (winfo.isValid()
|
||||
&& !winfo.isMinimized()
|
||||
&& winfo.isMovable()
|
||||
&& inCurrentDesktopActivity(winfo)
|
||||
&& !winfo.isPlasmaDesktop());
|
||||
}
|
||||
|
||||
bool XWindowInterface::windowCanBeMaximized(WindowId wid) const
|
||||
{
|
||||
KWindowInfo info(wid.value<WId>(), 0, NET::WM2AllowedActions);
|
||||
|
||||
if (info.valid()) {
|
||||
WindowInfoWrap winfo = requestInfo(wid);
|
||||
return (winfo.isValid()
|
||||
&& !winfo.isMinimized()
|
||||
&& info.actionSupported(NET::ActionMax)
|
||||
&& inCurrentDesktopActivity(winfo)
|
||||
&& !winfo.isPlasmaDesktop());
|
||||
}
|
||||
|
||||
return false;
|
||||
WindowInfoWrap winfo = requestInfo(wid);
|
||||
return (winfo.isValid()
|
||||
&& !winfo.isMinimized()
|
||||
&& winfo.isMaximizable()
|
||||
&& inCurrentDesktopActivity(winfo)
|
||||
&& !winfo.isPlasmaDesktop());
|
||||
}
|
||||
|
||||
void XWindowInterface::requestActivate(WindowId wid) const
|
||||
|
Loading…
x
Reference in New Issue
Block a user