summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authornmzik <Nmzik@mail.ru>2023-12-11 17:28:22 +0100
committerGitHub <noreply@github.com>2023-12-11 16:28:22 +0000
commit53ce7992beef6320edc40e167b7bf6cc81f9bec2 (patch)
treeff8b476f3c659ad5ae0e22a92b1d8a8b7e7c337d /src
parent167f2ed3b2bb18ceeabb831ac80b655ef8e16867 (diff)
renderer: double lookup fix, input: double conversion fix (#4124)
Diffstat (limited to 'src')
-rw-r--r--src/managers/input/InputManager.cpp4
-rw-r--r--src/render/OpenGL.cpp27
2 files changed, 19 insertions, 12 deletions
diff --git a/src/managers/input/InputManager.cpp b/src/managers/input/InputManager.cpp
index 284b4da6..374f217b 100644
--- a/src/managers/input/InputManager.cpp
+++ b/src/managers/input/InputManager.cpp
@@ -853,7 +853,7 @@ void CInputManager::applyConfigToKeyboard(SKeyboard* pKeyboard) {
pKeyboard->repeatDelay = REPEATDELAY;
pKeyboard->repeatRate = REPEATRATE;
pKeyboard->numlockOn = NUMLOCKON;
- pKeyboard->xkbFilePath = FILEPATH.c_str();
+ pKeyboard->xkbFilePath = FILEPATH;
xkb_rule_names rules = {.rules = RULES.c_str(), .model = MODEL.c_str(), .layout = LAYOUT.c_str(), .variant = VARIANT.c_str(), .options = OPTIONS.c_str()};
@@ -1586,7 +1586,7 @@ void CInputManager::destroySwitch(SSwitchDevice* pDevice) {
}
void CInputManager::setCursorImageUntilUnset(std::string name) {
- g_pHyprRenderer->setCursorFromName(name.c_str());
+ g_pHyprRenderer->setCursorFromName(name);
m_bCursorImageOverridden = true;
m_sCursorSurfaceInfo.inUse = false;
}
diff --git a/src/render/OpenGL.cpp b/src/render/OpenGL.cpp
index da348a0f..cb468932 100644
--- a/src/render/OpenGL.cpp
+++ b/src/render/OpenGL.cpp
@@ -2024,16 +2024,23 @@ void CHyprOpenGLImpl::clearWithTex() {
void CHyprOpenGLImpl::destroyMonitorResources(CMonitor* pMonitor) {
g_pHyprRenderer->makeEGLCurrent();
- g_pHyprOpenGL->m_mMonitorRenderResources[pMonitor].mirrorFB.release();
- g_pHyprOpenGL->m_mMonitorRenderResources[pMonitor].offloadFB.release();
- g_pHyprOpenGL->m_mMonitorRenderResources[pMonitor].mirrorSwapFB.release();
- g_pHyprOpenGL->m_mMonitorRenderResources[pMonitor].monitorMirrorFB.release();
- g_pHyprOpenGL->m_mMonitorRenderResources[pMonitor].blurFB.release();
- g_pHyprOpenGL->m_mMonitorRenderResources[pMonitor].offMainFB.release();
- g_pHyprOpenGL->m_mMonitorRenderResources[pMonitor].stencilTex.destroyTexture();
- g_pHyprOpenGL->m_mMonitorBGTextures[pMonitor].destroyTexture();
- g_pHyprOpenGL->m_mMonitorRenderResources.erase(pMonitor);
- g_pHyprOpenGL->m_mMonitorBGTextures.erase(pMonitor);
+ auto RESIT = g_pHyprOpenGL->m_mMonitorRenderResources.find(pMonitor);
+ if (RESIT != g_pHyprOpenGL->m_mMonitorRenderResources.end()) {
+ RESIT->second.mirrorFB.release();
+ RESIT->second.offloadFB.release();
+ RESIT->second.mirrorSwapFB.release();
+ RESIT->second.monitorMirrorFB.release();
+ RESIT->second.blurFB.release();
+ RESIT->second.offMainFB.release();
+ RESIT->second.stencilTex.destroyTexture();
+ g_pHyprOpenGL->m_mMonitorRenderResources.erase(RESIT);
+ }
+
+ auto TEXIT = g_pHyprOpenGL->m_mMonitorBGTextures.find(pMonitor);
+ if (TEXIT != g_pHyprOpenGL->m_mMonitorBGTextures.end()) {
+ TEXIT->second.destroyTexture();
+ g_pHyprOpenGL->m_mMonitorBGTextures.erase(TEXIT);
+ }
Debug::log(LOG, "Monitor {} -> destroyed all render data", pMonitor->szName);
}