[mutter] remote-desktop: Check for screencast only when required
- From: Georges Basile Stavracas Neto <gbsneto src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [mutter] remote-desktop: Check for screencast only when required
- Date: Mon, 29 Jun 2020 17:00:40 +0000 (UTC)
commit b8524504f475c98591c6f04b7dfcab47d023ac8f
Author: Olivier Fourdan <ofourdan redhat com>
Date: Mon Jun 29 15:01:55 2020 +0200
remote-desktop: Check for screencast only when required
The portal API requires a screencast session only for absolution motion
with remote desktop, other methods including relative motion do not
require a screencast session.
There is no reason to be more strict than the API actually is, check for
a screencast session only when required, like for absolute motion events
and touch events.
Tested with https://gitlab.gnome.org/snippets/1122
Closes: https://gitlab.gnome.org/GNOME/mutter/-/issues/1307
src/backends/meta-remote-desktop-session.c | 34 +++++++++++++++++++++++-------
1 file changed, 26 insertions(+), 8 deletions(-)
---
diff --git a/src/backends/meta-remote-desktop-session.c b/src/backends/meta-remote-desktop-session.c
index a7f128dfa6..28191a1e08 100644
--- a/src/backends/meta-remote-desktop-session.c
+++ b/src/backends/meta-remote-desktop-session.c
@@ -273,14 +273,6 @@ meta_remote_desktop_session_check_can_notify (MetaRemoteDesktopSession *session,
return FALSE;
}
- if (!session->screen_cast_session)
- {
- g_dbus_method_invocation_return_error (invocation, G_DBUS_ERROR,
- G_DBUS_ERROR_FAILED,
- "No screen cast active");
- return FALSE;
- }
-
return TRUE;
}
@@ -591,6 +583,15 @@ handle_notify_pointer_motion_absolute (MetaDBusRemoteDesktopSession *skeleton,
if (!meta_remote_desktop_session_check_can_notify (session, invocation))
return TRUE;
+
+ if (!session->screen_cast_session)
+ {
+ g_dbus_method_invocation_return_error (invocation, G_DBUS_ERROR,
+ G_DBUS_ERROR_FAILED,
+ "No screen cast active");
+ return TRUE;
+ }
+
stream = meta_screen_cast_session_get_stream (session->screen_cast_session,
stream_path);
if (!stream)
@@ -628,6 +629,14 @@ handle_notify_touch_down (MetaDBusRemoteDesktopSession *skeleton,
if (!meta_remote_desktop_session_check_can_notify (session, invocation))
return TRUE;
+ if (!session->screen_cast_session)
+ {
+ g_dbus_method_invocation_return_error (invocation, G_DBUS_ERROR,
+ G_DBUS_ERROR_FAILED,
+ "No screen cast active");
+ return TRUE;
+ }
+
stream = meta_screen_cast_session_get_stream (session->screen_cast_session,
stream_path);
if (!stream)
@@ -666,6 +675,15 @@ handle_notify_touch_motion (MetaDBusRemoteDesktopSession *skeleton,
if (!meta_remote_desktop_session_check_can_notify (session, invocation))
return TRUE;
+
+ if (!session->screen_cast_session)
+ {
+ g_dbus_method_invocation_return_error (invocation, G_DBUS_ERROR,
+ G_DBUS_ERROR_FAILED,
+ "No screen cast active");
+ return TRUE;
+ }
+
stream = meta_screen_cast_session_get_stream (session->screen_cast_session,
stream_path);
if (!stream)
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]