wayland:multiple layouts load properly on activities

pull/22/head
Michail Vourlakos 4 years ago
parent 7bc31fc9ea
commit 7eff55b793

@ -6,6 +6,7 @@
#include "synchronizer.h" #include "synchronizer.h"
//! local //! local
#include <config-latte.h>
#include "importer.h" #include "importer.h"
#include "manager.h" #include "manager.h"
#include "../apptypes.h" #include "../apptypes.h"
@ -878,11 +879,13 @@ void Synchronizer::syncMultipleLayoutsToActivities()
//! discover layouts assigned to explicit activities based on running activities //! discover layouts assigned to explicit activities based on running activities
for (const auto &activity : runningActivities()) { for (const auto &activity : runningActivities()) {
#if KF5_VERSION_MINOR < 81
if (KWindowSystem::isPlatformWayland() && (m_activitiesController->currentActivity() != activity)){ if (KWindowSystem::isPlatformWayland() && (m_activitiesController->currentActivity() != activity)){
//! Wayland Protection: Plasma wayland does not support yet Activities for windows //! Wayland Protection: Plasma wayland does not support Activities for windows before kde frameworks 5.81
//! but we can load the layouts that belong OnAllActivities + (ForFreeActivities OR SpecificActivity) //! In that scenario we can load the layouts that belong OnAllActivities + (ForFreeActivities OR SpecificActivity)
continue; continue;
} }
#endif
if (m_assignedLayouts.contains(activity)) { if (m_assignedLayouts.contains(activity)) {
layoutNamesToLoad << m_assignedLayouts[activity]; layoutNamesToLoad << m_assignedLayouts[activity];

@ -240,6 +240,8 @@ void Positioner::updateWaylandId()
m_trackedWindowId = newId; m_trackedWindowId = newId;
m_corona->wm()->registerIgnoredWindow(m_trackedWindowId); m_corona->wm()->registerIgnoredWindow(m_trackedWindowId);
emit winIdChanged();
} }
} }

@ -109,6 +109,7 @@ signals:
void screenGeometryChanged(); void screenGeometryChanged();
void slideOffsetChanged(); void slideOffsetChanged();
void windowSizeChanged(); void windowSizeChanged();
void winIdChanged();
//! these two signals are used from config ui and containment ui //! these two signals are used from config ui and containment ui
//! in order to orchestrate an animated hiding/showing of dock //! in order to orchestrate an animated hiding/showing of dock

@ -286,6 +286,7 @@ void View::init(Plasma::Containment *plasma_containment)
connect(this, &View::maxNormalThicknessChanged, this, &View::editThicknessChanged); connect(this, &View::maxNormalThicknessChanged, this, &View::editThicknessChanged);
connect(this, &View::activitiesChanged, this, &View::applyActivitiesToWindows); connect(this, &View::activitiesChanged, this, &View::applyActivitiesToWindows);
connect(m_positioner, &ViewPart::Positioner::winIdChanged, this, &View::applyActivitiesToWindows);
connect(this, &View::localGeometryChanged, this, [&]() { connect(this, &View::localGeometryChanged, this, [&]() {
updateAbsoluteGeometry(); updateAbsoluteGeometry();

Loading…
Cancel
Save