1d74cd99a29d5e4fdd5913863499cdfc2e264069

Author
outfoxxed <outfoxxed@outfoxxed.me>
Committer
outfoxxed <outfoxxed@outfoxxed.me>
Date

Message

update window rules in missing places

Diff

 1diff --git a/src/Hy3Layout.cpp b/src/Hy3Layout.cpp
 2index 1199e1a904f252aff46afd53c97fbb1f56d157b6..f8e355af120b2eb4e21eceb298a67aa4fea713b4 100644
 3--- a/src/Hy3Layout.cpp
 4+++ b/src/Hy3Layout.cpp
 5@@ -511,6 +511,7 @@ void Hy3Layout::fullscreenRequestForWindow(
 6 			*window->m_realSize = window->m_lastFloatingSize;
 7 
 8 			window->m_ruleApplicator->resetProps(Desktop::Rule::RULE_PROP_ALL, Desktop::Types::PRIORITY_LAYOUT);
 9+			window->updateWindowData();
10 		}
11 	} else {
12 		// save position and size if floating
13@@ -1699,6 +1700,7 @@ void Hy3Layout::applyNodeDataToWindow(Hy3Node* node, bool no_animation) {
14 	}
15 
16 	window->m_ruleApplicator->resetProps(Desktop::Rule::RULE_PROP_ALL, Desktop::Types::PRIORITY_LAYOUT);
17+	window->updateWindowData();
18 
19 	auto nodeBox = CBox(node->position, node->size);
20 	nodeBox.round();
21@@ -1706,6 +1708,8 @@ void Hy3Layout::applyNodeDataToWindow(Hy3Node* node, bool no_animation) {
22 	window->m_size = nodeBox.size();
23 	window->m_position = nodeBox.pos();
24 
25+	window->updateWindowDecos();
26+
27 	auto only_node = root_node != nullptr && root_node->data.as_group().children.size() == 1
28 	              && root_node->data.as_group().children.front()->data.is_window();
29 
30@@ -1713,14 +1717,11 @@ void Hy3Layout::applyNodeDataToWindow(Hy3Node* node, bool no_animation) {
31 	    && ((*no_gaps_when_only != 0 && (only_node || window->isFullscreen()))
32 	        || window->isEffectiveInternalFSMode(FSMODE_FULLSCREEN)))
33 	{
34-		window->updateWindowDecos();
35 
36 		const auto reserved = window->getFullWindowReservedArea();
37 
38 		*window->m_realPosition = window->m_position + reserved.topLeft;
39 		*window->m_realSize = window->m_size - (reserved.topLeft + reserved.bottomRight);
40-
41-		window->sendWindowSize(true);
42 	} else {
43 		auto reserved = window->getFullWindowReservedArea();
44 		auto wb = node->getStandardWindowArea({-reserved.topLeft, -reserved.bottomRight});
45@@ -1728,8 +1729,6 @@ void Hy3Layout::applyNodeDataToWindow(Hy3Node* node, bool no_animation) {
46 		*window->m_realPosition = wb.pos();
47 		*window->m_realSize = wb.size();
48 
49-		window->sendWindowSize(true);
50-
51 		if (no_animation) {
52 			g_pHyprRenderer->damageWindow(window);
53