fix: track focused window in NiriIpc singleton to fix window title always hidden
This commit is contained in:
parent
30b9e5c479
commit
d7ca7e405f
2 changed files with 41 additions and 47 deletions
|
|
@ -11,6 +11,28 @@ QtObject {
|
|||
signal windowFocusChanged(var windowId)
|
||||
signal windowOpenedOrChanged(var window)
|
||||
|
||||
property string focusedTitle: ""
|
||||
property string focusedAppId: ""
|
||||
|
||||
property var _focusedProc: Process {
|
||||
running: true
|
||||
command: ["niri", "msg", "--json", "focused-window"]
|
||||
stdout: StdioCollector {
|
||||
onStreamFinished: {
|
||||
try {
|
||||
const w = JSON.parse(text);
|
||||
if (w) {
|
||||
root.focusedTitle = w.title || "";
|
||||
root.focusedAppId = w.app_id || "";
|
||||
} else {
|
||||
root.focusedTitle = "";
|
||||
root.focusedAppId = "";
|
||||
}
|
||||
} catch (e) {}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
property var _eventStream: Process {
|
||||
running: true
|
||||
command: ["niri", "msg", "--json", "event-stream"]
|
||||
|
|
@ -23,10 +45,22 @@ QtObject {
|
|||
root.workspacesChanged(ev.WorkspacesChanged.workspaces);
|
||||
else if (ev.WorkspaceActivated !== undefined)
|
||||
root.workspaceActivated(ev.WorkspaceActivated.id, ev.WorkspaceActivated.focused);
|
||||
else if (ev.WindowFocusChanged !== undefined)
|
||||
else if (ev.WindowFocusChanged !== undefined) {
|
||||
root.windowFocusChanged(ev.WindowFocusChanged.id);
|
||||
else if (ev.WindowOpenedOrChanged !== undefined)
|
||||
if (ev.WindowFocusChanged.id !== null)
|
||||
root._focusedProc.running = true;
|
||||
else {
|
||||
root.focusedTitle = "";
|
||||
root.focusedAppId = "";
|
||||
}
|
||||
} else if (ev.WindowOpenedOrChanged !== undefined) {
|
||||
root.windowOpenedOrChanged(ev.WindowOpenedOrChanged.window);
|
||||
const w = ev.WindowOpenedOrChanged.window;
|
||||
if (w.is_focused) {
|
||||
root.focusedTitle = w.title || "";
|
||||
root.focusedAppId = w.app_id || "";
|
||||
}
|
||||
}
|
||||
} catch (e) {}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue