mirror of
https://github.com/brl/mutter.git
synced 2024-12-25 20:32:16 +00:00
screen-cast-stream: Don't broadcast PipeWireStreamAdded signal
The helper function from gdbus-codegen broadcasts the signal emission, but we really only care about sending it to the specific peer that created the session. Thus, only emit the signal to the particular peer that owns the session. https://bugzilla.gnome.org/show_bug.cgi?id=784199
This commit is contained in:
parent
be259117f5
commit
2c5404532b
@ -173,6 +173,12 @@ meta_screen_cast_session_get_object_path (MetaScreenCastSession *session)
|
||||
return session->object_path;
|
||||
}
|
||||
|
||||
char *
|
||||
meta_screen_cast_session_get_peer_name (MetaScreenCastSession *session)
|
||||
{
|
||||
return session->peer_name;
|
||||
}
|
||||
|
||||
static gboolean
|
||||
check_permission (MetaScreenCastSession *session,
|
||||
GDBusMethodInvocation *invocation)
|
||||
|
@ -47,6 +47,8 @@ G_DECLARE_FINAL_TYPE (MetaScreenCastSessionHandle,
|
||||
|
||||
char * meta_screen_cast_session_get_object_path (MetaScreenCastSession *session);
|
||||
|
||||
char * meta_screen_cast_session_get_peer_name (MetaScreenCastSession *session);
|
||||
|
||||
MetaScreenCastSession * meta_screen_cast_session_new (MetaScreenCast *screen_cast,
|
||||
MetaScreenCastSessionType session_type,
|
||||
const char *peer_name,
|
||||
|
@ -26,6 +26,7 @@
|
||||
|
||||
#include "backends/meta-screen-cast-session.h"
|
||||
|
||||
#define META_SCREEN_CAST_STREAM_DBUS_IFACE "org.gnome.Mutter.ScreenCast.Stream"
|
||||
#define META_SCREEN_CAST_STREAM_DBUS_PATH "/org/gnome/Mutter/ScreenCast/Stream"
|
||||
|
||||
enum
|
||||
@ -100,9 +101,19 @@ on_stream_src_ready (MetaScreenCastStreamSrc *src,
|
||||
uint32_t node_id,
|
||||
MetaScreenCastStream *stream)
|
||||
{
|
||||
MetaDBusScreenCastStream *skeleton = META_DBUS_SCREEN_CAST_STREAM (stream);
|
||||
MetaScreenCastStreamPrivate *priv =
|
||||
meta_screen_cast_stream_get_instance_private (stream);
|
||||
GDBusConnection *connection = priv->connection;
|
||||
char *peer_name;
|
||||
|
||||
meta_dbus_screen_cast_stream_emit_pipewire_stream_added (skeleton, node_id);
|
||||
peer_name = meta_screen_cast_session_get_peer_name (priv->session);
|
||||
g_dbus_connection_emit_signal (connection,
|
||||
peer_name,
|
||||
priv->object_path,
|
||||
META_SCREEN_CAST_STREAM_DBUS_IFACE,
|
||||
"PipeWireStreamAdded",
|
||||
g_variant_new ("(u)", node_id),
|
||||
NULL);
|
||||
}
|
||||
|
||||
MetaScreenCastSession *
|
||||
|
Loading…
Reference in New Issue
Block a user