mirror of
https://github.com/hyprwm/Hyprland
synced 2024-12-23 03:09:48 +01:00
Added toggleopaque dispatcher
This commit is contained in:
parent
3904351678
commit
9dd17a4be6
4 changed files with 18 additions and 0 deletions
|
@ -16,6 +16,7 @@ struct SWindowAdditionalConfigData {
|
||||||
std::string animationStyle = "";
|
std::string animationStyle = "";
|
||||||
int rounding = -1; // -1 means no
|
int rounding = -1; // -1 means no
|
||||||
bool forceNoBlur = false;
|
bool forceNoBlur = false;
|
||||||
|
bool forceOpaque = false;
|
||||||
};
|
};
|
||||||
|
|
||||||
class CWindow {
|
class CWindow {
|
||||||
|
|
|
@ -35,6 +35,7 @@ CKeybindManager::CKeybindManager() {
|
||||||
m_mDispatchers["submap"] = setSubmap;
|
m_mDispatchers["submap"] = setSubmap;
|
||||||
m_mDispatchers["pass"] = pass;
|
m_mDispatchers["pass"] = pass;
|
||||||
m_mDispatchers["layoutmsg"] = layoutmsg;
|
m_mDispatchers["layoutmsg"] = layoutmsg;
|
||||||
|
m_mDispatchers["toggleopaque"] = toggleOpaque;
|
||||||
|
|
||||||
m_tScrollTimer.reset();
|
m_tScrollTimer.reset();
|
||||||
}
|
}
|
||||||
|
@ -1310,3 +1311,14 @@ void CKeybindManager::layoutmsg(std::string msg) {
|
||||||
SLayoutMessageHeader hd = {g_pCompositor->m_pLastWindow};
|
SLayoutMessageHeader hd = {g_pCompositor->m_pLastWindow};
|
||||||
g_pLayoutManager->getCurrentLayout()->layoutMessage(hd, msg);
|
g_pLayoutManager->getCurrentLayout()->layoutMessage(hd, msg);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void CKeybindManager::toggleOpaque(std::string unused) {
|
||||||
|
const auto PWINDOW = g_pCompositor->m_pLastWindow;
|
||||||
|
|
||||||
|
if (!g_pCompositor->windowValidMapped(PWINDOW))
|
||||||
|
return;
|
||||||
|
|
||||||
|
PWINDOW->m_sAdditionalConfigData.forceOpaque = !PWINDOW->m_sAdditionalConfigData.forceOpaque;
|
||||||
|
|
||||||
|
g_pHyprRenderer->damageWindow(PWINDOW);
|
||||||
|
}
|
|
@ -97,6 +97,7 @@ private:
|
||||||
static void setSubmap(std::string);
|
static void setSubmap(std::string);
|
||||||
static void pass(std::string);
|
static void pass(std::string);
|
||||||
static void layoutmsg(std::string);
|
static void layoutmsg(std::string);
|
||||||
|
static void toggleOpaque(std::string);
|
||||||
|
|
||||||
friend class CCompositor;
|
friend class CCompositor;
|
||||||
};
|
};
|
||||||
|
|
|
@ -197,6 +197,10 @@ void CHyprRenderer::renderWindow(CWindow* pWindow, CMonitor* pMonitor, timespec*
|
||||||
else
|
else
|
||||||
renderdata.alpha *= pWindow == g_pCompositor->m_pLastWindow ? pWindow->m_sSpecialRenderData.alpha : pWindow->m_sSpecialRenderData.alphaInactive;
|
renderdata.alpha *= pWindow == g_pCompositor->m_pLastWindow ? pWindow->m_sSpecialRenderData.alpha : pWindow->m_sSpecialRenderData.alphaInactive;
|
||||||
|
|
||||||
|
// apply opaque
|
||||||
|
if (pWindow->m_sAdditionalConfigData.forceOpaque)
|
||||||
|
renderdata.alpha = 1.f;
|
||||||
|
|
||||||
g_pHyprOpenGL->m_pCurrentWindow = pWindow;
|
g_pHyprOpenGL->m_pCurrentWindow = pWindow;
|
||||||
|
|
||||||
// render window decorations first, if not fullscreen full
|
// render window decorations first, if not fullscreen full
|
||||||
|
|
Loading…
Reference in a new issue