1
0
mirror of https://github.com/AvengeMedia/DankMaterialShell.git synced 2025-12-09 23:15:38 -05:00

Fix focused window

This commit is contained in:
bbedward
2025-07-21 20:52:58 -04:00
parent 4238bb4638
commit 42183b308e

View File

@@ -21,13 +21,8 @@ Singleton {
return; return;
} }
const focusedWindowId = NiriWorkspaceService.focusedWindowId; let focusedWindow = NiriWorkspaceService.windows.find(w => w.is_focused);
if (!focusedWindowId) {
clearFocusedWindow();
return;
}
const focusedWindow = NiriWorkspaceService.windows.find(w => w.id === focusedWindowId);
if (focusedWindow) { if (focusedWindow) {
root.focusedAppId = focusedWindow.app_id || ""; root.focusedAppId = focusedWindow.app_id || "";
root.focusedWindowTitle = focusedWindow.title || ""; root.focusedWindowTitle = focusedWindow.title || "";
@@ -38,10 +33,6 @@ Singleton {
} }
} }
function loadInitialFocusedWindow() {
if (root.niriAvailable)
focusedWindowQuery.running = true;
}
function clearFocusedWindow() { function clearFocusedWindow() {
root.focusedAppId = ""; root.focusedAppId = "";
@@ -89,11 +80,11 @@ Singleton {
NiriWorkspaceService.onNiriAvailableChanged.connect(() => { NiriWorkspaceService.onNiriAvailableChanged.connect(() => {
root.niriAvailable = NiriWorkspaceService.niriAvailable; root.niriAvailable = NiriWorkspaceService.niriAvailable;
if (root.niriAvailable) if (root.niriAvailable)
loadInitialFocusedWindow(); updateFromNiriData();
}); });
if (root.niriAvailable) if (root.niriAvailable)
loadInitialFocusedWindow(); updateFromNiriData();
} }
@@ -103,9 +94,6 @@ Singleton {
updateFromNiriData(); updateFromNiriData();
} }
function onFocusedWindowTitleChanged() {
root.focusedWindowTitle = NiriWorkspaceService.focusedWindowTitle;
}
function onWindowsChanged() { function onWindowsChanged() {
updateFromNiriData(); updateFromNiriData();
@@ -123,31 +111,6 @@ Singleton {
target: NiriWorkspaceService target: NiriWorkspaceService
} }
Process {
id: focusedWindowQuery
command: ["niri", "msg", "--json", "focused-window"]
running: false
stdout: StdioCollector {
onStreamFinished: {
if (text && text.trim()) {
try {
const windowData = JSON.parse(text.trim());
root.focusedAppId = windowData.app_id || "";
root.focusedWindowTitle = windowData.title || "";
root.focusedAppName = getDisplayName(windowData.app_id || "");
root.focusedWindowId = parseInt(windowData.id) || -1;
} catch (e) {
console.warn("FocusedWindowService: Failed to parse focused window data:", e);
clearFocusedWindow();
}
} else {
clearFocusedWindow();
}
}
}
}
} }