mirror of
https://github.com/AvengeMedia/DankMaterialShell.git
synced 2026-01-28 15:32:50 -05:00
Add screencast indicator for niri (#1361)
* niri: Handle new Cast events * bar: Add screen sharing indicator Configurable like other icons; on by default. * lockscreen: Add screen sharing indicator
This commit is contained in:
committed by
bbedward
parent
e022c04519
commit
060cbefc79
@@ -27,6 +27,10 @@ Singleton {
|
||||
|
||||
property bool inOverview: false
|
||||
|
||||
property var casts: []
|
||||
property bool hasCasts: casts.length > 0
|
||||
property bool hasActiveCast: casts.some(c => c.is_active)
|
||||
|
||||
property int currentKeyboardLayoutIndex: 0
|
||||
property var keyboardLayoutNames: []
|
||||
|
||||
@@ -356,6 +360,15 @@ Singleton {
|
||||
case 'ScreenshotCaptured':
|
||||
handleScreenshotCaptured(event.ScreenshotCaptured);
|
||||
break;
|
||||
case 'CastsChanged':
|
||||
handleCastsChanged(event.CastsChanged);
|
||||
break;
|
||||
case 'CastStartedOrChanged':
|
||||
handleCastStartedOrChanged(event.CastStartedOrChanged);
|
||||
break;
|
||||
case 'CastStopped':
|
||||
handleCastStopped(event.CastStopped);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -649,6 +662,28 @@ Singleton {
|
||||
}
|
||||
}
|
||||
|
||||
function handleCastsChanged(data) {
|
||||
casts = data.casts || [];
|
||||
}
|
||||
|
||||
function handleCastStartedOrChanged(data) {
|
||||
if (!data.cast)
|
||||
return;
|
||||
const cast = data.cast;
|
||||
const existingIndex = casts.findIndex(c => c.stream_id === cast.stream_id);
|
||||
if (existingIndex >= 0) {
|
||||
const updatedCasts = [...casts];
|
||||
updatedCasts[existingIndex] = cast;
|
||||
casts = updatedCasts;
|
||||
} else {
|
||||
casts = [...casts, cast];
|
||||
}
|
||||
}
|
||||
|
||||
function handleCastStopped(data) {
|
||||
casts = casts.filter(c => c.stream_id !== data.stream_id);
|
||||
}
|
||||
|
||||
function updateCurrentOutputWorkspaces() {
|
||||
if (!currentOutput) {
|
||||
currentOutputWorkspaces = allWorkspaces;
|
||||
|
||||
Reference in New Issue
Block a user