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:
@@ -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();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user