diff --git a/libtaskmanager/abstracttasksmodel.h b/libtaskmanager/abstracttasksmodel.h index b0b10dbdc..761d97c2c 100644 --- a/libtaskmanager/abstracttasksmodel.h +++ b/libtaskmanager/abstracttasksmodel.h @@ -83,6 +83,7 @@ public: IsDemandingAttention, /**< Task is demanding attention. */ SkipTaskbar, /**< Task should not be shown in a 'task bar' user interface. */ SkipPager, /**< Task should not to be shown in a 'pager' user interface. */ + AppPid, /**< Application Process ID */ }; Q_ENUM(AdditionalRoles) diff --git a/libtaskmanager/waylandtasksmodel.cpp b/libtaskmanager/waylandtasksmodel.cpp index 5f8229220..37f6340f1 100644 --- a/libtaskmanager/waylandtasksmodel.cpp +++ b/libtaskmanager/waylandtasksmodel.cpp @@ -332,6 +332,8 @@ QVariant WaylandTasksModel::data(const QModelIndex &index, int role) const return window->skipTaskbar(); } else if (role == SkipPager) { // FIXME Implement. + } else if (role == AppPid) { + // FIXME Implement. } return QVariant(); diff --git a/libtaskmanager/xwindowtasksmodel.cpp b/libtaskmanager/xwindowtasksmodel.cpp index 662999597..2aacd2036 100644 --- a/libtaskmanager/xwindowtasksmodel.cpp +++ b/libtaskmanager/xwindowtasksmodel.cpp @@ -52,7 +52,7 @@ namespace TaskManager { static const NET::Properties windowInfoFlags = NET::WMState | NET::XAWMState | NET::WMDesktop | - NET::WMVisibleName | NET::WMGeometry | NET::WMFrameExtents | NET::WMWindowType; + NET::WMVisibleName | NET::WMGeometry | NET::WMFrameExtents | NET::WMWindowType | NET::WMPid; static const NET::Properties2 windowInfoFlags2 = NET::WM2DesktopFileName | NET::WM2Activities | NET::WM2WindowClass | NET::WM2AllowedActions; @@ -346,7 +346,7 @@ void XWindowTasksModel::Private::windowChanged(WId window, NET::Properties prope || properties2 & (NET::WM2DesktopFileName | NET::WM2WindowClass)) { wipeInfoCache = true; wipeAppDataCache = true; - changedRoles << Qt::DisplayRole << Qt::DecorationRole << AppId << AppName << GenericName << LauncherUrl; + changedRoles << Qt::DisplayRole << Qt::DecorationRole << AppId << AppName << GenericName << LauncherUrl << AppPid; } if ((properties & NET::WMIcon) && !changedRoles.contains(Qt::DecorationRole)) { @@ -926,6 +926,8 @@ QVariant XWindowTasksModel::data(const QModelIndex &index, int role) const return (info->hasState(NET::SkipTaskbar) || info->windowType(NET::UtilityMask) == NET::Utility); } else if (role == SkipPager) { return d->windowInfo(window)->hasState(NET::SkipPager); + } else if (role == AppPid) { + return d->windowInfo(window)->pid(); } return QVariant();