mirror of
https://repo.dec05eba.com/gpu-screen-recorder-ui
synced 2026-03-31 09:17:04 +09:00
kwin: add support for determining active window's monitor name
This commit is contained in:
@@ -1,10 +1,10 @@
|
||||
const DAEMON_DBUS_NAME = "com.dec05eba.gpu_screen_recorder";
|
||||
|
||||
function dbusSendUpdateActiveWindow(title, isFullscreen) {
|
||||
function dbusSendUpdateActiveWindow(title, isFullscreen, monitorName) {
|
||||
callDBus(
|
||||
DAEMON_DBUS_NAME, "/", DAEMON_DBUS_NAME,
|
||||
"updateActiveWindow",
|
||||
title, isFullscreen,
|
||||
title, isFullscreen, monitorName,
|
||||
);
|
||||
}
|
||||
|
||||
@@ -13,15 +13,18 @@ let prevEmitActiveWindowUpdate = null;
|
||||
|
||||
let prevCaption = null;
|
||||
let prevFullScreen = null;
|
||||
let prevMonitorName = null;
|
||||
|
||||
function emitActiveWindowUpdate(window) {
|
||||
if (workspace.activeWindow === window) {
|
||||
let caption = window.caption || "";
|
||||
let fullScreen = window.fullScreen || false;
|
||||
if (caption !== prevCaption || fullScreen !== prevFullScreen) {
|
||||
dbusSendUpdateActiveWindow(caption, fullScreen);
|
||||
let monitorName = window.output?.name || "";
|
||||
if (caption !== prevCaption || fullScreen !== prevFullScreen || monitorName !== prevMonitorName) {
|
||||
dbusSendUpdateActiveWindow(caption, fullScreen, monitorName);
|
||||
prevCaption = caption;
|
||||
prevFullScreen = fullScreen;
|
||||
prevMonitorName = monitorName;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -32,10 +35,12 @@ function subscribeToWindow(window) {
|
||||
if (prevWindow !== null) {
|
||||
prevWindow.captionChanged.disconnect(prevEmitActiveWindowUpdate);
|
||||
prevWindow.fullScreenChanged.disconnect(prevEmitActiveWindowUpdate);
|
||||
prevWindow.outputChanged.disconnect(prevEmitActiveWindowUpdate);
|
||||
}
|
||||
let emitActiveWindowUpdateBound = emitActiveWindowUpdate.bind(null, window);
|
||||
window.captionChanged.connect(emitActiveWindowUpdateBound);
|
||||
window.fullScreenChanged.connect(emitActiveWindowUpdateBound);
|
||||
window.outputChanged.connect(emitActiveWindowUpdateBound);
|
||||
prevWindow = window;
|
||||
prevEmitActiveWindowUpdate = emitActiveWindowUpdateBound;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user