monitor: ensure autoDir is applied when changed (#10672)

This commit is contained in:
Kamikadze
2025-06-08 01:12:43 +05:00
committed by GitHub
parent 2794f485cb
commit 66b99bd277
2 changed files with 3 additions and 0 deletions

View File

@@ -452,6 +452,7 @@ bool CMonitor::applyMonitorRule(SMonitorRule* pMonitorRule, bool force) {
&& m_pixelSize.x > 1 && m_pixelSize.y > 1 /* Active resolution is not invalid */
&& DELTALESSTHAN(m_refreshRate, RULE->refreshRate, 1) /* Refresh rate is the same */
&& m_setScale == RULE->scale /* Scale is the same */
&& m_autoDir == RULE->autoDir /* Auto direction is the same */
/* position is set correctly */
&& ((DELTALESSTHAN(m_position.x, RULE->offset.x, 1) && DELTALESSTHAN(m_position.y, RULE->offset.y, 1)) || RULE->offset == Vector2D(-INT32_MAX, -INT32_MAX))
/* other properties hadnt changed */
@@ -477,6 +478,7 @@ bool CMonitor::applyMonitorRule(SMonitorRule* pMonitorRule, bool force) {
m_setScale = m_scale;
m_transform = RULE->transform;
m_autoDir = RULE->autoDir;
// accumulate requested modes in reverse order (cause inesrting at front is inefficient)
std::vector<SP<Aquamarine::SOutputMode>> requestedModes;

View File

@@ -85,6 +85,7 @@ class CMonitor {
Vector2D m_position = Vector2D(-1, -1); // means unset
Vector2D m_xwaylandPosition = Vector2D(-1, -1); // means unset
eAutoDirs m_autoDir = DIR_AUTO_NONE;
Vector2D m_size = Vector2D(0, 0);
Vector2D m_pixelSize = Vector2D(0, 0);
Vector2D m_transformedSize = Vector2D(0, 0);