mirror of
https://github.com/Trensa-Organization/hy3.git
synced 2025-03-16 03:03:40 +01:00
Fix slide animations
This commit is contained in:
parent
e833ef3960
commit
d99f3253fb
2 changed files with 25 additions and 16 deletions
|
@ -114,12 +114,20 @@ void Hy3Node::recalcSizePosRecursive(bool force) {
|
||||||
static const auto* gaps_out = &HyprlandAPI::getConfigValue(PHANDLE, "general:gaps_out")->intValue;
|
static const auto* gaps_out = &HyprlandAPI::getConfigValue(PHANDLE, "general:gaps_out")->intValue;
|
||||||
|
|
||||||
int outer_gaps = 0;
|
int outer_gaps = 0;
|
||||||
|
Vector2D gap_pos_offset;
|
||||||
|
Vector2D gap_size_offset;
|
||||||
if (this->parent == nullptr) {
|
if (this->parent == nullptr) {
|
||||||
outer_gaps = *gaps_out - *gaps_in;
|
outer_gaps = *gaps_out - *gaps_in;
|
||||||
|
|
||||||
|
gap_pos_offset = Vector2D(outer_gaps, outer_gaps);
|
||||||
|
gap_size_offset = Vector2D(outer_gaps * 2, outer_gaps * 2);
|
||||||
|
} else {
|
||||||
|
gap_pos_offset = this->gap_pos_offset;
|
||||||
|
gap_size_offset = this->gap_size_offset;
|
||||||
}
|
}
|
||||||
|
|
||||||
auto tpos = this->position + Vector2D(outer_gaps, outer_gaps);
|
auto tpos = this->position;
|
||||||
auto tsize = this->size - Vector2D(outer_gaps * 2, outer_gaps * 2);
|
auto tsize = this->size;
|
||||||
|
|
||||||
static const auto* tab_bar_height = &HyprlandAPI::getConfigValue(PHANDLE, "plugin:hy3:tabs:height")->intValue;
|
static const auto* tab_bar_height = &HyprlandAPI::getConfigValue(PHANDLE, "plugin:hy3:tabs:height")->intValue;
|
||||||
static const auto* tab_bar_padding = &HyprlandAPI::getConfigValue(PHANDLE, "plugin:hy3:tabs:padding")->intValue;
|
static const auto* tab_bar_padding = &HyprlandAPI::getConfigValue(PHANDLE, "plugin:hy3:tabs:padding")->intValue;
|
||||||
|
@ -143,16 +151,9 @@ void Hy3Node::recalcSizePosRecursive(bool force) {
|
||||||
|
|
||||||
switch (group->layout) {
|
switch (group->layout) {
|
||||||
case Hy3GroupLayout::SplitH:
|
case Hy3GroupLayout::SplitH:
|
||||||
child->position.x = tpos.x;
|
|
||||||
child->size.x = tsize.x;
|
|
||||||
child->position.y = tpos.y;
|
|
||||||
child->size.y = tsize.y;
|
|
||||||
break;
|
|
||||||
case Hy3GroupLayout::SplitV:
|
case Hy3GroupLayout::SplitV:
|
||||||
child->position.y = tpos.y;
|
child->position = tpos;
|
||||||
child->size.y = tsize.y;
|
child->size = tsize;
|
||||||
child->position.x = tpos.x;
|
|
||||||
child->size.x = tsize.x;
|
|
||||||
break;
|
break;
|
||||||
case Hy3GroupLayout::Tabbed:
|
case Hy3GroupLayout::Tabbed:
|
||||||
child->position.y = tpos.y + tab_height_offset;
|
child->position.y = tpos.y + tab_height_offset;
|
||||||
|
@ -162,11 +163,13 @@ void Hy3Node::recalcSizePosRecursive(bool force) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
child->gap_pos_offset = gap_pos_offset;
|
||||||
|
child->gap_size_offset = gap_size_offset;
|
||||||
|
|
||||||
child->setHidden(this->hidden);
|
child->setHidden(this->hidden);
|
||||||
|
|
||||||
this->updateTabBar();
|
|
||||||
|
|
||||||
child->recalcSizePosRecursive(force);
|
child->recalcSizePosRecursive(force);
|
||||||
|
this->updateTabBar();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -219,6 +222,9 @@ void Hy3Node::recalcSizePosRecursive(bool force) {
|
||||||
child->recalcSizePosRecursive(force);
|
child->recalcSizePosRecursive(force);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
child->gap_pos_offset = gap_pos_offset;
|
||||||
|
child->gap_size_offset = gap_pos_offset;
|
||||||
}
|
}
|
||||||
|
|
||||||
this->updateTabBar();
|
this->updateTabBar();
|
||||||
|
@ -705,10 +711,11 @@ void Hy3Layout::applyNodeDataToWindow(Hy3Node* node, bool force) {
|
||||||
window->m_sSpecialRenderData.border = true;
|
window->m_sSpecialRenderData.border = true;
|
||||||
window->m_sSpecialRenderData.decorate = true;
|
window->m_sSpecialRenderData.decorate = true;
|
||||||
|
|
||||||
Vector2D gaps_offset(*gaps_in, *gaps_in);
|
auto gaps_offset_topleft = Vector2D(*gaps_in, *gaps_in) + node->gap_pos_offset;
|
||||||
|
auto gaps_offset_bottomright = Vector2D(*gaps_in * 2, *gaps_in * 2) + node->gap_size_offset;
|
||||||
|
|
||||||
calcPos = calcPos + gaps_offset;
|
calcPos = calcPos + gaps_offset_topleft;
|
||||||
calcSize = calcSize - (gaps_offset * 2);
|
calcSize = calcSize - gaps_offset_bottomright;
|
||||||
|
|
||||||
const auto reserved_area = window->getFullWindowReservedArea();
|
const auto reserved_area = window->getFullWindowReservedArea();
|
||||||
calcPos = calcPos + reserved_area.topLeft;
|
calcPos = calcPos + reserved_area.topLeft;
|
||||||
|
|
|
@ -69,6 +69,8 @@ struct Hy3Node {
|
||||||
Hy3NodeData data;
|
Hy3NodeData data;
|
||||||
Vector2D position;
|
Vector2D position;
|
||||||
Vector2D size;
|
Vector2D size;
|
||||||
|
Vector2D gap_pos_offset;
|
||||||
|
Vector2D gap_size_offset;
|
||||||
float size_ratio = 1.0;
|
float size_ratio = 1.0;
|
||||||
int workspace_id = -1;
|
int workspace_id = -1;
|
||||||
bool hidden = false;
|
bool hidden = false;
|
||||||
|
|
Loading…
Add table
Reference in a new issue