93759c8032995eb566008537389543b3e1b4a65c
- Author
- outfoxxed <outfoxxed@outfoxxed.me>
- Committer
- outfoxxed <outfoxxed@outfoxxed.me>
- Date
Message
Diff
This diff is truncated to protect this page.
1diff --git a/flake.lock b/flake.lock
2index 50bae0861d0d95576e0796b954b4c4f10ad7582a..623b35480553ed446c347d468441719630ece82c 100644
3--- a/flake.lock
4+++ b/flake.lock
5@@ -20,11 +20,11 @@
6 ]
7 },
8 "locked": {
9- "lastModified": 1721487522,
10- "narHash": "sha256-aF3uwUwUK2CgbItoMe3IJF0yidIEWcDx47AiH5y8VKk=",
11+ "lastModified": 1722347739,
12+ "narHash": "sha256-rAoh+K6KG+b1DwSWtqRVocdojnH6nGk6q07mNltoUSM=",
13 "owner": "hyprwm",
14 "repo": "aquamarine",
15- "rev": "acfea3bd1d9e756c7152e639240d52c6628844b0",
16+ "rev": "7c3565f9bedc7cb601cc0baa14792247e4dc1d5a",
17 "type": "github"
18 },
19 "original": {
20@@ -49,11 +49,11 @@
21 ]
22 },
23 "locked": {
24- "lastModified": 1720108799,
25- "narHash": "sha256-AxRkTJlbB8r7aG6gvc7IaLhc2T9TO4/8uqanKRxukBQ=",
26+ "lastModified": 1721330371,
27+ "narHash": "sha256-aYlHTWylczLt6ERJyg6E66Y/XSCbVL7leVcRuJmVbpI=",
28 "owner": "hyprwm",
29 "repo": "hyprcursor",
30- "rev": "a5c0d57325c5f0814c39110a70ca19c070ae9486",
31+ "rev": "4493a972b48f9c3014befbbf381ed5fff91a65dc",
32 "type": "github"
33 },
34 "original": {
35@@ -74,17 +74,17 @@
36 "xdph": "xdph"
37 },
38 "locked": {
39- "lastModified": 1721579057,
40- "narHash": "sha256-x/RIzkL8PwLDNiRV/R308RdCmS8h3G9Xf62XVH/WAp0=",
41+ "lastModified": 1722519799,
42+ "narHash": "sha256-NXeB/KgCbklksgTfHNef0/CfTXmw88YOrh2Q/87S2RM=",
43 "ref": "refs/heads/main",
44- "rev": "928d1dd38a6e4a791d4a4374a4a3bf02311adbb2",
45- "revCount": 4942,
46+ "rev": "ab0a3268e04f2295ec4455be90ce8d0c2b107b8d",
47+ "revCount": 5040,
48 "submodules": true,
49 "type": "git",
50 "url": "https://github.com/hyprwm/Hyprland"
51 },
52 "original": {
53- "rev": "928d1dd38a6e4a791d4a4374a4a3bf02311adbb2",
54+ "rev": "ab0a3268e04f2295ec4455be90ce8d0c2b107b8d",
55 "submodules": true,
56 "type": "git",
57 "url": "https://github.com/hyprwm/Hyprland"
58@@ -104,11 +104,11 @@
59 ]
60 },
61 "locked": {
62- "lastModified": 1718746314,
63- "narHash": "sha256-HUklK5u86w2Yh9dOkk4FdsL8eehcOZ95jPhLixGDRQY=",
64+ "lastModified": 1721326555,
65+ "narHash": "sha256-zCu4R0CSHEactW9JqYki26gy8h9f6rHmSwj4XJmlHgg=",
66 "owner": "hyprwm",
67 "repo": "hyprland-protocols",
68- "rev": "1b61f0093afff20ab44d88ad707aed8bf2215290",
69+ "rev": "5a11232266bf1a1f5952d5b179c3f4b2facaaa84",
70 "type": "github"
71 },
72 "original": {
73@@ -133,11 +133,11 @@
74 ]
75 },
76 "locked": {
77- "lastModified": 1720381373,
78- "narHash": "sha256-lyC/EZdHULsaAKVryK11lgHY9u6pXr7qR4irnxNWC7k=",
79+ "lastModified": 1721324361,
80+ "narHash": "sha256-BiJKO0IIdnSwHQBSrEJlKlFr753urkLE48wtt0UhNG4=",
81 "owner": "hyprwm",
82 "repo": "hyprlang",
83- "rev": "5df0174fd09de4ac5475233d65ffc703e89b82eb",
84+ "rev": "adbefbf49664a6c2c8bf36b6487fd31e3eb68086",
85 "type": "github"
86 },
87 "original": {
88@@ -158,11 +158,11 @@
89 ]
90 },
91 "locked": {
92- "lastModified": 1721071737,
93- "narHash": "sha256-qmC9jGfbE4+EIBbbSAkrfR/p49wShjpv4/KztgE/P54=",
94+ "lastModified": 1722098849,
95+ "narHash": "sha256-D3wIZlBNh7LuZ0NaoCpY/Pvu+xHxIVtSN+KkWZYvvVs=",
96 "owner": "hyprwm",
97 "repo": "hyprutils",
98- "rev": "eb1ceff2b87f6820789249f63faa8e9dcb54d05f",
99+ "rev": "5dcbbc1e3de40b2cecfd2007434d86e924468f1f",
100 "type": "github"
101 },
102 "original": {
103@@ -183,11 +183,11 @@
104 ]
105diff --git a/flake.nix b/flake.nix
106index 9fd22573e1509726884536e43b7b9d762ee08004..3fc5f5758cc923211b1f95ee4187c4ad53ec1fdf 100644
107--- a/flake.nix
108+++ b/flake.nix
109@@ -1,6 +1,6 @@
110 {
111 inputs = {
112- hyprland.url = "git+https://github.com/hyprwm/Hyprland?submodules=1&rev=928d1dd38a6e4a791d4a4374a4a3bf02311adbb2";
113+ hyprland.url = "git+https://github.com/hyprwm/Hyprland?submodules=1&rev=ab0a3268e04f2295ec4455be90ce8d0c2b107b8d";
114 };
115
116 outputs = { self, hyprland, ... }: let
117diff --git a/src/Hy3Layout.cpp b/src/Hy3Layout.cpp
118index 6f65e7393ab2d8d8e381f00b5cdf0990ad7d4f98..d8d6b627ead7947e461a8d6bb134c14171f57004 100644
119--- a/src/Hy3Layout.cpp
120+++ b/src/Hy3Layout.cpp
121@@ -303,8 +303,8 @@ void Hy3Layout::onWindowRemovedTiling(PHLWINDOW window) {
122
123 window->unsetWindowData(PRIORITY_LAYOUT);
124
125- if (window->m_bIsFullscreen) {
126- g_pCompositor->setWindowFullscreen(window, false, FULLSCREEN_FULL);
127+ if (window->isFullscreen()) {
128+ g_pCompositor->setWindowFullscreenInternal(window, FSMODE_NONE);
129 }
130
131 Hy3Node* expand_actor = nullptr;
132@@ -492,24 +492,17 @@ void Hy3Layout::resizeActiveWindow(const Vector2D& delta, eRectCorner corner, PH
133
134 void Hy3Layout::fullscreenRequestForWindow(
135 PHLWINDOW window,
136- eFullscreenMode fullscreen_mode,
137- bool on
138+ eFullscreenMode current_mode,
139+ eFullscreenMode target_mode
140 ) {
141- if (on == window->m_bIsFullscreen || window->m_pWorkspace->m_bIsSpecialWorkspace) return;
142+ if (current_mode == target_mode || window->m_pWorkspace->m_bIsSpecialWorkspace) return;
143
144 const auto monitor = g_pCompositor->getMonitorFromID(window->m_iMonitorID);
145- if (window->m_pWorkspace->m_bHasFullscreenWindow && on) return;
146-
147- window->m_bIsFullscreen = on;
148- window->m_pWorkspace->m_bHasFullscreenWindow = !window->m_pWorkspace->m_bHasFullscreenWindow;
149
150 window->updateDynamicRules();
151 window->updateWindowDecos();
152
153- g_pEventManager->postEvent(SHyprIPCEvent {"fullscreen", std::to_string((int) on)});
154- EMIT_HOOK_EVENT("fullscreen", window);
155-
156- if (!window->m_bIsFullscreen) {
157+ if (target_mode == FSMODE_NONE) {
158 auto* node = this->getNodeFromWindow(window);
159
160 if (node) {
161@@ -523,8 +516,6 @@ void Hy3Layout::fullscreenRequestForWindow(
162 window->unsetWindowData(PRIORITY_LAYOUT);
163 }
164 } else {
165- window->m_pWorkspace->m_efFullscreenMode = fullscreen_mode;
166-
167 // save position and size if floating
168 if (window->m_bIsFloating) {
169 window->m_vLastFloatingPosition = window->m_vRealPosition.goal();
170@@ -533,7 +524,7 @@ void Hy3Layout::fullscreenRequestForWindow(
171 window->m_vSize = window->m_vRealSize.goal();
172 }
173
174- if (fullscreen_mode == FULLSCREEN_FULL) {
175+ if (target_mode == FSMODE_FULLSCREEN) {
176 window->m_vRealPosition = monitor->vecPosition;
177 window->m_vRealSize = monitor->vecSize;
178 } else {
179@@ -569,10 +560,7 @@ void Hy3Layout::fullscreenRequestForWindow(
180 }
181 }
182
183- g_pCompositor->updateWindowAnimatedDecorationValues(window);
184- g_pXWaylandManager->setWindowSize(window, window->m_vRealSize.goal());
185 g_pCompositor->changeWindowZOrder(window, true);
186- this->recalculateMonitor(monitor->ID);
187 }
188
189 std::any Hy3Layout::layoutMessage(SLayoutMessageHeader header, std::string content) {
190@@ -994,7 +982,7 @@ void Hy3Layout::moveNodeToWorkspace(const PHLWORKSPACE& origin, std::string wsna
191
192 // floating or fullscreen
193 if (focused_window != nullptr
194- && (focused_window_node == nullptr || focused_window->m_bIsFullscreen))
195+ && (focused_window_node == nullptr || focused_window->isFullscreen()))
196 {
197 g_pHyprRenderer->damageWindow(focused_window);
198 g_pCompositor->moveWindowToWorkspaceSafe(focused_window, workspace);
199@@ -1288,14 +1276,14 @@ void Hy3Layout::expand(
200 if (node == nullptr) return;
201 PHLWINDOW window;
202
203- const auto monitor = g_pCompositor->getMonitorFromID(workspace->m_iMonitorID);
204+ //const auto monitor = g_pCompositor->getMonitorFromID(workspace->m_iMonitorID);
205
206 switch (option) {
207 case ExpandOption::Expand: {
208 if (node->parent == nullptr) {
209 switch (fs_option) {
210 case ExpandFullscreenOption::MaximizeAsFullscreen:
211- case ExpandFullscreenOption::MaximizeIntermediate: goto fullscreen;
212+ case ExpandFullscreenOption::MaximizeIntermediate:// goto fullscreen;
213 case ExpandFullscreenOption::MaximizeOnly: return;
214 }
215 }
216@@ -1311,7 +1299,7 @@ void Hy3Layout::expand(
217
218 if (node->parent->parent == nullptr) {
219 switch (fs_option) {
220- case ExpandFullscreenOption::MaximizeAsFullscreen: goto fullscreen;
221diff --git a/src/Hy3Layout.hpp b/src/Hy3Layout.hpp
222index e73938afbbe581c982d2edf51cab1d1866f3ad08..4817188a3a8924f4907548bb263ff1e006f2c208 100644
223--- a/src/Hy3Layout.hpp
224+++ b/src/Hy3Layout.hpp
225@@ -79,7 +79,7 @@ public:
226 void recalculateWindow(PHLWINDOW) override;
227 void resizeActiveWindow(const Vector2D& delta, eRectCorner corner, PHLWINDOW pWindow = nullptr)
228 override;
229- void fullscreenRequestForWindow(PHLWINDOW, eFullscreenMode, bool enable_fullscreen) override;
230+ void fullscreenRequestForWindow(PHLWINDOW, eFullscreenMode current_mode, eFullscreenMode target_mode) override;
231 std::any layoutMessage(SLayoutMessageHeader header, std::string content) override;
232 SWindowRenderLayoutHints requestRenderHints(PHLWINDOW) override;
233 void switchWindows(PHLWINDOW, PHLWINDOW) override;
234diff --git a/src/Hy3Node.cpp b/src/Hy3Node.cpp
235index 32a93942dbfdeb4c6322471645080a571ba5ee6d..113d3db97a42ddb0415fbbc57955f4349f1443d4 100644
236--- a/src/Hy3Node.cpp
237+++ b/src/Hy3Node.cpp
238@@ -316,11 +316,11 @@ void Hy3Node::recalcSizePosRecursive(bool no_animation) {
239 );
240 // clang-format on
241
242- if (this->data.is_window() && this->data.as_window()->m_bIsFullscreen) {
243+ if (this->data.is_window() && this->data.as_window()->isFullscreen()) {
244 auto window = this->data.as_window();
245 auto* monitor = g_pCompositor->getMonitorFromID(this->workspace->m_iMonitorID);
246
247- if (this->workspace->m_efFullscreenMode == FULLSCREEN_FULL) {
248+ if (window->isEffectiveInternalFSMode(FSMODE_FULLSCREEN)) {
249 window->m_vRealPosition = monitor->vecPosition;
250 window->m_vRealSize = monitor->vecSize;
251 return;