Make Scene responsible for scheduling repaint when current activity changes

This commit is contained in:
Vlad Zahorodnii 2021-11-09 12:51:30 +02:00
parent 6d0cca5c7f
commit 1fe8a18844
3 changed files with 3 additions and 6 deletions

View file

@ -99,6 +99,7 @@ void Scene::initialize()
connect(kwinApp()->platform(), &Platform::outputDisabled, this, &Scene::removeRepaints);
connect(workspace(), &Workspace::geometryChanged, this, &Scene::addRepaintFull);
connect(workspace(), &Workspace::currentActivityChanged, this, &Scene::addRepaintFull);
connect(workspace(), &Workspace::currentDesktopChanged, this, &Scene::addRepaintFull);
connect(workspace(), &Workspace::stackingOrderChanged, this, &Scene::addRepaintFull);
}

View file

@ -1186,12 +1186,7 @@ void Workspace::updateCurrentActivity(const QString &new_activity)
else
focusToNull();
// Not for the very first time, only if something changed and there are more than 1 desktops
//if ( effects != NULL && old_desktop != 0 && old_desktop != new_desktop )
// static_cast<EffectsHandlerImpl*>( effects )->desktopChanged( old_desktop );
if (Compositor::compositing() && m_compositor)
m_compositor->scene()->addRepaintFull();
Q_EMIT currentActivityChanged();
#else
Q_UNUSED(new_activity)
#endif

View file

@ -507,6 +507,7 @@ Q_SIGNALS:
//Signals required for the scripting interface
void desktopPresenceChanged(KWin::AbstractClient*, int);
void currentActivityChanged();
void currentDesktopChanged(int, KWin::AbstractClient*);
void clientAdded(KWin::AbstractClient *);
void clientRemoved(KWin::AbstractClient*);