Option for WindowHeap to not alter the layout

Bring back the DesktopGrid option to not alter window position
so that the grid look like perfect screenshots of each desktop

BUG:455350
This commit is contained in:
Marco Martin 2022-11-04 12:15:50 +01:00
parent 3ae8e8fa6d
commit a8d0d7f8a5
3 changed files with 20 additions and 0 deletions

View file

@ -142,6 +142,11 @@
<string>Natural</string> <string>Natural</string>
</property> </property>
</item> </item>
<item>
<property name="text">
<string>None</string>
</property>
</item>
</widget> </widget>
</item> </item>
<item row="2" column="0"> <item row="2" column="0">

View file

@ -292,6 +292,9 @@ void ExpoLayout::updatePolish()
case LayoutNatural: case LayoutNatural:
calculateWindowTransformationsNatural(); calculateWindowTransformationsNatural();
break; break;
case LayoutNone:
resetTransformations();
break;
} }
} }
@ -701,3 +704,13 @@ void ExpoLayout::calculateWindowTransformationsNatural()
cell->setHeight(rect.height()); cell->setHeight(rect.height());
} }
} }
void ExpoLayout::resetTransformations()
{
for (ExpoCell *cell : std::as_const(m_cells)) {
cell->setX(cell->naturalX());
cell->setY(cell->naturalY());
cell->setWidth(cell->naturalWidth());
cell->setHeight(cell->naturalHeight());
}
}

View file

@ -26,6 +26,7 @@ public:
enum LayoutMode : uint { enum LayoutMode : uint {
LayoutClosest = 0, LayoutClosest = 0,
LayoutNatural = 1, LayoutNatural = 1,
LayoutNone = 2
}; };
Q_ENUM(LayoutMode) Q_ENUM(LayoutMode)
@ -65,6 +66,7 @@ Q_SIGNALS:
private: private:
void calculateWindowTransformationsClosest(); void calculateWindowTransformationsClosest();
void calculateWindowTransformationsNatural(); void calculateWindowTransformationsNatural();
void resetTransformations();
QList<ExpoCell *> m_cells; QList<ExpoCell *> m_cells;
LayoutMode m_mode = LayoutNatural; LayoutMode m_mode = LayoutNatural;