diff options
| author | vaxerski <43317083+vaxerski@users.noreply.github.com> | 2022-04-17 11:52:54 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-04-17 11:52:54 +0200 |
| commit | baa9e0caea3ce76f72def6e89659dd851f25831d (patch) | |
| tree | 3ac4837b91661afe55eaef5abcdd438f436911ee /src/events/Monitors.cpp | |
| parent | a4f07ea9f7a3e5f882055d9cddb8d048405ad683 (diff) | |
| parent | 24df15105ee2fc7f2975ef2958c2e7b1258569d1 (diff) | |
Merge branch 'main' into damage-tracking
Diffstat (limited to 'src/events/Monitors.cpp')
| -rw-r--r-- | src/events/Monitors.cpp | 15 |
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(); |
