borders/bars/focus: chase hyprland (#687)

* borders/bars/focus: chase hyprland

* barDeco.cpp: clang-format
This commit is contained in:
LionHeartP
2026-07-15 10:59:07 +03:00
committed by GitHub
parent a2c77641bc
commit 7644cecdb9
3 changed files with 27 additions and 27 deletions

View File

@ -16,8 +16,8 @@ static size_t borderCount() {
}
CBordersPlusPlus::CBordersPlusPlus(PHLWINDOW pWindow) : IHyprWindowDecoration(pWindow), m_pWindow(pWindow) {
m_lastWindowPos = pWindow->m_realPosition->value();
m_lastWindowSize = pWindow->m_realSize->value();
m_lastWindowPos = pWindow->position(Desktop::View::IGeometric::GEOMETRIC_CURRENT);
m_lastWindowSize = pWindow->size(Desktop::View::IGeometric::GEOMETRIC_CURRENT);
}
CBordersPlusPlus::~CBordersPlusPlus() {
@ -156,8 +156,8 @@ eDecorationType CBordersPlusPlus::getDecorationType() {
}
void CBordersPlusPlus::updateWindow(PHLWINDOW pWindow) {
m_lastWindowPos = pWindow->m_realPosition->value();
m_lastWindowSize = pWindow->m_realSize->value();
m_lastWindowPos = pWindow->position(Desktop::View::IGeometric::GEOMETRIC_CURRENT);
m_lastWindowSize = pWindow->size(Desktop::View::IGeometric::GEOMETRIC_CURRENT);
damageEntire();
}

View File

@ -508,9 +508,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_realPosition->value().x + PWINDOW->m_floatingOffset.x - pMonitor->m_position.x + 1,
PWINDOW->m_realPosition->value().y + PWINDOW->m_floatingOffset.y - pMonitor->m_position.y + 1, PWINDOW->m_realSize->value().x - 2,
PWINDOW->m_realSize->value().y - 2};
CBox windowBox = {PWINDOW->position(Desktop::View::IGeometric::GEOMETRIC_CURRENT).x + PWINDOW->m_floatingOffset.x - pMonitor->m_position.x + 1,
PWINDOW->position(Desktop::View::IGeometric::GEOMETRIC_CURRENT).y + PWINDOW->m_floatingOffset.y - pMonitor->m_position.y + 1,
PWINDOW->size(Desktop::View::IGeometric::GEOMETRIC_CURRENT).x - 2, PWINDOW->size(Desktop::View::IGeometric::GEOMETRIC_CURRENT).y - 2};
if (windowBox.w < 1 || windowBox.h < 1)
return;

View File

@ -96,48 +96,48 @@ static void onFocusChange(PHLWINDOW window, Desktop::eFocusReason reason) {
w->alpha(Desktop::View::WINDOW_ALPHA_ACTIVE)->setCallbackOnEnd(nullptr);
});
} else if (mode == "shrink") {
const auto ORIGINAL = CBox{window->m_realPosition->goal(), window->m_realSize->goal()};
const auto ORIGINAL = CBox{window->positionAnimation()->goal(), window->sizeAnimation()->goal()};
window->m_realPosition->setConfig(PIN);
window->m_realSize->setConfig(PIN);
window->positionAnimation()->setConfig(PIN);
window->sizeAnimation()->setConfig(PIN);
auto box = ORIGINAL.copy().scaleFromCenter(configValues.shrinkPercentage->value());
*window->m_realPosition = box.pos();
*window->m_realSize = box.size();
*window->positionAnimation() = box.pos();
*window->sizeAnimation() = box.size();
window->m_realSize->setCallbackOnEnd([w = PHLWINDOWREF{window}, POUT, ORIGINAL](WP<CBaseAnimatedVariable> pav) {
window->sizeAnimation()->setCallbackOnEnd([w = PHLWINDOWREF{window}, POUT, ORIGINAL](WP<CBaseAnimatedVariable> pav) {
if (!w)
return;
w->m_realSize->setConfig(POUT);
w->m_realPosition->setConfig(POUT);
w->sizeAnimation()->setConfig(POUT);
w->positionAnimation()->setConfig(POUT);
if (w->m_isFloating || Fullscreen::controller()->isFullscreen(w.lock())) {
*w->m_realPosition = ORIGINAL.pos();
*w->m_realSize = ORIGINAL.size();
*w->positionAnimation() = ORIGINAL.pos();
*w->sizeAnimation() = ORIGINAL.size();
} else
w->layoutTarget()->recalc();
w->m_realSize->setCallbackOnEnd(nullptr);
w->sizeAnimation()->setCallbackOnEnd(nullptr);
});
} else if (mode == "slide") {
const auto ORIGINAL = window->m_realPosition->goal();
const auto ORIGINAL = window->positionAnimation()->goal();
window->m_realPosition->setConfig(PIN);
window->positionAnimation()->setConfig(PIN);
*window->m_realPosition = ORIGINAL - Vector2D{0.F, configValues.slideHeight->value()};
*window->positionAnimation() = ORIGINAL - Vector2D{0.F, configValues.slideHeight->value()};
window->m_realPosition->setCallbackOnEnd([w = PHLWINDOWREF{window}, POUT, ORIGINAL](WP<CBaseAnimatedVariable> pav) {
window->positionAnimation()->setCallbackOnEnd([w = PHLWINDOWREF{window}, POUT, ORIGINAL](WP<CBaseAnimatedVariable> pav) {
if (!w)
return;
w->m_realPosition->setConfig(POUT);
w->positionAnimation()->setConfig(POUT);
if (w->m_isFloating || Fullscreen::controller()->isFullscreen(w.lock()))
*w->m_realPosition = ORIGINAL;
*w->positionAnimation() = ORIGINAL;
else
w->layoutTarget()->recalc();
w->m_realPosition->setCallbackOnEnd(nullptr);
w->positionAnimation()->setCallbackOnEnd(nullptr);
});
}
}
@ -188,8 +188,8 @@ APICALL EXPORT void PLUGIN_EXIT() {
if (!Desktop::View::validMapped(w))
continue;
w->m_realSize->setCallbackOnEnd(nullptr);
w->m_realPosition->setCallbackOnEnd(nullptr);
w->sizeAnimation()->setCallbackOnEnd(nullptr);
w->positionAnimation()->setCallbackOnEnd(nullptr);
w->alpha(Desktop::View::WINDOW_ALPHA_ACTIVE)->setCallbackOnEnd(nullptr);
}
}