move Activities singleton into Workspace
This commit is contained in:
parent
f2ad6bcce9
commit
1cf2205283
16 changed files with 67 additions and 61 deletions
|
@ -128,8 +128,8 @@ void ActivitiesTest::testSetOnActivitiesValidates()
|
||||||
QVERIFY(window->isDecorated());
|
QVERIFY(window->isDecorated());
|
||||||
|
|
||||||
// verify the test machine doesn't have the following activities used
|
// verify the test machine doesn't have the following activities used
|
||||||
QVERIFY(!Activities::self()->all().contains(QStringLiteral("foo")));
|
QVERIFY(!Workspace::self()->activities()->all().contains(QStringLiteral("foo")));
|
||||||
QVERIFY(!Activities::self()->all().contains(QStringLiteral("bar")));
|
QVERIFY(!Workspace::self()->activities()->all().contains(QStringLiteral("bar")));
|
||||||
|
|
||||||
window->setOnActivities(QStringList{QStringLiteral("foo"), QStringLiteral("bar")});
|
window->setOnActivities(QStringList{QStringLiteral("foo"), QStringLiteral("bar")});
|
||||||
QVERIFY(!window->activities().contains(QLatin1String("foo")));
|
QVERIFY(!window->activities().contains(QLatin1String("foo")));
|
||||||
|
|
|
@ -297,7 +297,8 @@ void Workspace::activateWindow(Window *window, bool force)
|
||||||
if (!window->isOnCurrentActivity()) {
|
if (!window->isOnCurrentActivity()) {
|
||||||
++block_focus;
|
++block_focus;
|
||||||
// DBUS!
|
// DBUS!
|
||||||
Activities::self()->setCurrent(window->activities().constFirst()); // first isn't necessarily best, but it's easiest
|
// first isn't necessarily best, but it's easiest
|
||||||
|
m_activities->setCurrent(window->activities().constFirst());
|
||||||
--block_focus;
|
--block_focus;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -21,11 +21,8 @@
|
||||||
namespace KWin
|
namespace KWin
|
||||||
{
|
{
|
||||||
|
|
||||||
KWIN_SINGLETON_FACTORY(Activities)
|
Activities::Activities()
|
||||||
|
: m_controller(new KActivities::Controller(this))
|
||||||
Activities::Activities(QObject *parent)
|
|
||||||
: QObject(parent)
|
|
||||||
, m_controller(new KActivities::Controller(this))
|
|
||||||
{
|
{
|
||||||
connect(m_controller, &KActivities::Controller::activityRemoved, this, &Activities::slotRemoved);
|
connect(m_controller, &KActivities::Controller::activityRemoved, this, &Activities::slotRemoved);
|
||||||
connect(m_controller, &KActivities::Controller::activityRemoved, this, &Activities::removed);
|
connect(m_controller, &KActivities::Controller::activityRemoved, this, &Activities::removed);
|
||||||
|
@ -33,11 +30,6 @@ Activities::Activities(QObject *parent)
|
||||||
connect(m_controller, &KActivities::Controller::currentActivityChanged, this, &Activities::slotCurrentChanged);
|
connect(m_controller, &KActivities::Controller::currentActivityChanged, this, &Activities::slotCurrentChanged);
|
||||||
}
|
}
|
||||||
|
|
||||||
Activities::~Activities()
|
|
||||||
{
|
|
||||||
s_self = nullptr;
|
|
||||||
}
|
|
||||||
|
|
||||||
KActivities::Consumer::ServiceStatus Activities::serviceStatus() const
|
KActivities::Consumer::ServiceStatus Activities::serviceStatus() const
|
||||||
{
|
{
|
||||||
return m_controller->serviceStatus();
|
return m_controller->serviceStatus();
|
||||||
|
|
|
@ -30,7 +30,7 @@ class KWIN_EXPORT Activities : public QObject
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|
||||||
public:
|
public:
|
||||||
~Activities() override;
|
explicit Activities();
|
||||||
|
|
||||||
bool stop(const QString &id);
|
bool stop(const QString &id);
|
||||||
bool start(const QString &id);
|
bool start(const QString &id);
|
||||||
|
@ -79,8 +79,6 @@ private:
|
||||||
QString m_previous;
|
QString m_previous;
|
||||||
QString m_current;
|
QString m_current;
|
||||||
KActivities::Controller *m_controller;
|
KActivities::Controller *m_controller;
|
||||||
|
|
||||||
KWIN_SINGLETON(Activities)
|
|
||||||
};
|
};
|
||||||
|
|
||||||
inline QStringList Activities::all() const
|
inline QStringList Activities::all() const
|
||||||
|
|
|
@ -102,10 +102,10 @@ QString DBusInterface::activeOutputName()
|
||||||
bool DBusInterface::startActivity(const QString &in0)
|
bool DBusInterface::startActivity(const QString &in0)
|
||||||
{
|
{
|
||||||
#if KWIN_BUILD_ACTIVITIES
|
#if KWIN_BUILD_ACTIVITIES
|
||||||
if (!Activities::self()) {
|
if (!Workspace::self()->activities()) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
return Activities::self()->start(in0);
|
return Workspace::self()->activities()->start(in0);
|
||||||
#else
|
#else
|
||||||
Q_UNUSED(in0)
|
Q_UNUSED(in0)
|
||||||
return false;
|
return false;
|
||||||
|
@ -115,10 +115,10 @@ bool DBusInterface::startActivity(const QString &in0)
|
||||||
bool DBusInterface::stopActivity(const QString &in0)
|
bool DBusInterface::stopActivity(const QString &in0)
|
||||||
{
|
{
|
||||||
#if KWIN_BUILD_ACTIVITIES
|
#if KWIN_BUILD_ACTIVITIES
|
||||||
if (!Activities::self()) {
|
if (!Workspace::self()->activities()) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
return Activities::self()->stop(in0);
|
return Workspace::self()->activities()->stop(in0);
|
||||||
#else
|
#else
|
||||||
Q_UNUSED(in0)
|
Q_UNUSED(in0)
|
||||||
return false;
|
return false;
|
||||||
|
|
|
@ -197,7 +197,7 @@ EffectsHandlerImpl::EffectsHandlerImpl(Compositor *compositor, Scene *scene)
|
||||||
connect(ws, &Workspace::geometryChanged, this, &EffectsHandler::virtualScreenSizeChanged);
|
connect(ws, &Workspace::geometryChanged, this, &EffectsHandler::virtualScreenSizeChanged);
|
||||||
connect(ws, &Workspace::geometryChanged, this, &EffectsHandler::virtualScreenGeometryChanged);
|
connect(ws, &Workspace::geometryChanged, this, &EffectsHandler::virtualScreenGeometryChanged);
|
||||||
#if KWIN_BUILD_ACTIVITIES
|
#if KWIN_BUILD_ACTIVITIES
|
||||||
if (Activities *activities = Activities::self()) {
|
if (Activities *activities = Workspace::self()->activities()) {
|
||||||
connect(activities, &Activities::added, this, &EffectsHandler::activityAdded);
|
connect(activities, &Activities::added, this, &EffectsHandler::activityAdded);
|
||||||
connect(activities, &Activities::removed, this, &EffectsHandler::activityRemoved);
|
connect(activities, &Activities::removed, this, &EffectsHandler::activityRemoved);
|
||||||
connect(activities, &Activities::currentChanged, this, &EffectsHandler::currentActivityChanged);
|
connect(activities, &Activities::currentChanged, this, &EffectsHandler::currentActivityChanged);
|
||||||
|
@ -979,10 +979,10 @@ void EffectsHandlerImpl::setShowingDesktop(bool showing)
|
||||||
QString EffectsHandlerImpl::currentActivity() const
|
QString EffectsHandlerImpl::currentActivity() const
|
||||||
{
|
{
|
||||||
#if KWIN_BUILD_ACTIVITIES
|
#if KWIN_BUILD_ACTIVITIES
|
||||||
if (!Activities::self()) {
|
if (!Workspace::self()->activities()) {
|
||||||
return QString();
|
return QString();
|
||||||
}
|
}
|
||||||
return Activities::self()->current();
|
return Workspace::self()->activities()->current();
|
||||||
#else
|
#else
|
||||||
return QString();
|
return QString();
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -101,7 +101,7 @@ void DesktopBackgroundItem::updateWindow()
|
||||||
QString activity = m_activity;
|
QString activity = m_activity;
|
||||||
if (activity.isEmpty()) {
|
if (activity.isEmpty()) {
|
||||||
#if KWIN_BUILD_ACTIVITIES
|
#if KWIN_BUILD_ACTIVITIES
|
||||||
activity = Activities::self()->current();
|
activity = Workspace::self()->activities()->current();
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -31,7 +31,7 @@ ClientLevel::ClientLevel(ClientModel *model, AbstractLevel *parent)
|
||||||
: AbstractLevel(model, parent)
|
: AbstractLevel(model, parent)
|
||||||
{
|
{
|
||||||
#if KWIN_BUILD_ACTIVITIES
|
#if KWIN_BUILD_ACTIVITIES
|
||||||
if (Activities *activities = Activities::self()) {
|
if (Activities *activities = Workspace::self()->activities()) {
|
||||||
connect(activities, &Activities::currentChanged, this, &ClientLevel::reInit);
|
connect(activities, &Activities::currentChanged, this, &ClientLevel::reInit);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
@ -307,8 +307,8 @@ AbstractLevel *AbstractLevel::create(const QList<ClientModel::LevelRestriction>
|
||||||
switch (restriction) {
|
switch (restriction) {
|
||||||
case ClientModel::ActivityRestriction: {
|
case ClientModel::ActivityRestriction: {
|
||||||
#if KWIN_BUILD_ACTIVITIES
|
#if KWIN_BUILD_ACTIVITIES
|
||||||
if (Activities::self()) {
|
if (Workspace::self()->activities()) {
|
||||||
const QStringList &activities = Activities::self()->all();
|
const QStringList &activities = Workspace::self()->activities()->all();
|
||||||
for (QStringList::const_iterator it = activities.begin(); it != activities.end(); ++it) {
|
for (QStringList::const_iterator it = activities.begin(); it != activities.end(); ++it) {
|
||||||
AbstractLevel *childLevel = create(childRestrictions, childrenRestrictions, model, currentLevel);
|
AbstractLevel *childLevel = create(childRestrictions, childrenRestrictions, model, currentLevel);
|
||||||
if (!childLevel) {
|
if (!childLevel) {
|
||||||
|
@ -400,7 +400,7 @@ ForkLevel::ForkLevel(const QList<ClientModel::LevelRestriction> &childRestrictio
|
||||||
connect(VirtualDesktopManager::self(), &VirtualDesktopManager::countChanged, this, &ForkLevel::desktopCountChanged);
|
connect(VirtualDesktopManager::self(), &VirtualDesktopManager::countChanged, this, &ForkLevel::desktopCountChanged);
|
||||||
connect(screens(), &Screens::countChanged, this, &ForkLevel::screenCountChanged);
|
connect(screens(), &Screens::countChanged, this, &ForkLevel::screenCountChanged);
|
||||||
#if KWIN_BUILD_ACTIVITIES
|
#if KWIN_BUILD_ACTIVITIES
|
||||||
if (Activities *activities = Activities::self()) {
|
if (Activities *activities = Workspace::self()->activities()) {
|
||||||
connect(activities, &Activities::added, this, &ForkLevel::activityAdded);
|
connect(activities, &Activities::added, this, &ForkLevel::activityAdded);
|
||||||
connect(activities, &Activities::removed, this, &ForkLevel::activityRemoved);
|
connect(activities, &Activities::removed, this, &ForkLevel::activityRemoved);
|
||||||
}
|
}
|
||||||
|
|
|
@ -41,7 +41,7 @@ WorkspaceWrapper::WorkspaceWrapper(QObject *parent)
|
||||||
connect(vds, &VirtualDesktopManager::currentChanged, this, &WorkspaceWrapper::currentVirtualDesktopChanged);
|
connect(vds, &VirtualDesktopManager::currentChanged, this, &WorkspaceWrapper::currentVirtualDesktopChanged);
|
||||||
connect(ws, &Workspace::windowDemandsAttentionChanged, this, &WorkspaceWrapper::clientDemandsAttentionChanged);
|
connect(ws, &Workspace::windowDemandsAttentionChanged, this, &WorkspaceWrapper::clientDemandsAttentionChanged);
|
||||||
#if KWIN_BUILD_ACTIVITIES
|
#if KWIN_BUILD_ACTIVITIES
|
||||||
if (KWin::Activities *activities = KWin::Activities::self()) {
|
if (KWin::Activities *activities = ws->activities()) {
|
||||||
connect(activities, &Activities::currentChanged, this, &WorkspaceWrapper::currentActivityChanged);
|
connect(activities, &Activities::currentChanged, this, &WorkspaceWrapper::currentActivityChanged);
|
||||||
connect(activities, &Activities::added, this, &WorkspaceWrapper::activitiesChanged);
|
connect(activities, &Activities::added, this, &WorkspaceWrapper::activitiesChanged);
|
||||||
connect(activities, &Activities::added, this, &WorkspaceWrapper::activityAdded);
|
connect(activities, &Activities::added, this, &WorkspaceWrapper::activityAdded);
|
||||||
|
@ -104,10 +104,10 @@ Window *WorkspaceWrapper::activeClient() const
|
||||||
QString WorkspaceWrapper::currentActivity() const
|
QString WorkspaceWrapper::currentActivity() const
|
||||||
{
|
{
|
||||||
#if KWIN_BUILD_ACTIVITIES
|
#if KWIN_BUILD_ACTIVITIES
|
||||||
if (!Activities::self()) {
|
if (!Workspace::self()->activities()) {
|
||||||
return QString();
|
return QString();
|
||||||
}
|
}
|
||||||
return Activities::self()->current();
|
return Workspace::self()->activities()->current();
|
||||||
#else
|
#else
|
||||||
return QString();
|
return QString();
|
||||||
#endif
|
#endif
|
||||||
|
@ -116,8 +116,8 @@ QString WorkspaceWrapper::currentActivity() const
|
||||||
void WorkspaceWrapper::setCurrentActivity(QString activity)
|
void WorkspaceWrapper::setCurrentActivity(QString activity)
|
||||||
{
|
{
|
||||||
#if KWIN_BUILD_ACTIVITIES
|
#if KWIN_BUILD_ACTIVITIES
|
||||||
if (Activities::self()) {
|
if (Workspace::self()->activities()) {
|
||||||
Activities::self()->setCurrent(activity);
|
Workspace::self()->activities()->setCurrent(activity);
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
Q_UNUSED(activity)
|
Q_UNUSED(activity)
|
||||||
|
@ -127,10 +127,10 @@ void WorkspaceWrapper::setCurrentActivity(QString activity)
|
||||||
QStringList WorkspaceWrapper::activityList() const
|
QStringList WorkspaceWrapper::activityList() const
|
||||||
{
|
{
|
||||||
#if KWIN_BUILD_ACTIVITIES
|
#if KWIN_BUILD_ACTIVITIES
|
||||||
if (!Activities::self()) {
|
if (!Workspace::self()->activities()) {
|
||||||
return QStringList();
|
return QStringList();
|
||||||
}
|
}
|
||||||
return Activities::self()->all();
|
return Workspace::self()->activities()->all();
|
||||||
#else
|
#else
|
||||||
return QStringList();
|
return QStringList();
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -70,8 +70,8 @@ TabBoxHandlerImpl::TabBoxHandlerImpl(TabBox *tabBox)
|
||||||
connect(vds, &VirtualDesktopManager::countChanged, m_desktopFocusChain, &DesktopChainManager::resize);
|
connect(vds, &VirtualDesktopManager::countChanged, m_desktopFocusChain, &DesktopChainManager::resize);
|
||||||
connect(vds, &VirtualDesktopManager::currentChanged, m_desktopFocusChain, &DesktopChainManager::addDesktop);
|
connect(vds, &VirtualDesktopManager::currentChanged, m_desktopFocusChain, &DesktopChainManager::addDesktop);
|
||||||
#if KWIN_BUILD_ACTIVITIES
|
#if KWIN_BUILD_ACTIVITIES
|
||||||
if (Activities::self()) {
|
if (Workspace::self()->activities()) {
|
||||||
connect(Activities::self(), &Activities::currentChanged, m_desktopFocusChain, &DesktopChainManager::useChain);
|
connect(Workspace::self()->activities(), &Activities::currentChanged, m_desktopFocusChain, &DesktopChainManager::useChain);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
|
@ -418,10 +418,10 @@ void UserActionsMenu::menuAboutToShow()
|
||||||
void UserActionsMenu::showHideActivityMenu()
|
void UserActionsMenu::showHideActivityMenu()
|
||||||
{
|
{
|
||||||
#if KWIN_BUILD_ACTIVITIES
|
#if KWIN_BUILD_ACTIVITIES
|
||||||
if (!Activities::self()) {
|
if (!Workspace::self()->activities()) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
const QStringList &openActivities_ = Activities::self()->running();
|
const QStringList &openActivities_ = Workspace::self()->activities()->running();
|
||||||
qCDebug(KWIN_CORE) << "activities:" << openActivities_.size();
|
qCDebug(KWIN_CORE) << "activities:" << openActivities_.size();
|
||||||
if (openActivities_.size() < 2) {
|
if (openActivities_.size() < 2) {
|
||||||
delete m_activityMenu;
|
delete m_activityMenu;
|
||||||
|
@ -696,7 +696,7 @@ void UserActionsMenu::activityPopupAboutToShow()
|
||||||
}
|
}
|
||||||
|
|
||||||
#if KWIN_BUILD_ACTIVITIES
|
#if KWIN_BUILD_ACTIVITIES
|
||||||
if (!Activities::self()) {
|
if (!Workspace::self()->activities()) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
m_activityMenu->clear();
|
m_activityMenu->clear();
|
||||||
|
@ -717,7 +717,7 @@ void UserActionsMenu::activityPopupAboutToShow()
|
||||||
}
|
}
|
||||||
m_activityMenu->addSeparator();
|
m_activityMenu->addSeparator();
|
||||||
|
|
||||||
const auto activities = Activities::self()->running();
|
const auto activities = Workspace::self()->activities()->running();
|
||||||
for (const QString &id : activities) {
|
for (const QString &id : activities) {
|
||||||
KActivities::Info activity(id);
|
KActivities::Info activity(id);
|
||||||
QString name = activity.name();
|
QString name = activity.name();
|
||||||
|
@ -776,7 +776,7 @@ void UserActionsMenu::slotWindowOperation(QAction *action)
|
||||||
void UserActionsMenu::slotToggleOnActivity(QAction *action)
|
void UserActionsMenu::slotToggleOnActivity(QAction *action)
|
||||||
{
|
{
|
||||||
#if KWIN_BUILD_ACTIVITIES
|
#if KWIN_BUILD_ACTIVITIES
|
||||||
if (!Activities::self()) {
|
if (!Workspace::self()->activities()) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
QString activity = action->data().toString();
|
QString activity = action->data().toString();
|
||||||
|
@ -789,7 +789,7 @@ void UserActionsMenu::slotToggleOnActivity(QAction *action)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
Activities::self()->toggleWindowOnActivity(m_window, activity, false);
|
Workspace::self()->activities()->toggleWindowOnActivity(m_window, activity, false);
|
||||||
if (m_activityMenu && m_activityMenu->isVisible() && m_activityMenu->actions().count()) {
|
if (m_activityMenu && m_activityMenu->isVisible() && m_activityMenu->actions().count()) {
|
||||||
const bool isOnAll = m_window->isOnAllActivities();
|
const bool isOnAll = m_window->isOnAllActivities();
|
||||||
m_activityMenu->actions().at(0)->setChecked(isOnAll);
|
m_activityMenu->actions().at(0)->setChecked(isOnAll);
|
||||||
|
|
|
@ -546,10 +546,10 @@ bool Window::isDeleted() const
|
||||||
bool Window::isOnCurrentActivity() const
|
bool Window::isOnCurrentActivity() const
|
||||||
{
|
{
|
||||||
#if KWIN_BUILD_ACTIVITIES
|
#if KWIN_BUILD_ACTIVITIES
|
||||||
if (!Activities::self()) {
|
if (!Workspace::self()->activities()) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
return isOnActivity(Activities::self()->current());
|
return isOnActivity(Workspace::self()->activities()->current());
|
||||||
#else
|
#else
|
||||||
return true;
|
return true;
|
||||||
#endif
|
#endif
|
||||||
|
@ -3464,7 +3464,7 @@ QStringList Window::activities() const
|
||||||
void Window::setOnActivity(const QString &activity, bool enable)
|
void Window::setOnActivity(const QString &activity, bool enable)
|
||||||
{
|
{
|
||||||
#if KWIN_BUILD_ACTIVITIES
|
#if KWIN_BUILD_ACTIVITIES
|
||||||
if (!Activities::self()) {
|
if (!Workspace::self()->activities()) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
QStringList newActivitiesList = activities();
|
QStringList newActivitiesList = activities();
|
||||||
|
@ -3473,7 +3473,7 @@ void Window::setOnActivity(const QString &activity, bool enable)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (enable) {
|
if (enable) {
|
||||||
QStringList allActivities = Activities::self()->all();
|
QStringList allActivities = Workspace::self()->activities()->all();
|
||||||
if (!allActivities.contains(activity)) {
|
if (!allActivities.contains(activity)) {
|
||||||
// bogus ID
|
// bogus ID
|
||||||
return;
|
return;
|
||||||
|
@ -3495,10 +3495,10 @@ void Window::setOnActivity(const QString &activity, bool enable)
|
||||||
void Window::setOnActivities(const QStringList &newActivitiesList)
|
void Window::setOnActivities(const QStringList &newActivitiesList)
|
||||||
{
|
{
|
||||||
#if KWIN_BUILD_ACTIVITIES
|
#if KWIN_BUILD_ACTIVITIES
|
||||||
if (!Activities::self()) {
|
if (!Workspace::self()->activities()) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
const auto allActivities = Activities::self()->all();
|
const auto allActivities = Workspace::self()->activities()->all();
|
||||||
const auto activityList = [&] {
|
const auto activityList = [&] {
|
||||||
auto result = rules()->checkActivity(newActivitiesList);
|
auto result = rules()->checkActivity(newActivitiesList);
|
||||||
|
|
||||||
|
@ -3543,7 +3543,7 @@ void Window::setOnAllActivities(bool all)
|
||||||
if (all) {
|
if (all) {
|
||||||
setOnActivities(QStringList());
|
setOnActivities(QStringList());
|
||||||
} else {
|
} else {
|
||||||
setOnActivity(Activities::self()->current(), true);
|
setOnActivity(Workspace::self()->activities()->current(), true);
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
Q_UNUSED(all)
|
Q_UNUSED(all)
|
||||||
|
|
|
@ -135,12 +135,11 @@ Workspace::Workspace()
|
||||||
_self = this;
|
_self = this;
|
||||||
|
|
||||||
#if KWIN_BUILD_ACTIVITIES
|
#if KWIN_BUILD_ACTIVITIES
|
||||||
Activities *activities = nullptr;
|
|
||||||
if (kwinApp()->usesKActivities()) {
|
if (kwinApp()->usesKActivities()) {
|
||||||
activities = Activities::create(this);
|
m_activities = std::make_unique<Activities>();
|
||||||
}
|
}
|
||||||
if (activities) {
|
if (m_activities) {
|
||||||
connect(activities, &Activities::currentChanged, this, &Workspace::updateCurrentActivity);
|
connect(m_activities.get(), &Activities::currentChanged, this, &Workspace::updateCurrentActivity);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -1102,7 +1101,7 @@ Window *Workspace::findWindowToActivateOnDesktop(VirtualDesktop *desktop)
|
||||||
void Workspace::updateCurrentActivity(const QString &new_activity)
|
void Workspace::updateCurrentActivity(const QString &new_activity)
|
||||||
{
|
{
|
||||||
#if KWIN_BUILD_ACTIVITIES
|
#if KWIN_BUILD_ACTIVITIES
|
||||||
if (!Activities::self()) {
|
if (!m_activities) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
// closeActivePopup();
|
// closeActivePopup();
|
||||||
|
@ -2828,4 +2827,11 @@ FocusChain *Workspace::focusChain() const
|
||||||
return m_focusChain.get();
|
return m_focusChain.get();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if KWIN_BUILD_ACTIVITIES
|
||||||
|
Activities *Workspace::activities() const
|
||||||
|
{
|
||||||
|
return m_activities.get();
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
} // namespace
|
} // namespace
|
||||||
|
|
|
@ -56,6 +56,9 @@ class X11Window;
|
||||||
class X11EventFilter;
|
class X11EventFilter;
|
||||||
class FocusChain;
|
class FocusChain;
|
||||||
enum class Predicate;
|
enum class Predicate;
|
||||||
|
#if KWIN_BUILD_ACTIVITIES
|
||||||
|
class Activities;
|
||||||
|
#endif
|
||||||
|
|
||||||
class KWIN_EXPORT Workspace : public QObject
|
class KWIN_EXPORT Workspace : public QObject
|
||||||
{
|
{
|
||||||
|
@ -425,6 +428,9 @@ public:
|
||||||
return m_lastActiveWindow;
|
return m_lastActiveWindow;
|
||||||
}
|
}
|
||||||
FocusChain *focusChain() const;
|
FocusChain *focusChain() const;
|
||||||
|
#if KWIN_BUILD_ACTIVITIES
|
||||||
|
Activities *activities() const;
|
||||||
|
#endif
|
||||||
|
|
||||||
public Q_SLOTS:
|
public Q_SLOTS:
|
||||||
void performWindowOperation(KWin::Window *window, Options::WindowOperation op);
|
void performWindowOperation(KWin::Window *window, Options::WindowOperation op);
|
||||||
|
@ -694,6 +700,9 @@ private:
|
||||||
|
|
||||||
SessionManager *m_sessionManager;
|
SessionManager *m_sessionManager;
|
||||||
std::unique_ptr<FocusChain> m_focusChain;
|
std::unique_ptr<FocusChain> m_focusChain;
|
||||||
|
#if KWIN_BUILD_ACTIVITIES
|
||||||
|
std::unique_ptr<Activities> m_activities;
|
||||||
|
#endif
|
||||||
|
|
||||||
private:
|
private:
|
||||||
friend bool performTransiencyCheck();
|
friend bool performTransiencyCheck();
|
||||||
|
|
|
@ -571,7 +571,7 @@ bool X11Window::manage(xcb_window_t w, bool isMapped)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#if KWIN_BUILD_ACTIVITIES
|
#if KWIN_BUILD_ACTIVITIES
|
||||||
if (Activities::self() && !isMapped && !skipTaskbar() && isNormalWindow() && !activitiesDefined) {
|
if (Workspace::self()->activities() && !isMapped && !skipTaskbar() && isNormalWindow() && !activitiesDefined) {
|
||||||
// a new, regular window, when we're not recovering from a crash,
|
// a new, regular window, when we're not recovering from a crash,
|
||||||
// and it hasn't got an activity. let's try giving it the current one.
|
// and it hasn't got an activity. let's try giving it the current one.
|
||||||
// TODO: decide whether to keep this before the 4.6 release
|
// TODO: decide whether to keep this before the 4.6 release
|
||||||
|
@ -579,7 +579,7 @@ bool X11Window::manage(xcb_window_t w, bool isMapped)
|
||||||
// with a public API for setting windows to be on all activities.
|
// with a public API for setting windows to be on all activities.
|
||||||
// something like KWindowSystem::setOnAllActivities or
|
// something like KWindowSystem::setOnAllActivities or
|
||||||
// KActivityConsumer::setOnAllActivities
|
// KActivityConsumer::setOnAllActivities
|
||||||
setOnActivity(Activities::self()->current(), true);
|
setOnActivity(Workspace::self()->activities()->current(), true);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
@ -2504,8 +2504,8 @@ void X11Window::readActivities(Xcb::StringProperty &property)
|
||||||
// if the activities are not synced, and there are existing clients with
|
// if the activities are not synced, and there are existing clients with
|
||||||
// activities specified, somebody has restarted kwin. we can not validate
|
// activities specified, somebody has restarted kwin. we can not validate
|
||||||
// activities in this case. we need to trust the old values.
|
// activities in this case. we need to trust the old values.
|
||||||
if (Activities::self() && Activities::self()->serviceStatus() != KActivities::Consumer::Unknown) {
|
if (Workspace::self()->activities() && Workspace::self()->activities()->serviceStatus() != KActivities::Consumer::Unknown) {
|
||||||
QStringList allActivities = Activities::self()->all();
|
QStringList allActivities = Workspace::self()->activities()->all();
|
||||||
if (allActivities.isEmpty()) {
|
if (allActivities.isEmpty()) {
|
||||||
qCDebug(KWIN_CORE) << "no activities!?!?";
|
qCDebug(KWIN_CORE) << "no activities!?!?";
|
||||||
// don't touch anything, there's probably something bad going on and we don't wanna make it worse
|
// don't touch anything, there's probably something bad going on and we don't wanna make it worse
|
||||||
|
|
|
@ -562,7 +562,7 @@ XdgToplevelWindow::XdgToplevelWindow(XdgToplevelInterface *shellSurface)
|
||||||
{
|
{
|
||||||
setDesktops({VirtualDesktopManager::self()->currentDesktop()});
|
setDesktops({VirtualDesktopManager::self()->currentDesktop()});
|
||||||
#if KWIN_BUILD_ACTIVITIES
|
#if KWIN_BUILD_ACTIVITIES
|
||||||
if (auto a = Activities::self()) {
|
if (auto a = Workspace::self()->activities()) {
|
||||||
setOnActivities({a->current()});
|
setOnActivities({a->current()});
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
@ -1771,7 +1771,7 @@ XdgPopupWindow::XdgPopupWindow(XdgPopupInterface *shellSurface)
|
||||||
m_windowType = NET::Unknown;
|
m_windowType = NET::Unknown;
|
||||||
setDesktops({VirtualDesktopManager::self()->currentDesktop()});
|
setDesktops({VirtualDesktopManager::self()->currentDesktop()});
|
||||||
#if KWIN_BUILD_ACTIVITIES
|
#if KWIN_BUILD_ACTIVITIES
|
||||||
if (auto a = Activities::self()) {
|
if (auto a = Workspace::self()->activities()) {
|
||||||
setOnActivities({a->current()});
|
setOnActivities({a->current()});
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Reference in a new issue