summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorFelix Dick <felix.dick@web.de>2022-10-10 01:46:22 +0200
committerFelix Dick <felix.dick@web.de>2022-10-10 02:45:40 +0200
commit7e781f24c5140e3554a45ff236a339647fba1c34 (patch)
tree4c4effecfdc5192387eb80c033e09e6f8719e171 /src
parent3bf7c5aea1d20cc6a0fc95f920111548e7863af9 (diff)
parentcb687c208c116ea870f827d8b2ee963655599f1f (diff)
Merge branch 'main' into simplify_matrix_calculations
Diffstat (limited to 'src')
-rw-r--r--src/events/Popups.cpp4
-rw-r--r--src/helpers/SubsurfaceTree.cpp24
-rw-r--r--src/render/OpenGL.cpp11
3 files changed, 25 insertions, 14 deletions
diff --git a/src/events/Popups.cpp b/src/events/Popups.cpp
index 74865f95..afc1e7c8 100644
--- a/src/events/Popups.cpp
+++ b/src/events/Popups.cpp
@@ -32,8 +32,8 @@ void addPopupGlobalCoords(void* pPopup, int* x, int* y) {
py -= curPopup->popup->base->current.geometry.y;
}
- if (curPopup->pSurfaceTree && curPopup->pSurfaceTree->pSurface && !curPopup->parentPopup && !curPopup->parentWindow) {
- const auto EXTENTSSURFACE = pixman_region32_extents(&curPopup->pSurfaceTree->pSurface->input_region);
+ if (curPopup->popup && !curPopup->parentPopup && !curPopup->parentWindow) {
+ const auto EXTENTSSURFACE = pixman_region32_extents(&curPopup->popup->base->surface->input_region);
px -= EXTENTSSURFACE->x1;
py -= EXTENTSSURFACE->y1;
}
diff --git a/src/helpers/SubsurfaceTree.cpp b/src/helpers/SubsurfaceTree.cpp
index a5c7f0a0..349f5090 100644
--- a/src/helpers/SubsurfaceTree.cpp
+++ b/src/helpers/SubsurfaceTree.cpp
@@ -178,19 +178,23 @@ void Events::listener_unmapSubsurface(void* owner, void* data) {
if (subsurface->pChild) {
const auto PNODE = subsurface->pChild;
- int lx = 0, ly = 0;
- addSurfaceGlobalOffset(PNODE, &lx, &ly);
+ const auto IT = std::find_if(SubsurfaceTree::surfaceTreeNodes.begin(), SubsurfaceTree::surfaceTreeNodes.end(), [&](const SSurfaceTreeNode& other) { return &other == PNODE; });
- wlr_box extents = {lx, ly, 0, 0};
- if (PNODE->pSurface) {
- extents.width = PNODE->pSurface->current.width;
- extents.height = PNODE->pSurface->current.height;
+ if (IT != SubsurfaceTree::surfaceTreeNodes.end()) {
+ int lx = 0, ly = 0;
+ addSurfaceGlobalOffset(PNODE, &lx, &ly);
- g_pHyprRenderer->damageBox(&extents);
- }
+ wlr_box extents = {lx, ly, 0, 0};
+ if (PNODE->pSurface) {
+ extents.width = PNODE->pSurface->current.width;
+ extents.height = PNODE->pSurface->current.height;
- //SubsurfaceTree::destroySurfaceTree(subsurface->pChild);
- //subsurface->pChild = nullptr;
+ g_pHyprRenderer->damageBox(&extents);
+ }
+
+ // SubsurfaceTree::destroySurfaceTree(subsurface->pChild);
+ // subsurface->pChild = nullptr;
+ }
}
}
diff --git a/src/render/OpenGL.cpp b/src/render/OpenGL.cpp
index 8a51a83a..e0cb28e2 100644
--- a/src/render/OpenGL.cpp
+++ b/src/render/OpenGL.cpp
@@ -528,7 +528,6 @@ CFramebuffer* CHyprOpenGLImpl::blurMainFramebufferWithDamage(float a, wlr_box* p
float glMatrix[9];
wlr_matrix_multiply(glMatrix, m_RenderData.projection, matrix);
- wlr_matrix_transpose(glMatrix, glMatrix);
// get the config settings
static auto *const PBLURSIZE = &g_pConfigManager->getConfigValuePtr("decoration:blur_size")->intValue;
@@ -1278,7 +1277,15 @@ void CHyprOpenGLImpl::clearWithTex() {
static auto *const PRENDERTEX = &g_pConfigManager->getConfigValuePtr("misc:disable_hyprland_logo")->intValue;
if (!*PRENDERTEX) {
- renderTexture(m_mMonitorBGTextures[m_RenderData.pMonitor], &m_mMonitorRenderResources[m_RenderData.pMonitor].backgroundTexBox, 255, 0);
+ auto TEXIT = m_mMonitorBGTextures.find(m_RenderData.pMonitor);
+
+ if (TEXIT == m_mMonitorBGTextures.end()) {
+ createBGTextureForMonitor(m_RenderData.pMonitor);
+ TEXIT = m_mMonitorBGTextures.find(m_RenderData.pMonitor);
+ }
+
+ if (TEXIT != m_mMonitorBGTextures.end())
+ renderTexture(TEXIT->second, &m_mMonitorRenderResources[m_RenderData.pMonitor].backgroundTexBox, 255, 0);
}
}