diff options
| author | vaxerski <43317083+vaxerski@users.noreply.github.com> | 2022-03-19 20:30:21 +0100 |
|---|---|---|
| committer | vaxerski <43317083+vaxerski@users.noreply.github.com> | 2022-03-19 20:30:21 +0100 |
| commit | cf76b9060636c03e495fe522f7b4c251327adc98 (patch) | |
| tree | 424cb5592f17e6a8b492a45e1baa562f4afc2fd6 /src/render | |
| parent | f9a4e9aecd2f38d0f82f24ac2dd4a1f9d4d84045 (diff) | |
multimon fixes
Diffstat (limited to 'src/render')
| -rw-r--r-- | src/render/Renderer.cpp | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/src/render/Renderer.cpp b/src/render/Renderer.cpp index f01fbdc4..2a7428d3 100644 --- a/src/render/Renderer.cpp +++ b/src/render/Renderer.cpp @@ -50,7 +50,7 @@ void CHyprRenderer::renderAllClientsForMonitor(const int& ID, timespec* time) { for (auto& w : g_pCompositor->m_lWindows) { - if (w.m_bIsX11) + if (w.m_bIsX11 || w.m_iMonitorID != (uint64_t)ID) continue; wlr_box geometry = { w.m_vRealPosition.x, w.m_vRealPosition.y, w.m_vRealSize.x, w.m_vRealSize.y }; @@ -63,8 +63,6 @@ void CHyprRenderer::renderAllClientsForMonitor(const int& ID, timespec* time) { // border drawBorderForWindow(&w, PMONITOR); - wlr_output_layout_output_coords(g_pCompositor->m_sWLROutputLayout, PMONITOR->output, &w.m_vRealPosition.x, &w.m_vRealPosition.y); - SRenderData renderdata = {PMONITOR->output, time, w.m_vRealPosition.x, w.m_vRealPosition.y}; wlr_surface_for_each_surface(g_pXWaylandManager->getWindowSurface(&w), renderSurface, &renderdata); @@ -73,7 +71,7 @@ void CHyprRenderer::renderAllClientsForMonitor(const int& ID, timespec* time) { for (auto& w : g_pCompositor->m_lWindows) { - if (!w.m_bIsX11) + if (!w.m_bIsX11 || w.m_iMonitorID != (uint64_t)ID) continue; if (!g_pCompositor->windowValidMapped(&w)) @@ -221,21 +219,23 @@ void CHyprRenderer::drawBorderForWindow(CWindow* pWindow, SMonitor* pMonitor) { const float BORDERWLRCOL[4] = {RED(BORDERCOL), GREEN(BORDERCOL), BLUE(BORDERCOL), ALPHA(BORDERCOL)}; + Vector2D correctPos = pWindow->m_vRealPosition - pMonitor->vecPosition; + // top - wlr_box border = {pWindow->m_vRealPosition.x - BORDERSIZE, pWindow->m_vRealPosition.y - BORDERSIZE, pWindow->m_vRealSize.x + 2 * BORDERSIZE, BORDERSIZE }; + wlr_box border = {correctPos.x - BORDERSIZE, correctPos.y - BORDERSIZE, pWindow->m_vRealSize.x + 2 * BORDERSIZE, BORDERSIZE }; wlr_render_rect(g_pCompositor->m_sWLRRenderer, &border, BORDERWLRCOL, pMonitor->output->transform_matrix); // bottom - border.y = pWindow->m_vRealPosition.y + pWindow->m_vRealSize.y; + border.y = correctPos.y + pWindow->m_vRealSize.y; wlr_render_rect(g_pCompositor->m_sWLRRenderer, &border, BORDERWLRCOL, pMonitor->output->transform_matrix); // left - border.y = pWindow->m_vRealPosition.y; + border.y = correctPos.y; border.width = BORDERSIZE; border.height = pWindow->m_vRealSize.y; wlr_render_rect(g_pCompositor->m_sWLRRenderer, &border, BORDERWLRCOL, pMonitor->output->transform_matrix); // right - border.x = pWindow->m_vRealPosition.x + pWindow->m_vRealSize.x; + border.x = correctPos.x + pWindow->m_vRealSize.x; wlr_render_rect(g_pCompositor->m_sWLRRenderer, &border, BORDERWLRCOL, pMonitor->output->transform_matrix); }
\ No newline at end of file |
