mirror of
https://github.com/hyprwm/hyprland-plugins.git
synced 2025-05-13 05:40:41 +01:00
This commit is contained in:
parent
61ab0385c8
commit
2b9a54f21b
10 changed files with 90 additions and 90 deletions
|
@ -8,8 +8,8 @@
|
|||
#include "globals.hpp"
|
||||
|
||||
CBordersPlusPlus::CBordersPlusPlus(PHLWINDOW pWindow) : IHyprWindowDecoration(pWindow), m_pWindow(pWindow) {
|
||||
m_vLastWindowPos = pWindow->m_vRealPosition->value();
|
||||
m_vLastWindowSize = pWindow->m_vRealSize->value();
|
||||
m_vLastWindowPos = pWindow->m_realPosition->value();
|
||||
m_vLastWindowSize = pWindow->m_realSize->value();
|
||||
}
|
||||
|
||||
CBordersPlusPlus::~CBordersPlusPlus() {
|
||||
|
@ -67,7 +67,7 @@ void CBordersPlusPlus::draw(PHLMONITOR pMonitor, const float& a) {
|
|||
|
||||
const auto PWINDOW = m_pWindow.lock();
|
||||
|
||||
if (!PWINDOW->m_sWindowData.decorate.valueOrDefault())
|
||||
if (!PWINDOW->m_windowData.decorate.valueOrDefault())
|
||||
return;
|
||||
|
||||
CBorderPPPassElement::SBorderPPData data;
|
||||
|
@ -96,8 +96,8 @@ void CBordersPlusPlus::drawPass(PHLMONITOR pMonitor, const float& a) {
|
|||
if (m_bAssignedGeometry.width < m_seExtents.topLeft.x + 1 || m_bAssignedGeometry.height < m_seExtents.topLeft.y + 1)
|
||||
return;
|
||||
|
||||
const auto PWORKSPACE = PWINDOW->m_pWorkspace;
|
||||
const auto WORKSPACEOFFSET = PWORKSPACE && !PWINDOW->m_bPinned ? PWORKSPACE->m_renderOffset->value() : Vector2D();
|
||||
const auto PWORKSPACE = PWINDOW->m_workspace;
|
||||
const auto WORKSPACEOFFSET = PWORKSPACE && !PWINDOW->m_pinned ? PWORKSPACE->m_renderOffset->value() : Vector2D();
|
||||
|
||||
auto rounding = PWINDOW->rounding() == 0 ? 0 : (PWINDOW->rounding() + **PBORDERSIZE) * pMonitor->scale;
|
||||
const auto ROUNDINGPOWER = PWINDOW->roundingPower();
|
||||
|
@ -106,7 +106,7 @@ void CBordersPlusPlus::drawPass(PHLMONITOR pMonitor, const float& a) {
|
|||
CBox fullBox = m_bAssignedGeometry;
|
||||
fullBox.translate(g_pDecorationPositioner->getEdgeDefinedPoint(DECORATION_EDGE_BOTTOM | DECORATION_EDGE_LEFT | DECORATION_EDGE_RIGHT | DECORATION_EDGE_TOP, m_pWindow.lock()));
|
||||
|
||||
fullBox.translate(PWINDOW->m_vFloatingOffset - pMonitor->vecPosition + WORKSPACEOFFSET);
|
||||
fullBox.translate(PWINDOW->m_floatingOffset - pMonitor->vecPosition + WORKSPACEOFFSET);
|
||||
|
||||
if (fullBox.width < 1 || fullBox.height < 1)
|
||||
return;
|
||||
|
@ -156,8 +156,8 @@ eDecorationType CBordersPlusPlus::getDecorationType() {
|
|||
}
|
||||
|
||||
void CBordersPlusPlus::updateWindow(PHLWINDOW pWindow) {
|
||||
m_vLastWindowPos = pWindow->m_vRealPosition->value();
|
||||
m_vLastWindowSize = pWindow->m_vRealSize->value();
|
||||
m_vLastWindowPos = pWindow->m_realPosition->value();
|
||||
m_vLastWindowSize = pWindow->m_realSize->value();
|
||||
|
||||
damageEntire();
|
||||
}
|
||||
|
|
|
@ -48,7 +48,7 @@ APICALL EXPORT PLUGIN_DESCRIPTION_INFO PLUGIN_INIT(HANDLE handle) {
|
|||
|
||||
// add deco to existing windows
|
||||
for (auto& w : g_pCompositor->m_windows) {
|
||||
if (w->isHidden() || !w->m_bIsMapped)
|
||||
if (w->isHidden() || !w->m_isMapped)
|
||||
continue;
|
||||
|
||||
HyprlandAPI::addWindowDecoration(PHANDLE, w, makeUnique<CBordersPlusPlus>(w));
|
||||
|
|
|
@ -32,10 +32,10 @@ void hkNotifyMotion(CSeatManager* thisptr, uint32_t time_msec, const Vector2D& l
|
|||
|
||||
Vector2D newCoords = local;
|
||||
|
||||
if (**PFIX && !g_pCompositor->m_lastWindow.expired() && g_pCompositor->m_lastWindow->m_szInitialClass == *PCLASS && g_pCompositor->m_lastMonitor) {
|
||||
if (**PFIX && !g_pCompositor->m_lastWindow.expired() && g_pCompositor->m_lastWindow->m_initialClass == *PCLASS && g_pCompositor->m_lastMonitor) {
|
||||
// fix the coords
|
||||
newCoords.x *= (**RESX / g_pCompositor->m_lastMonitor->vecSize.x) / g_pCompositor->m_lastWindow->m_fX11SurfaceScaledBy;
|
||||
newCoords.y *= (**RESY / g_pCompositor->m_lastMonitor->vecSize.y) / g_pCompositor->m_lastWindow->m_fX11SurfaceScaledBy;
|
||||
newCoords.x *= (**RESX / g_pCompositor->m_lastMonitor->vecSize.x) / g_pCompositor->m_lastWindow->m_X11SurfaceScaledBy;
|
||||
newCoords.y *= (**RESY / g_pCompositor->m_lastMonitor->vecSize.y) / g_pCompositor->m_lastWindow->m_X11SurfaceScaledBy;
|
||||
}
|
||||
|
||||
(*(origMotion)g_pMouseMotionHook->m_pOriginal)(thisptr, time_msec, newCoords);
|
||||
|
@ -56,7 +56,7 @@ void hkSetWindowSize(CXWaylandSurface* surface, const CBox& box) {
|
|||
|
||||
CBox newBox = box;
|
||||
|
||||
if (PWINDOW && PWINDOW->m_szInitialClass == *PCLASS) {
|
||||
if (PWINDOW && PWINDOW->m_initialClass == *PCLASS) {
|
||||
newBox.w = **RESX;
|
||||
newBox.h = **RESY;
|
||||
|
||||
|
@ -71,8 +71,8 @@ CRegion hkWLSurfaceDamage(CWLSurface* thisptr) {
|
|||
|
||||
static auto* const PCLASS = (Hyprlang::STRING const*)HyprlandAPI::getConfigValue(PHANDLE, "plugin:csgo-vulkan-fix:class")->getDataStaticPtr();
|
||||
|
||||
if (thisptr->exists() && thisptr->getWindow() && thisptr->getWindow()->m_szInitialClass == *PCLASS) {
|
||||
const auto PMONITOR = thisptr->getWindow()->m_pMonitor.lock();
|
||||
if (thisptr->exists() && thisptr->getWindow() && thisptr->getWindow()->m_initialClass == *PCLASS) {
|
||||
const auto PMONITOR = thisptr->getWindow()->m_monitor.lock();
|
||||
if (PMONITOR)
|
||||
g_pHyprRenderer->damageMonitor(PMONITOR);
|
||||
else
|
||||
|
|
|
@ -19,7 +19,7 @@ CHyprBar::CHyprBar(PHLWINDOW pWindow) : IHyprWindowDecoration(pWindow) {
|
|||
|
||||
static auto* const PCOLOR = (Hyprlang::INT* const*)HyprlandAPI::getConfigValue(PHANDLE, "plugin:hyprbars:bar_color")->getDataStaticPtr();
|
||||
|
||||
const auto PMONITOR = pWindow->m_pMonitor.lock();
|
||||
const auto PMONITOR = pWindow->m_monitor.lock();
|
||||
PMONITOR->scheduledRecalc = true;
|
||||
|
||||
//button events
|
||||
|
@ -57,11 +57,11 @@ SDecorationPositioningInfo CHyprBar::getPositioningInfo() {
|
|||
static auto* const PPRECEDENCE = (Hyprlang::INT* const*)HyprlandAPI::getConfigValue(PHANDLE, "plugin:hyprbars:bar_precedence_over_border")->getDataStaticPtr();
|
||||
|
||||
SDecorationPositioningInfo info;
|
||||
info.policy = m_bHidden ? DECORATION_POSITION_ABSOLUTE : DECORATION_POSITION_STICKY;
|
||||
info.policy = m_hidden ? DECORATION_POSITION_ABSOLUTE : DECORATION_POSITION_STICKY;
|
||||
info.edges = DECORATION_EDGE_TOP;
|
||||
info.priority = **PPRECEDENCE ? 10005 : 5000;
|
||||
info.reserved = true;
|
||||
info.desiredExtents = {{0, m_bHidden ? 0 : **PHEIGHT}, {0, 0}};
|
||||
info.desiredExtents = {{0, m_hidden ? 0 : **PHEIGHT}, {0, 0}};
|
||||
return info;
|
||||
}
|
||||
|
||||
|
@ -77,8 +77,8 @@ std::string CHyprBar::getDisplayName() {
|
|||
}
|
||||
|
||||
bool CHyprBar::inputIsValid() {
|
||||
if (!m_pWindow->m_pWorkspace || !m_pWindow->m_pWorkspace->isVisible() || !g_pInputManager->m_dExclusiveLSes.empty() ||
|
||||
(g_pSeatManager->seatGrab && !g_pSeatManager->seatGrab->accepts(m_pWindow->m_pWLSurface->resource())))
|
||||
if (!m_pWindow->m_workspace || !m_pWindow->m_workspace->isVisible() || !g_pInputManager->m_dExclusiveLSes.empty() ||
|
||||
(g_pSeatManager->seatGrab && !g_pSeatManager->seatGrab->accepts(m_pWindow->m_wlSurface->resource())))
|
||||
return false;
|
||||
|
||||
const auto WINDOWATCURSOR = g_pCompositor->vectorToWindowUnified(g_pInputManager->getMouseCoordsInternal(), RESERVED_EXTENTS | INPUT_EXTENTS | ALLOW_FLOATING);
|
||||
|
@ -168,7 +168,7 @@ void CHyprBar::handleDownEvent(SCallbackInfo& info, std::optional<ITouch::SDownE
|
|||
if (g_pCompositor->m_lastWindow.lock() != PWINDOW)
|
||||
g_pCompositor->focusWindow(PWINDOW);
|
||||
|
||||
if (PWINDOW->m_bIsFloating)
|
||||
if (PWINDOW->m_isFloating)
|
||||
g_pCompositor->changeWindowZOrder(PWINDOW, true);
|
||||
|
||||
info.cancelled = true;
|
||||
|
@ -495,12 +495,12 @@ void CHyprBar::renderBarButtonsText(CBox* barBox, const float scale, const float
|
|||
}
|
||||
|
||||
void CHyprBar::draw(PHLMONITOR pMonitor, const float& a) {
|
||||
if (m_bHidden || !validMapped(m_pWindow))
|
||||
if (m_hidden || !validMapped(m_pWindow))
|
||||
return;
|
||||
|
||||
const auto PWINDOW = m_pWindow.lock();
|
||||
|
||||
if (!PWINDOW->m_sWindowData.decorate.valueOrDefault())
|
||||
if (!PWINDOW->m_windowData.decorate.valueOrDefault())
|
||||
return;
|
||||
|
||||
auto data = CBarPassElement::SBarData{this, a};
|
||||
|
@ -533,8 +533,8 @@ void CHyprBar::renderPass(PHLMONITOR pMonitor, const float& a) {
|
|||
return;
|
||||
}
|
||||
|
||||
const auto PWORKSPACE = PWINDOW->m_pWorkspace;
|
||||
const auto WORKSPACEOFFSET = PWORKSPACE && !PWINDOW->m_bPinned ? PWORKSPACE->m_renderOffset->value() : Vector2D();
|
||||
const auto PWORKSPACE = PWINDOW->m_workspace;
|
||||
const auto WORKSPACEOFFSET = PWORKSPACE && !PWINDOW->m_pinned ? PWORKSPACE->m_renderOffset->value() : Vector2D();
|
||||
|
||||
const auto ROUNDING = PWINDOW->rounding() + (*PPRECEDENCE ? 0 : PWINDOW->getRealBorderSize());
|
||||
|
||||
|
@ -549,7 +549,7 @@ void CHyprBar::renderPass(PHLMONITOR pMonitor, const float& a) {
|
|||
CBox titleBarBox = {DECOBOX.x - pMonitor->vecPosition.x, DECOBOX.y - pMonitor->vecPosition.y, DECOBOX.w,
|
||||
DECOBOX.h + ROUNDING * 3 /* to fill the bottom cuz we can't disable rounding there */};
|
||||
|
||||
titleBarBox.translate(PWINDOW->m_vFloatingOffset).scale(pMonitor->scale).round();
|
||||
titleBarBox.translate(PWINDOW->m_floatingOffset).scale(pMonitor->scale).round();
|
||||
|
||||
if (titleBarBox.w < 1 || titleBarBox.h < 1)
|
||||
return;
|
||||
|
@ -558,9 +558,9 @@ void CHyprBar::renderPass(PHLMONITOR pMonitor, const float& a) {
|
|||
|
||||
if (ROUNDING) {
|
||||
// the +1 is a shit garbage temp fix until renderRect supports an alpha matte
|
||||
CBox windowBox = {PWINDOW->m_vRealPosition->value().x + PWINDOW->m_vFloatingOffset.x - pMonitor->vecPosition.x + 1,
|
||||
PWINDOW->m_vRealPosition->value().y + PWINDOW->m_vFloatingOffset.y - pMonitor->vecPosition.y + 1, PWINDOW->m_vRealSize->value().x - 2,
|
||||
PWINDOW->m_vRealSize->value().y - 2};
|
||||
CBox windowBox = {PWINDOW->m_realPosition->value().x + PWINDOW->m_floatingOffset.x - pMonitor->vecPosition.x + 1,
|
||||
PWINDOW->m_realPosition->value().y + PWINDOW->m_floatingOffset.y - pMonitor->vecPosition.y + 1, PWINDOW->m_realSize->value().x - 2,
|
||||
PWINDOW->m_realSize->value().y - 2};
|
||||
|
||||
if (windowBox.w < 1 || windowBox.h < 1)
|
||||
return;
|
||||
|
@ -589,8 +589,8 @@ void CHyprBar::renderPass(PHLMONITOR pMonitor, const float& a) {
|
|||
g_pHyprOpenGL->renderRect(titleBarBox, color, scaledRounding);
|
||||
|
||||
// render title
|
||||
if (**PENABLETITLE && (m_szLastTitle != PWINDOW->m_szTitle || m_bWindowSizeChanged || m_pTextTex->m_iTexID == 0 || m_bTitleColorChanged)) {
|
||||
m_szLastTitle = PWINDOW->m_szTitle;
|
||||
if (**PENABLETITLE && (m_szLastTitle != PWINDOW->m_title || m_bWindowSizeChanged || m_pTextTex->m_iTexID == 0 || m_bTitleColorChanged)) {
|
||||
m_szLastTitle = PWINDOW->m_title;
|
||||
renderBarTitle(BARBUF, pMonitor->scale);
|
||||
}
|
||||
|
||||
|
@ -660,8 +660,8 @@ CBox CHyprBar::assignedBoxGlobal() {
|
|||
CBox box = m_bAssignedBox;
|
||||
box.translate(g_pDecorationPositioner->getEdgeDefinedPoint(DECORATION_EDGE_TOP, m_pWindow.lock()));
|
||||
|
||||
const auto PWORKSPACE = m_pWindow->m_pWorkspace;
|
||||
const auto WORKSPACEOFFSET = PWORKSPACE && !m_pWindow->m_bPinned ? PWORKSPACE->m_renderOffset->value() : Vector2D();
|
||||
const auto PWORKSPACE = m_pWindow->m_workspace;
|
||||
const auto WORKSPACEOFFSET = PWORKSPACE && !m_pWindow->m_pinned ? PWORKSPACE->m_renderOffset->value() : Vector2D();
|
||||
|
||||
return box.translate(WORKSPACEOFFSET);
|
||||
}
|
||||
|
@ -672,32 +672,32 @@ PHLWINDOW CHyprBar::getOwner() {
|
|||
|
||||
void CHyprBar::updateRules() {
|
||||
const auto PWINDOW = m_pWindow.lock();
|
||||
auto rules = PWINDOW->m_vMatchedRules;
|
||||
auto prev_m_bHidden = m_bHidden;
|
||||
auto prev_m_bForcedTitleColor = m_bForcedTitleColor;
|
||||
auto rules = PWINDOW->m_matchedRules;
|
||||
auto prevHidden = m_hidden;
|
||||
auto prevForcedTitleColor = m_bForcedTitleColor;
|
||||
|
||||
m_bForcedBarColor = std::nullopt;
|
||||
m_bForcedTitleColor = std::nullopt;
|
||||
m_bHidden = false;
|
||||
m_hidden = false;
|
||||
|
||||
for (auto& r : rules) {
|
||||
applyRule(r);
|
||||
}
|
||||
|
||||
if (prev_m_bHidden != m_bHidden)
|
||||
if (prevHidden != m_hidden)
|
||||
g_pDecorationPositioner->repositionDeco(this);
|
||||
if (prev_m_bForcedTitleColor != m_bForcedTitleColor)
|
||||
if (prevForcedTitleColor != m_bForcedTitleColor)
|
||||
m_bTitleColorChanged = true;
|
||||
}
|
||||
|
||||
void CHyprBar::applyRule(const SP<CWindowRule>& r) {
|
||||
auto arg = r->szRule.substr(r->szRule.find_first_of(' ') + 1);
|
||||
auto arg = r->m_rule.substr(r->m_rule.find_first_of(' ') + 1);
|
||||
|
||||
if (r->szRule == "plugin:hyprbars:nobar")
|
||||
m_bHidden = true;
|
||||
else if (r->szRule.starts_with("plugin:hyprbars:bar_color"))
|
||||
if (r->m_rule == "plugin:hyprbars:nobar")
|
||||
m_hidden = true;
|
||||
else if (r->m_rule.starts_with("plugin:hyprbars:bar_color"))
|
||||
m_bForcedBarColor = CHyprColor(configStringToInt(arg).value_or(0));
|
||||
else if (r->szRule.starts_with("plugin:hyprbars:title_color"))
|
||||
else if (r->m_rule.starts_with("plugin:hyprbars:title_color"))
|
||||
m_bForcedTitleColor = CHyprColor(configStringToInt(arg).value_or(0));
|
||||
}
|
||||
|
||||
|
|
|
@ -57,7 +57,7 @@ class CHyprBar : public IHyprWindowDecoration {
|
|||
SP<CTexture> m_pButtonsTex;
|
||||
|
||||
bool m_bWindowSizeChanged = false;
|
||||
bool m_bHidden = false;
|
||||
bool m_hidden = false;
|
||||
bool m_bTitleColorChanged = false;
|
||||
bool m_bButtonHovered = false;
|
||||
std::optional<CHyprColor> m_bForcedBarColor;
|
||||
|
|
|
@ -22,8 +22,8 @@ static void onNewWindow(void* self, std::any data) {
|
|||
// data is guaranteed
|
||||
const auto PWINDOW = std::any_cast<PHLWINDOW>(data);
|
||||
|
||||
if (!PWINDOW->m_bX11DoesntWantBorders) {
|
||||
if (std::ranges::any_of(PWINDOW->m_dWindowDecorations, [](const auto& d) { return d->getDisplayName() == "Hyprbar"; }))
|
||||
if (!PWINDOW->m_X11DoesntWantBorders) {
|
||||
if (std::ranges::any_of(PWINDOW->m_windowDecorations, [](const auto& d) { return d->getDisplayName() == "Hyprbar"; }))
|
||||
return;
|
||||
|
||||
auto bar = makeUnique<CHyprBar>(PWINDOW);
|
||||
|
@ -147,7 +147,7 @@ APICALL EXPORT PLUGIN_DESCRIPTION_INFO PLUGIN_INIT(HANDLE handle) {
|
|||
|
||||
// add deco to existing windows
|
||||
for (auto& w : g_pCompositor->m_windows) {
|
||||
if (w->isHidden() || !w->m_bIsMapped)
|
||||
if (w->isHidden() || !w->m_isMapped)
|
||||
continue;
|
||||
|
||||
onNewWindow(nullptr /* unused */, std::any(w));
|
||||
|
|
|
@ -122,7 +122,7 @@ APICALL EXPORT PLUGIN_DESCRIPTION_INFO PLUGIN_INIT(HANDLE handle) {
|
|||
|
||||
// add deco to existing windows
|
||||
for (auto& w : g_pCompositor->m_windows) {
|
||||
if (w->isHidden() || !w->m_bIsMapped)
|
||||
if (w->isHidden() || !w->m_isMapped)
|
||||
continue;
|
||||
|
||||
HyprlandAPI::addWindowDecoration(PHANDLE, w, makeUnique<CTrail>(w));
|
||||
|
|
|
@ -16,8 +16,8 @@ void CTrail::onTick() {
|
|||
const auto PWINDOW = m_pWindow.lock();
|
||||
|
||||
if (m_iTimer > **PHISTORYSTEP) {
|
||||
m_dLastGeoms.push_front({box{(float)PWINDOW->m_vRealPosition->value().x, (float)PWINDOW->m_vRealPosition->value().y, (float)PWINDOW->m_vRealSize->value().x,
|
||||
(float)PWINDOW->m_vRealSize->value().y},
|
||||
m_dLastGeoms.push_front({box{(float)PWINDOW->m_realPosition->value().x, (float)PWINDOW->m_realPosition->value().y, (float)PWINDOW->m_realSize->value().x,
|
||||
(float)PWINDOW->m_realSize->value().y},
|
||||
std::chrono::system_clock::now()});
|
||||
while (m_dLastGeoms.size() > **PHISTORYPOINTS)
|
||||
m_dLastGeoms.pop_back();
|
||||
|
@ -32,8 +32,8 @@ void CTrail::onTick() {
|
|||
}
|
||||
|
||||
CTrail::CTrail(PHLWINDOW pWindow) : IHyprWindowDecoration(pWindow), m_pWindow(pWindow) {
|
||||
m_vLastWindowPos = pWindow->m_vRealPosition->value();
|
||||
m_vLastWindowSize = pWindow->m_vRealSize->value();
|
||||
m_vLastWindowPos = pWindow->m_realPosition->value();
|
||||
m_vLastWindowSize = pWindow->m_realSize->value();
|
||||
|
||||
pTickCb = HyprlandAPI::registerCallbackDynamic(PHANDLE, "trailTick", [this](void* self, SCallbackInfo& info, std::any data) { this->onTick(); });
|
||||
}
|
||||
|
@ -86,7 +86,7 @@ void CTrail::draw(PHLMONITOR pMonitor, const float& a) {
|
|||
|
||||
const auto PWINDOW = m_pWindow.lock();
|
||||
|
||||
if (!PWINDOW->m_sWindowData.decorate.valueOrDefault())
|
||||
if (!PWINDOW->m_windowData.decorate.valueOrDefault())
|
||||
return;
|
||||
|
||||
auto data = CTrailPassElement::STrailData{this, a};
|
||||
|
@ -106,7 +106,7 @@ void CTrail::renderPass(PHLMONITOR pMonitor, const float& a) {
|
|||
return;
|
||||
|
||||
box thisbox =
|
||||
box{(float)PWINDOW->m_vRealPosition->value().x, (float)PWINDOW->m_vRealPosition->value().y, (float)PWINDOW->m_vRealSize->value().x, (float)PWINDOW->m_vRealSize->value().y};
|
||||
box{(float)PWINDOW->m_realPosition->value().x, (float)PWINDOW->m_realPosition->value().y, (float)PWINDOW->m_realSize->value().x, (float)PWINDOW->m_realSize->value().y};
|
||||
CBox wlrbox = {thisbox.x - pMonitor->vecPosition.x, thisbox.y - pMonitor->vecPosition.y, thisbox.w, thisbox.h};
|
||||
wlrbox.scale(pMonitor->scale).round();
|
||||
|
||||
|
@ -246,10 +246,10 @@ void CTrail::renderPass(PHLMONITOR pMonitor, const float& a) {
|
|||
}
|
||||
}
|
||||
|
||||
box thisboxopengl = box{(PWINDOW->m_vRealPosition->value().x - pMonitor->vecPosition.x) / pMonitor->vecSize.x,
|
||||
(PWINDOW->m_vRealPosition->value().y - pMonitor->vecPosition.y) / pMonitor->vecSize.y,
|
||||
(PWINDOW->m_vRealPosition->value().x + PWINDOW->m_vRealSize->value().x) / pMonitor->vecSize.x,
|
||||
(PWINDOW->m_vRealPosition->value().y + PWINDOW->m_vRealSize->value().y) / pMonitor->vecSize.y};
|
||||
box thisboxopengl = box{(PWINDOW->m_realPosition->value().x - pMonitor->vecPosition.x) / pMonitor->vecSize.x,
|
||||
(PWINDOW->m_realPosition->value().y - pMonitor->vecPosition.y) / pMonitor->vecSize.y,
|
||||
(PWINDOW->m_realPosition->value().x + PWINDOW->m_realSize->value().x) / pMonitor->vecSize.x,
|
||||
(PWINDOW->m_realPosition->value().y + PWINDOW->m_realSize->value().y) / pMonitor->vecSize.y};
|
||||
glUniform4f(g_pGlobalState->trailShader.gradient, thisboxopengl.x, thisboxopengl.y, thisboxopengl.w, thisboxopengl.h);
|
||||
glUniform4f(g_pGlobalState->trailShader.color, COLOR.r, COLOR.g, COLOR.b, COLOR.a);
|
||||
|
||||
|
@ -325,12 +325,12 @@ eDecorationType CTrail::getDecorationType() {
|
|||
}
|
||||
|
||||
void CTrail::updateWindow(PHLWINDOW pWindow) {
|
||||
const auto PWORKSPACE = pWindow->m_pWorkspace;
|
||||
const auto PWORKSPACE = pWindow->m_workspace;
|
||||
|
||||
const auto WORKSPACEOFFSET = PWORKSPACE && !pWindow->m_bPinned ? PWORKSPACE->m_renderOffset->value() : Vector2D();
|
||||
const auto WORKSPACEOFFSET = PWORKSPACE && !pWindow->m_pinned ? PWORKSPACE->m_renderOffset->value() : Vector2D();
|
||||
|
||||
m_vLastWindowPos = pWindow->m_vRealPosition->value() + WORKSPACEOFFSET;
|
||||
m_vLastWindowSize = pWindow->m_vRealSize->value();
|
||||
m_vLastWindowPos = pWindow->m_realPosition->value() + WORKSPACEOFFSET;
|
||||
m_vLastWindowSize = pWindow->m_realSize->value();
|
||||
|
||||
damageEntire();
|
||||
}
|
||||
|
|
|
@ -36,27 +36,27 @@ std::vector<PHLWINDOWREF> bgWindows;
|
|||
void onNewWindow(PHLWINDOW pWindow) {
|
||||
static auto* const PCLASS = (Hyprlang::STRING const*)HyprlandAPI::getConfigValue(PHANDLE, "plugin:hyprwinwrap:class")->getDataStaticPtr();
|
||||
|
||||
if (pWindow->m_szInitialClass != *PCLASS)
|
||||
if (pWindow->m_initialClass != *PCLASS)
|
||||
return;
|
||||
|
||||
const auto PMONITOR = pWindow->m_pMonitor.lock();
|
||||
const auto PMONITOR = pWindow->m_monitor.lock();
|
||||
|
||||
if (!PMONITOR)
|
||||
return;
|
||||
|
||||
if (!pWindow->m_bIsFloating)
|
||||
if (!pWindow->m_isFloating)
|
||||
g_pLayoutManager->getCurrentLayout()->changeWindowFloatingMode(pWindow);
|
||||
|
||||
pWindow->m_vRealSize->setValueAndWarp(PMONITOR->vecSize);
|
||||
pWindow->m_vRealPosition->setValueAndWarp(PMONITOR->vecPosition);
|
||||
pWindow->m_vSize = PMONITOR->vecSize;
|
||||
pWindow->m_vPosition = PMONITOR->vecPosition;
|
||||
pWindow->m_bPinned = true;
|
||||
pWindow->m_realSize->setValueAndWarp(PMONITOR->vecSize);
|
||||
pWindow->m_realPosition->setValueAndWarp(PMONITOR->vecPosition);
|
||||
pWindow->m_size = PMONITOR->vecSize;
|
||||
pWindow->m_position = PMONITOR->vecPosition;
|
||||
pWindow->m_pinned = true;
|
||||
pWindow->sendWindowSize(true);
|
||||
|
||||
bgWindows.push_back(pWindow);
|
||||
|
||||
pWindow->m_bHidden = true; // no renderino hyprland pls
|
||||
pWindow->m_hidden = true; // no renderino hyprland pls
|
||||
|
||||
g_pInputManager->refocus();
|
||||
|
||||
|
@ -76,15 +76,15 @@ void onRenderStage(eRenderStage stage) {
|
|||
for (auto& bg : bgWindows) {
|
||||
const auto bgw = bg.lock();
|
||||
|
||||
if (bgw->m_pMonitor != g_pHyprOpenGL->m_RenderData.pMonitor)
|
||||
if (bgw->m_monitor != g_pHyprOpenGL->m_RenderData.pMonitor)
|
||||
continue;
|
||||
|
||||
// cant use setHidden cuz that sends suspended and shit too that would be laggy
|
||||
bgw->m_bHidden = false;
|
||||
bgw->m_hidden = false;
|
||||
|
||||
g_pHyprRenderer->renderWindow(bgw, g_pHyprOpenGL->m_RenderData.pMonitor.lock(), Time::steadyNow(), false, RENDER_PASS_ALL, false, true);
|
||||
|
||||
bgw->m_bHidden = true;
|
||||
bgw->m_hidden = true;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -97,17 +97,17 @@ void onCommitSubsurface(CSubsurface* thisptr) {
|
|||
}
|
||||
|
||||
// cant use setHidden cuz that sends suspended and shit too that would be laggy
|
||||
PWINDOW->m_bHidden = false;
|
||||
PWINDOW->m_hidden = false;
|
||||
|
||||
((origCommitSubsurface)subsurfaceHook->m_pOriginal)(thisptr);
|
||||
if (const auto MON = PWINDOW->m_pMonitor.lock(); MON)
|
||||
if (const auto MON = PWINDOW->m_monitor.lock(); MON)
|
||||
g_pHyprOpenGL->markBlurDirtyForMonitor(MON);
|
||||
|
||||
PWINDOW->m_bHidden = true;
|
||||
PWINDOW->m_hidden = true;
|
||||
}
|
||||
|
||||
void onCommit(void* owner, void* data) {
|
||||
const auto PWINDOW = ((CWindow*)owner)->m_pSelf.lock();
|
||||
const auto PWINDOW = ((CWindow*)owner)->m_self.lock();
|
||||
|
||||
if (std::find_if(bgWindows.begin(), bgWindows.end(), [PWINDOW](const auto& ref) { return ref.lock() == PWINDOW; }) == bgWindows.end()) {
|
||||
((origCommit)commitHook->m_pOriginal)(owner, data);
|
||||
|
@ -115,13 +115,13 @@ void onCommit(void* owner, void* data) {
|
|||
}
|
||||
|
||||
// cant use setHidden cuz that sends suspended and shit too that would be laggy
|
||||
PWINDOW->m_bHidden = false;
|
||||
PWINDOW->m_hidden = false;
|
||||
|
||||
((origCommit)commitHook->m_pOriginal)(owner, data);
|
||||
if (const auto MON = PWINDOW->m_pMonitor.lock(); MON)
|
||||
if (const auto MON = PWINDOW->m_monitor.lock(); MON)
|
||||
g_pHyprOpenGL->markBlurDirtyForMonitor(MON);
|
||||
|
||||
PWINDOW->m_bHidden = true;
|
||||
PWINDOW->m_hidden = true;
|
||||
}
|
||||
|
||||
void onConfigReloaded() {
|
||||
|
|
|
@ -36,7 +36,7 @@ static SDispatchResult moveOrExec(std::string in) {
|
|||
if (!PWINDOW)
|
||||
g_pKeybindManager->spawn(vars[1]);
|
||||
else {
|
||||
if (g_pCompositor->m_lastMonitor->activeWorkspace != PWINDOW->m_pWorkspace)
|
||||
if (g_pCompositor->m_lastMonitor->activeWorkspace != PWINDOW->m_workspace)
|
||||
g_pCompositor->moveWindowToWorkspaceSafe(PWINDOW, g_pCompositor->m_lastMonitor->activeWorkspace);
|
||||
else
|
||||
g_pCompositor->warpCursorTo(PWINDOW->middle());
|
||||
|
@ -52,15 +52,15 @@ static SDispatchResult throwUnfocused(std::string in) {
|
|||
if (id == WORKSPACE_INVALID)
|
||||
return SDispatchResult{.success = false, .error = "Failed to find workspace"};
|
||||
|
||||
if (!g_pCompositor->m_lastWindow || !g_pCompositor->m_lastWindow->m_pWorkspace)
|
||||
if (!g_pCompositor->m_lastWindow || !g_pCompositor->m_lastWindow->m_workspace)
|
||||
return SDispatchResult{.success = false, .error = "No valid last window"};
|
||||
|
||||
auto pWorkspace = g_pCompositor->getWorkspaceByID(id);
|
||||
if (!pWorkspace)
|
||||
pWorkspace = g_pCompositor->createNewWorkspace(id, g_pCompositor->m_lastWindow->m_pWorkspace->monitorID(), name, false);
|
||||
pWorkspace = g_pCompositor->createNewWorkspace(id, g_pCompositor->m_lastWindow->m_workspace->monitorID(), name, false);
|
||||
|
||||
for (const auto& w : g_pCompositor->m_windows) {
|
||||
if (w == g_pCompositor->m_lastWindow || w->m_pWorkspace != g_pCompositor->m_lastWindow->m_pWorkspace)
|
||||
if (w == g_pCompositor->m_lastWindow || w->m_workspace != g_pCompositor->m_lastWindow->m_workspace)
|
||||
continue;
|
||||
|
||||
g_pCompositor->moveWindowToWorkspaceSafe(w, pWorkspace);
|
||||
|
@ -85,7 +85,7 @@ static SDispatchResult bringAllFrom(std::string in) {
|
|||
const auto PLASTWINDOW = g_pCompositor->m_lastWindow.lock();
|
||||
|
||||
for (const auto& w : g_pCompositor->m_windows) {
|
||||
if (w->m_pWorkspace != pWorkspace)
|
||||
if (w->m_workspace != pWorkspace)
|
||||
continue;
|
||||
|
||||
g_pCompositor->moveWindowToWorkspaceSafe(w, g_pCompositor->m_lastMonitor->activeWorkspace);
|
||||
|
@ -104,7 +104,7 @@ static SDispatchResult closeUnfocused(std::string in) {
|
|||
return SDispatchResult{.success = false, .error = "No focused monitor"};
|
||||
|
||||
for (const auto& w : g_pCompositor->m_windows) {
|
||||
if (w->m_pWorkspace != g_pCompositor->m_lastMonitor->activeWorkspace || w->m_pMonitor != g_pCompositor->m_lastMonitor || !w->m_bIsMapped)
|
||||
if (w->m_workspace != g_pCompositor->m_lastMonitor->activeWorkspace || w->m_monitor != g_pCompositor->m_lastMonitor || !w->m_isMapped)
|
||||
continue;
|
||||
|
||||
g_pCompositor->closeWindow(w);
|
||||
|
|
Loading…
Reference in a new issue