mirror of
https://github.com/brl/mutter.git
synced 2024-11-21 15:40:41 -05:00
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
(cherry picked from commit b8524504f4
)
This commit is contained in:
parent
3a70ba7ae2
commit
86d9cd1a66
@ -273,14 +273,6 @@ meta_remote_desktop_session_check_can_notify (MetaRemoteDesktopSession *session,
|
|||||||
return FALSE;
|
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;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -591,6 +583,15 @@ handle_notify_pointer_motion_absolute (MetaDBusRemoteDesktopSession *skeleton,
|
|||||||
if (!meta_remote_desktop_session_check_can_notify (session, invocation))
|
if (!meta_remote_desktop_session_check_can_notify (session, invocation))
|
||||||
return TRUE;
|
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 = meta_screen_cast_session_get_stream (session->screen_cast_session,
|
||||||
stream_path);
|
stream_path);
|
||||||
if (!stream)
|
if (!stream)
|
||||||
@ -628,6 +629,14 @@ handle_notify_touch_down (MetaDBusRemoteDesktopSession *skeleton,
|
|||||||
if (!meta_remote_desktop_session_check_can_notify (session, invocation))
|
if (!meta_remote_desktop_session_check_can_notify (session, invocation))
|
||||||
return TRUE;
|
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 = meta_screen_cast_session_get_stream (session->screen_cast_session,
|
||||||
stream_path);
|
stream_path);
|
||||||
if (!stream)
|
if (!stream)
|
||||||
@ -666,6 +675,15 @@ handle_notify_touch_motion (MetaDBusRemoteDesktopSession *skeleton,
|
|||||||
if (!meta_remote_desktop_session_check_can_notify (session, invocation))
|
if (!meta_remote_desktop_session_check_can_notify (session, invocation))
|
||||||
return TRUE;
|
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 = meta_screen_cast_session_get_stream (session->screen_cast_session,
|
||||||
stream_path);
|
stream_path);
|
||||||
if (!stream)
|
if (!stream)
|
||||||
|
Loading…
Reference in New Issue
Block a user