summaryrefslogtreecommitdiff
path: root/src/events/Monitors.cpp
diff options
context:
space:
mode:
authorvaxerski <43317083+vaxerski@users.noreply.github.com>2022-04-17 11:52:54 +0200
committerGitHub <noreply@github.com>2022-04-17 11:52:54 +0200
commitbaa9e0caea3ce76f72def6e89659dd851f25831d (patch)
tree3ac4837b91661afe55eaef5abcdd438f436911ee /src/events/Monitors.cpp
parenta4f07ea9f7a3e5f882055d9cddb8d048405ad683 (diff)
parent24df15105ee2fc7f2975ef2958c2e7b1258569d1 (diff)
Merge branch 'main' into damage-tracking
Diffstat (limited to 'src/events/Monitors.cpp')
-rw-r--r--src/events/Monitors.cpp15
1 files changed, 11 insertions, 4 deletions
diff --git a/src/events/Monitors.cpp b/src/events/Monitors.cpp
index a6315a68..90a8b3e9 100644
--- a/src/events/Monitors.cpp
+++ b/src/events/Monitors.cpp
@@ -45,6 +45,16 @@ void Events::listener_newOutput(wl_listener* listener, void* data) {
// new monitor added, let's accomodate for that.
const auto OUTPUT = (wlr_output*)data;
+ // get monitor rule that matches
+ SMonitorRule monitorRule = g_pConfigManager->getMonitorRuleFor(OUTPUT->name);
+
+ // if it's disabled, disable and ignore
+ if (monitorRule.disabled) {
+ wlr_output_enable(OUTPUT, 0);
+ wlr_output_commit(OUTPUT);
+ return;
+ }
+
SMonitor newMonitor;
newMonitor.output = OUTPUT;
newMonitor.ID = g_pCompositor->m_lMonitors.size();
@@ -52,9 +62,6 @@ void Events::listener_newOutput(wl_listener* listener, void* data) {
wlr_output_init_render(OUTPUT, g_pCompositor->m_sWLRAllocator, g_pCompositor->m_sWLRRenderer);
- // get monitor rule that matches
- SMonitorRule monitorRule = g_pConfigManager->getMonitorRuleFor(OUTPUT->name);
-
wlr_output_set_scale(OUTPUT, monitorRule.scale);
wlr_xcursor_manager_load(g_pCompositor->m_sWLRXCursorMgr, monitorRule.scale);
wlr_output_set_transform(OUTPUT, WL_OUTPUT_TRANSFORM_NORMAL); // TODO: support other transforms
@@ -138,7 +145,7 @@ void Events::listener_newOutput(wl_listener* listener, void* data) {
PNEWMONITOR->damage = wlr_output_damage_create(OUTPUT);
// Workspace
- const auto WORKSPACEID = monitorRule.defaultWorkspaceID == -1 ? g_pCompositor->m_lWorkspaces.size() : monitorRule.defaultWorkspaceID;
+ const auto WORKSPACEID = monitorRule.defaultWorkspaceID == -1 ? g_pCompositor->m_lWorkspaces.size() + 1 /* Cuz workspaces doesnt have the new one yet and we start with 1 */ : monitorRule.defaultWorkspaceID;
g_pCompositor->m_lWorkspaces.emplace_back(newMonitor.ID);
const auto PNEWWORKSPACE = &g_pCompositor->m_lWorkspaces.back();