4c79361db9c065886c163d1cf873889e1e641e44

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

Message

fixup: update monitorids to pointers after hyprland#8266

Diff

This diff is truncated to protect this page.

  1diff --git a/flake.lock b/flake.lock
  2index 956b1e0d1a2a81f9a365ab4a5b133b10f7a47f64..17a33e848044dd6247c66945e5f794178cfaa99d 100644
  3--- a/flake.lock
  4+++ b/flake.lock
  5@@ -20,11 +20,11 @@
  6         ]
  7       },
  8       "locked": {
  9-        "lastModified": 1727261104,
 10-        "narHash": "sha256-rxDI7WrxIRV9it9mDCHcLa7xQykf1JloXnoXr5xQ8zI=",
 11+        "lastModified": 1729527199,
 12+        "narHash": "sha256-D5/YksfRga8Akd04ZtIkuYSIOjXVrAzQIQBSeplokzU=",
 13         "owner": "hyprwm",
 14         "repo": "aquamarine",
 15-        "rev": "b82fdaff917582a9d568969e15e61b398c71e990",
 16+        "rev": "8d732fa8aff8b12ef2b1e2f00fc8153e41312b72",
 17         "type": "github"
 18       },
 19       "original": {
 20@@ -33,6 +33,44 @@
 21         "type": "github"
 22       }
 23     },
 24+    "flake-compat": {
 25+      "flake": false,
 26+      "locked": {
 27+        "lastModified": 1696426674,
 28+        "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
 29+        "owner": "edolstra",
 30+        "repo": "flake-compat",
 31+        "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33",
 32+        "type": "github"
 33+      },
 34+      "original": {
 35+        "owner": "edolstra",
 36+        "repo": "flake-compat",
 37+        "type": "github"
 38+      }
 39+    },
 40+    "gitignore": {
 41+      "inputs": {
 42+        "nixpkgs": [
 43+          "hyprland",
 44+          "pre-commit-hooks",
 45+          "nixpkgs"
 46+        ]
 47+      },
 48+      "locked": {
 49+        "lastModified": 1709087332,
 50+        "narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=",
 51+        "owner": "hercules-ci",
 52+        "repo": "gitignore.nix",
 53+        "rev": "637db329424fd7e46cf4185293b9cc8c88c95394",
 54+        "type": "github"
 55+      },
 56+      "original": {
 57+        "owner": "hercules-ci",
 58+        "repo": "gitignore.nix",
 59+        "type": "github"
 60+      }
 61+    },
 62     "hyprcursor": {
 63       "inputs": {
 64         "hyprlang": [
 65@@ -49,11 +87,11 @@
 66         ]
 67       },
 68       "locked": {
 69-        "lastModified": 1727532803,
 70-        "narHash": "sha256-ZaZ7h7PY8mQc4vtGmVqWLAq9CAO02gHMyNR5yY8zDmM=",
 71+        "lastModified": 1728669738,
 72+        "narHash": "sha256-EDNAU9AYcx8OupUzbTbWE1d3HYdeG0wO6Msg3iL1muk=",
 73         "owner": "hyprwm",
 74         "repo": "hyprcursor",
 75-        "rev": "b98726e431d4d3ed58bd58bee1047cdb81cec69f",
 76+        "rev": "0264e698149fcb857a66a53018157b41f8d97bb0",
 77         "type": "github"
 78       },
 79       "original": {
 80@@ -71,19 +109,20 @@
 81         "hyprutils": "hyprutils",
 82         "hyprwayland-scanner": "hyprwayland-scanner",
 83         "nixpkgs": "nixpkgs",
 84+        "pre-commit-hooks": "pre-commit-hooks",
 85         "systems": "systems",
 86         "xdph": "xdph"
 87       },
 88       "locked": {
 89-        "lastModified": 1728142617,
 90-        "narHash": "sha256-ramJ6G9bKYuZshtYRc0olhtN89bP9i4BDhhTU0E0cLc=",
 91-        "rev": "0ec6072a290051a03ab66cfb9bc616b2f5540e64",
 92-        "revCount": 5298,
 93+        "lastModified": 1730054738,
 94+        "narHash": "sha256-xU5DxVMZXFLcypIo6PvrLRI0+74kOrFTdEykDDEaEkQ=",
 95+        "ref": "refs/heads/main",
 96+        "rev": "5d4b54b01286c10d4b6bf402a772b5938b054ce6",
 97+        "revCount": 5383,
 98         "type": "git",
 99         "url": "https://github.com/hyprwm/Hyprland"
100       },
101       "original": {
102-        "rev": "0ec6072a290051a03ab66cfb9bc616b2f5540e64",
103         "type": "git",
104         "url": "https://github.com/hyprwm/Hyprland"
105diff --git a/flake.nix b/flake.nix
106index 3f76b53b4cc8af1351b83cdbaa02fac580d99519..6928b1d6843ec8906423b8f124e9baa3a48c3830 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?rev=0ec6072a290051a03ab66cfb9bc616b2f5540e64";
113+    hyprland.url = "git+https://github.com/hyprwm/Hyprland";
114   };
115 
116   outputs = { self, hyprland, ... }: let
117diff --git a/src/Hy3Layout.cpp b/src/Hy3Layout.cpp
118index 43aeffbe6a29190d119e7901fbab568353b77741..2e3c2e81fd190f03ca1f2dfb3deb308f4fdbcce1 100644
119--- a/src/Hy3Layout.cpp
120+++ b/src/Hy3Layout.cpp
121@@ -98,7 +98,7 @@ void Hy3Layout::onWindowCreatedTiling(PHLWINDOW window, eDirection) {
122 	    "onWindowCreatedTiling called with window {:x} (floating: {}, monitor: {}, workspace: {})",
123 	    (uintptr_t) window.get(),
124 	    window->m_bIsFloating,
125-	    window->m_iMonitorID,
126+			window->monitorID(),
127 	    window->m_pWorkspace->m_iID
128 	);
129 
130@@ -149,7 +149,7 @@ void Hy3Layout::insertNode(Hy3Node& node) {
131 	node.reparenting = true;
132 	node.size_ratio = 1.0;
133 
134-	PHLMONITOR monitor = g_pCompositor->getMonitorFromID(node.workspace->m_iMonitorID);
135+	auto monitor = node.workspace->m_pMonitor.lock();
136 
137 	Hy3Node* opening_into;
138 	Hy3Node* opening_after = nullptr;
139@@ -432,7 +432,7 @@ void Hy3Layout::resizeActiveWindow(const Vector2D& delta, eRectCorner corner, PH
140 	if (node != nullptr) {
141 		node = &node->getExpandActor();
142 
143-		auto monitor = g_pCompositor->getMonitorFromID(window->m_iMonitorID);
144+		auto monitor = window->m_pMonitor.lock();
145 
146 		const bool display_left =
147 		    STICKS(node->position.x, monitor->vecPosition.x + monitor->vecReservedTopLeft.x);
148@@ -517,7 +517,7 @@ void Hy3Layout::fullscreenRequestForWindow(
149 ) {
150 	if (current_mode == target_mode || window->m_pWorkspace->m_bIsSpecialWorkspace) return;
151 
152-	const auto monitor = g_pCompositor->getMonitorFromID(window->m_iMonitorID);
153+	const auto monitor = window->m_pMonitor.lock();
154 
155 	window->updateDynamicRules();
156 	window->updateWindowDecos();
157@@ -1035,7 +1035,7 @@ void changeNodeWorkspaceRecursive(Hy3Node& node, const PHLWORKSPACE& workspace)
158 		auto window = node.data.as_window();
159 		g_pHyprRenderer->damageWindow(window);
160 		window->moveToWorkspace(workspace);
161-		window->m_iMonitorID = workspace->m_iMonitorID;
162+		window->m_pMonitor = workspace->m_pMonitor;
163 		window->updateToplevel();
164 		window->updateDynamicRules();
165 		window->uncacheWindowDecos();
166@@ -1071,7 +1071,7 @@ void Hy3Layout::moveNodeToWorkspace(const PHLWORKSPACE& origin, std::string wsna
167 	if (workspace == nullptr) {
168 		hy3_log(LOG, "creating target workspace {} for node move", target.id);
169 
170-		workspace = g_pCompositor->createNewWorkspace(target.id, origin_ws->m_iMonitorID, target.name);
171+		workspace = g_pCompositor->createNewWorkspace(target.id, origin_ws->monitorID(), target.name);
172 	}
173 
174 	// floating or fullscreen
175@@ -1103,12 +1103,12 @@ void Hy3Layout::moveNodeToWorkspace(const PHLWORKSPACE& origin, std::string wsna
176 	}
177 
178 	if (follow) {
179-		PHLMONITOR monitor = g_pCompositor->getMonitorFromID(workspace->m_iMonitorID);
180+		auto monitor = workspace->m_pMonitor.lock();
181 
182 		if (workspace->m_bIsSpecialWorkspace) {
183 			monitor->setSpecialWorkspace(workspace);
184 		} else if (origin_ws->m_bIsSpecialWorkspace) {
185-			g_pCompositor->getMonitorFromID(origin_ws->m_iMonitorID)->setSpecialWorkspace(nullptr);
186+			origin_ws->m_pMonitor->setSpecialWorkspace(nullptr);
187 		}
188 
189 		monitor->changeWorkspace(workspace);
190@@ -1535,7 +1535,7 @@ void Hy3Layout::renderHook(void*, SCallbackInfo&, std::any data) {
191 
192 		for (auto& entry: g_Hy3Layout->tab_groups) {
193 			if (!entry.hidden
194-			    && entry.target_window->m_iMonitorID == g_pHyprOpenGL->m_RenderData.pMonitor->ID
195+			    && entry.target_window->m_pMonitor == g_pHyprOpenGL->m_RenderData.pMonitor
196 					&& (!entry.target_window->m_pWorkspace || entry.target_window->m_pWorkspace->m_bVisible)
197 			    && std::find(rendered_groups.begin(), rendered_groups.end(), &entry)
198 			           == rendered_groups.end())
199@@ -1590,7 +1590,7 @@ void Hy3Layout::applyNodeDataToWindow(Hy3Node* node, bool no_animation) {
200 	auto window = node->data.as_window();
201 	auto root_node = this->getWorkspaceRootGroup(window->m_pWorkspace);
202 
203-	auto monitor = g_pCompositor->getMonitorFromID(node->workspace->m_iMonitorID);
204+	auto monitor = node->workspace->m_pMonitor.lock();
205 
206 	if (monitor == nullptr) {
207 		hy3_log(
208diff --git a/src/Hy3Node.cpp b/src/Hy3Node.cpp
209index b9aa7bd5d3b3711307aef80f33e2a1a05bb7a965..1766e93a439d376e8dec67507ec84d290169bd0d 100644
210--- a/src/Hy3Node.cpp
211+++ b/src/Hy3Node.cpp
212@@ -322,7 +322,7 @@ void Hy3Node::recalcSizePosRecursive(bool no_animation) {
213 
214 	if (this->data.is_window() && this->data.as_window()->isFullscreen()) {
215 		auto window = this->data.as_window();
216-		PHLMONITOR monitor = g_pCompositor->getMonitorFromID(this->workspace->m_iMonitorID);
217+		auto monitor = this->workspace->m_pMonitor.lock();
218 
219 		if (window->isEffectiveInternalFSMode(FSMODE_FULLSCREEN)) {
220 			window->m_vRealPosition = monitor->vecPosition;