monitor: avoid UB on undefined auto dir

ref #6217
This commit is contained in:
Vaxry 2024-05-24 20:56:42 +02:00
parent 0d6eae0523
commit 6d67b84469
2 changed files with 4 additions and 2 deletions

View file

@ -2666,6 +2666,7 @@ void CCompositor::arrangeMonitors() {
maxXOffsetLeft = newPosition.x; maxXOffsetLeft = newPosition.x;
break; break;
case eAutoDirs::DIR_AUTO_RIGHT: case eAutoDirs::DIR_AUTO_RIGHT:
case eAutoDirs::DIR_AUTO_NONE:
newPosition.x = maxXOffsetRight; newPosition.x = maxXOffsetRight;
maxXOffsetRight += m->vecSize.x; maxXOffsetRight += m->vecSize.x;
break; break;

View file

@ -13,7 +13,8 @@
#include "signal/Signal.hpp" #include "signal/Signal.hpp"
// Enum for the different types of auto directions, e.g. auto-left, auto-up. // 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_UP,
DIR_AUTO_DOWN, DIR_AUTO_DOWN,
DIR_AUTO_LEFT, DIR_AUTO_LEFT,
@ -21,7 +22,7 @@ enum class eAutoDirs {
}; };
struct SMonitorRule { struct SMonitorRule {
eAutoDirs autoDir; eAutoDirs autoDir = DIR_AUTO_NONE;
std::string name = ""; std::string name = "";
Vector2D resolution = Vector2D(1280, 720); Vector2D resolution = Vector2D(1280, 720);
Vector2D offset = Vector2D(0, 0); Vector2D offset = Vector2D(0, 0);