mirror of
https://github.com/hyprwm/hyprland-plugins.git
synced 2025-01-15 16:19:47 +01:00
all: chase hyprland
This commit is contained in:
parent
b6b31113ce
commit
d224c84d8e
6 changed files with 52 additions and 51 deletions
|
@ -8,8 +8,8 @@
|
||||||
#include "globals.hpp"
|
#include "globals.hpp"
|
||||||
|
|
||||||
CBordersPlusPlus::CBordersPlusPlus(PHLWINDOW pWindow) : IHyprWindowDecoration(pWindow), m_pWindow(pWindow) {
|
CBordersPlusPlus::CBordersPlusPlus(PHLWINDOW pWindow) : IHyprWindowDecoration(pWindow), m_pWindow(pWindow) {
|
||||||
m_vLastWindowPos = pWindow->m_vRealPosition.value();
|
m_vLastWindowPos = pWindow->m_vRealPosition->value();
|
||||||
m_vLastWindowSize = pWindow->m_vRealSize.value();
|
m_vLastWindowSize = pWindow->m_vRealSize->value();
|
||||||
}
|
}
|
||||||
|
|
||||||
CBordersPlusPlus::~CBordersPlusPlus() {
|
CBordersPlusPlus::~CBordersPlusPlus() {
|
||||||
|
@ -97,7 +97,7 @@ void CBordersPlusPlus::drawPass(PHLMONITOR pMonitor, const float& a) {
|
||||||
return;
|
return;
|
||||||
|
|
||||||
const auto PWORKSPACE = PWINDOW->m_pWorkspace;
|
const auto PWORKSPACE = PWINDOW->m_pWorkspace;
|
||||||
const auto WORKSPACEOFFSET = PWORKSPACE && !PWINDOW->m_bPinned ? PWORKSPACE->m_vRenderOffset.value() : Vector2D();
|
const auto WORKSPACEOFFSET = PWORKSPACE && !PWINDOW->m_bPinned ? PWORKSPACE->m_vRenderOffset->value() : Vector2D();
|
||||||
|
|
||||||
auto rounding = PWINDOW->rounding() == 0 ? 0 : (PWINDOW->rounding() + **PBORDERSIZE) * pMonitor->scale;
|
auto rounding = PWINDOW->rounding() == 0 ? 0 : (PWINDOW->rounding() + **PBORDERSIZE) * pMonitor->scale;
|
||||||
const auto ORIGINALROUND = rounding == 0 ? 0 : (PWINDOW->rounding() + **PBORDERSIZE) * pMonitor->scale;
|
const auto ORIGINALROUND = rounding == 0 ? 0 : (PWINDOW->rounding() + **PBORDERSIZE) * pMonitor->scale;
|
||||||
|
@ -155,8 +155,8 @@ eDecorationType CBordersPlusPlus::getDecorationType() {
|
||||||
}
|
}
|
||||||
|
|
||||||
void CBordersPlusPlus::updateWindow(PHLWINDOW pWindow) {
|
void CBordersPlusPlus::updateWindow(PHLWINDOW pWindow) {
|
||||||
m_vLastWindowPos = pWindow->m_vRealPosition.value();
|
m_vLastWindowPos = pWindow->m_vRealPosition->value();
|
||||||
m_vLastWindowSize = pWindow->m_vRealSize.value();
|
m_vLastWindowSize = pWindow->m_vRealSize->value();
|
||||||
|
|
||||||
damageEntire();
|
damageEntire();
|
||||||
}
|
}
|
||||||
|
|
|
@ -430,7 +430,7 @@ void CHyprBar::renderPass(PHLMONITOR pMonitor, const float& a) {
|
||||||
}
|
}
|
||||||
|
|
||||||
const auto PWORKSPACE = PWINDOW->m_pWorkspace;
|
const auto PWORKSPACE = PWINDOW->m_pWorkspace;
|
||||||
const auto WORKSPACEOFFSET = PWORKSPACE && !PWINDOW->m_bPinned ? PWORKSPACE->m_vRenderOffset.value() : Vector2D();
|
const auto WORKSPACEOFFSET = PWORKSPACE && !PWINDOW->m_bPinned ? PWORKSPACE->m_vRenderOffset->value() : Vector2D();
|
||||||
|
|
||||||
const auto ROUNDING = PWINDOW->rounding() + (*PPRECEDENCE ? 0 : PWINDOW->getRealBorderSize());
|
const auto ROUNDING = PWINDOW->rounding() + (*PPRECEDENCE ? 0 : PWINDOW->getRealBorderSize());
|
||||||
|
|
||||||
|
@ -454,9 +454,9 @@ void CHyprBar::renderPass(PHLMONITOR pMonitor, const float& a) {
|
||||||
|
|
||||||
if (ROUNDING) {
|
if (ROUNDING) {
|
||||||
// the +1 is a shit garbage temp fix until renderRect supports an alpha matte
|
// 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,
|
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_vRealPosition->value().y + PWINDOW->m_vFloatingOffset.y - pMonitor->vecPosition.y + 1, PWINDOW->m_vRealSize->value().x - 2,
|
||||||
PWINDOW->m_vRealSize.value().y - 2};
|
PWINDOW->m_vRealSize->value().y - 2};
|
||||||
|
|
||||||
if (windowBox.w < 1 || windowBox.h < 1)
|
if (windowBox.w < 1 || windowBox.h < 1)
|
||||||
return;
|
return;
|
||||||
|
@ -556,7 +556,7 @@ CBox CHyprBar::assignedBoxGlobal() {
|
||||||
box.translate(g_pDecorationPositioner->getEdgeDefinedPoint(DECORATION_EDGE_TOP, PWINDOW));
|
box.translate(g_pDecorationPositioner->getEdgeDefinedPoint(DECORATION_EDGE_TOP, PWINDOW));
|
||||||
|
|
||||||
const auto PWORKSPACE = PWINDOW->m_pWorkspace;
|
const auto PWORKSPACE = PWINDOW->m_pWorkspace;
|
||||||
const auto WORKSPACEOFFSET = PWORKSPACE && !PWINDOW->m_bPinned ? PWORKSPACE->m_vRenderOffset.value() : Vector2D();
|
const auto WORKSPACEOFFSET = PWORKSPACE && !PWINDOW->m_bPinned ? PWORKSPACE->m_vRenderOffset->value() : Vector2D();
|
||||||
|
|
||||||
return box.translate(WORKSPACEOFFSET);
|
return box.translate(WORKSPACEOFFSET);
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,11 +7,11 @@
|
||||||
#undef private
|
#undef private
|
||||||
#include "OverviewPassElement.hpp"
|
#include "OverviewPassElement.hpp"
|
||||||
|
|
||||||
static void damageMonitor(void*) {
|
static void damageMonitor(WP<Hyprutils::Animation::CBaseAnimatedVariable> thisptr) {
|
||||||
g_pOverview->damage();
|
g_pOverview->damage();
|
||||||
}
|
}
|
||||||
|
|
||||||
static void removeOverview(void*) {
|
static void removeOverview(WP<Hyprutils::Animation::CBaseAnimatedVariable> thisptr) {
|
||||||
g_pOverview.reset();
|
g_pOverview.reset();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -162,18 +162,19 @@ COverview::COverview(PHLWORKSPACE startedOn_, bool swipe_) : startedOn(startedOn
|
||||||
// zoom on the current workspace.
|
// zoom on the current workspace.
|
||||||
const auto& TILE = images[std::clamp(currentid, 0, SIDE_LENGTH * SIDE_LENGTH)];
|
const auto& TILE = images[std::clamp(currentid, 0, SIDE_LENGTH * SIDE_LENGTH)];
|
||||||
|
|
||||||
size.create(pMonitor->vecSize * pMonitor->vecSize / tileSize, g_pConfigManager->getAnimationPropertyConfig("windowsMove"), AVARDAMAGE_NONE);
|
g_pAnimationManager->createAnimation(pMonitor->vecSize * pMonitor->vecSize / tileSize, size, g_pConfigManager->getAnimationPropertyConfig("windowsMove"), AVARDAMAGE_NONE);
|
||||||
pos.create((-((pMonitor->vecSize / (double)SIDE_LENGTH) * Vector2D{currentid % SIDE_LENGTH, currentid / SIDE_LENGTH}) * pMonitor->scale) * (pMonitor->vecSize / tileSize),
|
g_pAnimationManager->createAnimation((-((pMonitor->vecSize / (double)SIDE_LENGTH) * Vector2D{currentid % SIDE_LENGTH, currentid / SIDE_LENGTH}) * pMonitor->scale) *
|
||||||
g_pConfigManager->getAnimationPropertyConfig("windowsMove"), AVARDAMAGE_NONE);
|
(pMonitor->vecSize / tileSize),
|
||||||
|
pos, g_pConfigManager->getAnimationPropertyConfig("windowsMove"), AVARDAMAGE_NONE);
|
||||||
|
|
||||||
size.setUpdateCallback(damageMonitor);
|
size->setUpdateCallback(damageMonitor);
|
||||||
pos.setUpdateCallback(damageMonitor);
|
pos->setUpdateCallback(damageMonitor);
|
||||||
|
|
||||||
if (!swipe) {
|
if (!swipe) {
|
||||||
size = pMonitor->vecSize;
|
*size = pMonitor->vecSize;
|
||||||
pos = {0, 0};
|
*pos = {0, 0};
|
||||||
|
|
||||||
size.setCallbackOnEnd([this](void*) { redrawAll(true); });
|
size->setCallbackOnEnd([this](auto) { redrawAll(true); });
|
||||||
}
|
}
|
||||||
|
|
||||||
openedID = currentid;
|
openedID = currentid;
|
||||||
|
@ -228,7 +229,7 @@ void COverview::redrawID(int id, bool forcelowres) {
|
||||||
Vector2D tileRenderSize = (pMonitor->vecSize - Vector2D{GAP_WIDTH, GAP_WIDTH} * (SIDE_LENGTH - 1)) / SIDE_LENGTH;
|
Vector2D tileRenderSize = (pMonitor->vecSize - Vector2D{GAP_WIDTH, GAP_WIDTH} * (SIDE_LENGTH - 1)) / SIDE_LENGTH;
|
||||||
CBox monbox{0, 0, tileSize.x * 2, tileSize.y * 2};
|
CBox monbox{0, 0, tileSize.x * 2, tileSize.y * 2};
|
||||||
|
|
||||||
if (!forcelowres && (size.value() != pMonitor->vecSize || closing))
|
if (!forcelowres && (size->value() != pMonitor->vecSize || closing))
|
||||||
monbox = {{0, 0}, pMonitor->vecPixelSize};
|
monbox = {{0, 0}, pMonitor->vecPixelSize};
|
||||||
|
|
||||||
if (!ENABLE_LOWRES)
|
if (!ENABLE_LOWRES)
|
||||||
|
@ -301,7 +302,7 @@ void COverview::damage() {
|
||||||
void COverview::onDamageReported() {
|
void COverview::onDamageReported() {
|
||||||
damageDirty = true;
|
damageDirty = true;
|
||||||
|
|
||||||
Vector2D SIZE = size.value();
|
Vector2D SIZE = size->value();
|
||||||
|
|
||||||
Vector2D tileSize = (SIZE / SIDE_LENGTH);
|
Vector2D tileSize = (SIZE / SIDE_LENGTH);
|
||||||
Vector2D tileRenderSize = (SIZE - Vector2D{GAP_WIDTH, GAP_WIDTH} * (SIDE_LENGTH - 1)) / SIDE_LENGTH;
|
Vector2D tileRenderSize = (SIZE - Vector2D{GAP_WIDTH, GAP_WIDTH} * (SIDE_LENGTH - 1)) / SIDE_LENGTH;
|
||||||
|
@ -328,10 +329,10 @@ void COverview::close() {
|
||||||
|
|
||||||
Vector2D tileSize = (pMonitor->vecSize / SIDE_LENGTH);
|
Vector2D tileSize = (pMonitor->vecSize / SIDE_LENGTH);
|
||||||
|
|
||||||
size = pMonitor->vecSize * pMonitor->vecSize / tileSize;
|
*size = pMonitor->vecSize * pMonitor->vecSize / tileSize;
|
||||||
pos = (-((pMonitor->vecSize / (double)SIDE_LENGTH) * Vector2D{ID % SIDE_LENGTH, ID / SIDE_LENGTH}) * pMonitor->scale) * (pMonitor->vecSize / tileSize);
|
*pos = (-((pMonitor->vecSize / (double)SIDE_LENGTH) * Vector2D{ID % SIDE_LENGTH, ID / SIDE_LENGTH}) * pMonitor->scale) * (pMonitor->vecSize / tileSize);
|
||||||
|
|
||||||
size.setCallbackOnEnd(removeOverview);
|
size->setCallbackOnEnd(removeOverview);
|
||||||
|
|
||||||
closing = true;
|
closing = true;
|
||||||
|
|
||||||
|
@ -386,14 +387,14 @@ void COverview::render() {
|
||||||
}
|
}
|
||||||
|
|
||||||
void COverview::fullRender() {
|
void COverview::fullRender() {
|
||||||
const auto GAPSIZE = (closing ? (1.0 - size.getPercent()) : size.getPercent()) * GAP_WIDTH;
|
const auto GAPSIZE = (closing ? (1.0 - size->getPercent()) : size->getPercent()) * GAP_WIDTH;
|
||||||
|
|
||||||
if (pMonitor->activeWorkspace != startedOn && !closing) {
|
if (pMonitor->activeWorkspace != startedOn && !closing) {
|
||||||
// likely user changed.
|
// likely user changed.
|
||||||
onWorkspaceChange();
|
onWorkspaceChange();
|
||||||
}
|
}
|
||||||
|
|
||||||
Vector2D SIZE = size.value();
|
Vector2D SIZE = size->value();
|
||||||
|
|
||||||
Vector2D tileSize = (SIZE / SIDE_LENGTH);
|
Vector2D tileSize = (SIZE / SIDE_LENGTH);
|
||||||
Vector2D tileRenderSize = (SIZE - Vector2D{GAPSIZE, GAPSIZE} * (SIDE_LENGTH - 1)) / SIDE_LENGTH;
|
Vector2D tileRenderSize = (SIZE - Vector2D{GAPSIZE, GAPSIZE} * (SIDE_LENGTH - 1)) / SIDE_LENGTH;
|
||||||
|
@ -403,7 +404,7 @@ void COverview::fullRender() {
|
||||||
for (size_t y = 0; y < SIDE_LENGTH; ++y) {
|
for (size_t y = 0; y < SIDE_LENGTH; ++y) {
|
||||||
for (size_t x = 0; x < SIDE_LENGTH; ++x) {
|
for (size_t x = 0; x < SIDE_LENGTH; ++x) {
|
||||||
CBox texbox = {x * tileRenderSize.x + x * GAPSIZE, y * tileRenderSize.y + y * GAPSIZE, tileRenderSize.x, tileRenderSize.y};
|
CBox texbox = {x * tileRenderSize.x + x * GAPSIZE, y * tileRenderSize.y + y * GAPSIZE, tileRenderSize.x, tileRenderSize.y};
|
||||||
texbox.scale(pMonitor->scale).translate(pos.value());
|
texbox.scale(pMonitor->scale).translate(pos->value());
|
||||||
texbox.round();
|
texbox.round();
|
||||||
CRegion damage{0, 0, INT16_MAX, INT16_MAX};
|
CRegion damage{0, 0, INT16_MAX, INT16_MAX};
|
||||||
g_pHyprOpenGL->renderTextureInternalWithDamage(images[x + y * SIDE_LENGTH].fb.getTexture(), &texbox, 1.0, damage);
|
g_pHyprOpenGL->renderTextureInternalWithDamage(images[x + y * SIDE_LENGTH].fb.getTexture(), &texbox, 1.0, damage);
|
||||||
|
@ -436,22 +437,22 @@ void COverview::onSwipeUpdate(double delta) {
|
||||||
const auto SIZEMIN = pMonitor->vecSize;
|
const auto SIZEMIN = pMonitor->vecSize;
|
||||||
const auto POSMIN = Vector2D{0, 0};
|
const auto POSMIN = Vector2D{0, 0};
|
||||||
|
|
||||||
size.setValueAndWarp(lerp(SIZEMIN, SIZEMAX, PERC));
|
size->setValueAndWarp(lerp(SIZEMIN, SIZEMAX, PERC));
|
||||||
pos.setValueAndWarp(lerp(POSMIN, POSMAX, PERC));
|
pos->setValueAndWarp(lerp(POSMIN, POSMAX, PERC));
|
||||||
}
|
}
|
||||||
|
|
||||||
void COverview::onSwipeEnd() {
|
void COverview::onSwipeEnd() {
|
||||||
const auto SIZEMIN = pMonitor->vecSize;
|
const auto SIZEMIN = pMonitor->vecSize;
|
||||||
const auto SIZEMAX = pMonitor->vecSize * pMonitor->vecSize / (pMonitor->vecSize / SIDE_LENGTH);
|
const auto SIZEMAX = pMonitor->vecSize * pMonitor->vecSize / (pMonitor->vecSize / SIDE_LENGTH);
|
||||||
const auto PERC = (size.value() - SIZEMIN).x / (SIZEMAX - SIZEMIN).x;
|
const auto PERC = (size->value() - SIZEMIN).x / (SIZEMAX - SIZEMIN).x;
|
||||||
if (PERC > 0.5) {
|
if (PERC > 0.5) {
|
||||||
close();
|
close();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
size = pMonitor->vecSize;
|
*size = pMonitor->vecSize;
|
||||||
pos = {0, 0};
|
*pos = {0, 0};
|
||||||
|
|
||||||
size.setCallbackOnEnd([this](void*) { redrawAll(true); });
|
size->setCallbackOnEnd([this](WP<Hyprutils::Animation::CBaseAnimatedVariable> thisptr) { redrawAll(true); });
|
||||||
|
|
||||||
swipeWasCommenced = true;
|
swipeWasCommenced = true;
|
||||||
}
|
}
|
||||||
|
|
|
@ -64,8 +64,8 @@ class COverview {
|
||||||
|
|
||||||
PHLWORKSPACE startedOn;
|
PHLWORKSPACE startedOn;
|
||||||
|
|
||||||
CAnimatedVariable<Vector2D> size;
|
PHLANIMVAR<Vector2D> size;
|
||||||
CAnimatedVariable<Vector2D> pos;
|
PHLANIMVAR<Vector2D> pos;
|
||||||
|
|
||||||
bool closing = false;
|
bool closing = false;
|
||||||
|
|
||||||
|
|
|
@ -16,8 +16,8 @@ void CTrail::onTick() {
|
||||||
const auto PWINDOW = m_pWindow.lock();
|
const auto PWINDOW = m_pWindow.lock();
|
||||||
|
|
||||||
if (m_iTimer > **PHISTORYSTEP) {
|
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,
|
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},
|
(float)PWINDOW->m_vRealSize->value().y},
|
||||||
std::chrono::system_clock::now()});
|
std::chrono::system_clock::now()});
|
||||||
while (m_dLastGeoms.size() > **PHISTORYPOINTS)
|
while (m_dLastGeoms.size() > **PHISTORYPOINTS)
|
||||||
m_dLastGeoms.pop_back();
|
m_dLastGeoms.pop_back();
|
||||||
|
@ -32,8 +32,8 @@ void CTrail::onTick() {
|
||||||
}
|
}
|
||||||
|
|
||||||
CTrail::CTrail(PHLWINDOW pWindow) : IHyprWindowDecoration(pWindow), m_pWindow(pWindow) {
|
CTrail::CTrail(PHLWINDOW pWindow) : IHyprWindowDecoration(pWindow), m_pWindow(pWindow) {
|
||||||
m_vLastWindowPos = pWindow->m_vRealPosition.value();
|
m_vLastWindowPos = pWindow->m_vRealPosition->value();
|
||||||
m_vLastWindowSize = pWindow->m_vRealSize.value();
|
m_vLastWindowSize = pWindow->m_vRealSize->value();
|
||||||
|
|
||||||
pTickCb = HyprlandAPI::registerCallbackDynamic(PHANDLE, "trailTick", [this](void* self, SCallbackInfo& info, std::any data) { this->onTick(); });
|
pTickCb = HyprlandAPI::registerCallbackDynamic(PHANDLE, "trailTick", [this](void* self, SCallbackInfo& info, std::any data) { this->onTick(); });
|
||||||
}
|
}
|
||||||
|
@ -106,7 +106,7 @@ void CTrail::renderPass(PHLMONITOR pMonitor, const float& a) {
|
||||||
return;
|
return;
|
||||||
|
|
||||||
box thisbox =
|
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_vRealPosition->value().x, (float)PWINDOW->m_vRealPosition->value().y, (float)PWINDOW->m_vRealSize->value().x, (float)PWINDOW->m_vRealSize->value().y};
|
||||||
CBox wlrbox = {thisbox.x - pMonitor->vecPosition.x, thisbox.y - pMonitor->vecPosition.y, thisbox.w, thisbox.h};
|
CBox wlrbox = {thisbox.x - pMonitor->vecPosition.x, thisbox.y - pMonitor->vecPosition.y, thisbox.w, thisbox.h};
|
||||||
wlrbox.scale(pMonitor->scale).round();
|
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,
|
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().y - pMonitor->vecPosition.y) / pMonitor->vecSize.y,
|
||||||
(PWINDOW->m_vRealPosition.value().x + PWINDOW->m_vRealSize.value().x) / pMonitor->vecSize.x,
|
(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};
|
(PWINDOW->m_vRealPosition->value().y + PWINDOW->m_vRealSize->value().y) / pMonitor->vecSize.y};
|
||||||
glUniform4f(g_pGlobalState->trailShader.gradient, thisboxopengl.x, thisboxopengl.y, thisboxopengl.w, thisboxopengl.h);
|
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);
|
glUniform4f(g_pGlobalState->trailShader.color, COLOR.r, COLOR.g, COLOR.b, COLOR.a);
|
||||||
|
|
||||||
|
@ -327,10 +327,10 @@ eDecorationType CTrail::getDecorationType() {
|
||||||
void CTrail::updateWindow(PHLWINDOW pWindow) {
|
void CTrail::updateWindow(PHLWINDOW pWindow) {
|
||||||
const auto PWORKSPACE = pWindow->m_pWorkspace;
|
const auto PWORKSPACE = pWindow->m_pWorkspace;
|
||||||
|
|
||||||
const auto WORKSPACEOFFSET = PWORKSPACE && !pWindow->m_bPinned ? PWORKSPACE->m_vRenderOffset.value() : Vector2D();
|
const auto WORKSPACEOFFSET = PWORKSPACE && !pWindow->m_bPinned ? PWORKSPACE->m_vRenderOffset->value() : Vector2D();
|
||||||
|
|
||||||
m_vLastWindowPos = pWindow->m_vRealPosition.value() + WORKSPACEOFFSET;
|
m_vLastWindowPos = pWindow->m_vRealPosition->value() + WORKSPACEOFFSET;
|
||||||
m_vLastWindowSize = pWindow->m_vRealSize.value();
|
m_vLastWindowSize = pWindow->m_vRealSize->value();
|
||||||
|
|
||||||
damageEntire();
|
damageEntire();
|
||||||
}
|
}
|
||||||
|
|
|
@ -44,12 +44,12 @@ void onNewWindow(PHLWINDOW pWindow) {
|
||||||
if (!pWindow->m_bIsFloating)
|
if (!pWindow->m_bIsFloating)
|
||||||
g_pLayoutManager->getCurrentLayout()->changeWindowFloatingMode(pWindow);
|
g_pLayoutManager->getCurrentLayout()->changeWindowFloatingMode(pWindow);
|
||||||
|
|
||||||
pWindow->m_vRealSize.setValueAndWarp(PMONITOR->vecSize);
|
pWindow->m_vRealSize->setValueAndWarp(PMONITOR->vecSize);
|
||||||
pWindow->m_vRealPosition.setValueAndWarp(PMONITOR->vecPosition);
|
pWindow->m_vRealPosition->setValueAndWarp(PMONITOR->vecPosition);
|
||||||
pWindow->m_vSize = PMONITOR->vecSize;
|
pWindow->m_vSize = PMONITOR->vecSize;
|
||||||
pWindow->m_vPosition = PMONITOR->vecPosition;
|
pWindow->m_vPosition = PMONITOR->vecPosition;
|
||||||
pWindow->m_bPinned = true;
|
pWindow->m_bPinned = true;
|
||||||
g_pXWaylandManager->setWindowSize(pWindow, pWindow->m_vRealSize.goal(), true);
|
g_pXWaylandManager->setWindowSize(pWindow, pWindow->m_vRealSize->goal(), true);
|
||||||
|
|
||||||
bgWindows.push_back(pWindow);
|
bgWindows.push_back(pWindow);
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue