From 6d67b84469d5c12c5bbc4880f327ca8eb7a2ed2d Mon Sep 17 00:00:00 2001 From: vaxerski Date: Fri, 24 May 2024 20:56:42 +0200 Subject: [PATCH] monitor: avoid UB on undefined auto dir ref #6217 --- src/Compositor.cpp | 1 + src/helpers/Monitor.hpp | 5 +++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/Compositor.cpp b/src/Compositor.cpp index 5c9cfbad..529a3b3d 100644 --- a/src/Compositor.cpp +++ b/src/Compositor.cpp @@ -2666,6 +2666,7 @@ void CCompositor::arrangeMonitors() { maxXOffsetLeft = newPosition.x; break; case eAutoDirs::DIR_AUTO_RIGHT: + case eAutoDirs::DIR_AUTO_NONE: newPosition.x = maxXOffsetRight; maxXOffsetRight += m->vecSize.x; break; diff --git a/src/helpers/Monitor.hpp b/src/helpers/Monitor.hpp index 7aa07a86..e4456084 100644 --- a/src/helpers/Monitor.hpp +++ b/src/helpers/Monitor.hpp @@ -13,7 +13,8 @@ #include "signal/Signal.hpp" // Enum for the different types of auto directions, e.g. auto-left, auto-up. -enum class eAutoDirs { +enum eAutoDirs { + DIR_AUTO_NONE = 0, /* None will be treated as right. */ DIR_AUTO_UP, DIR_AUTO_DOWN, DIR_AUTO_LEFT, @@ -21,7 +22,7 @@ enum class eAutoDirs { }; struct SMonitorRule { - eAutoDirs autoDir; + eAutoDirs autoDir = DIR_AUTO_NONE; std::string name = ""; Vector2D resolution = Vector2D(1280, 720); Vector2D offset = Vector2D(0, 0);