mirror of
https://github.com/brl/mutter.git
synced 2024-11-28 02:50:41 -05:00
screen-cast-session: Add window-id support
Use the "window-id" property to select the window to cast using
RecordWindow.
https://gitlab.gnome.org/GNOME/mutter/merge_requests/306
(cherry picked from commit c786b6c13c
)
This commit is contained in:
parent
b0267c1a4e
commit
e19a294e44
@ -340,6 +340,7 @@ handle_record_window (MetaDBusScreenCastSession *skeleton,
|
|||||||
MetaWindow *window;
|
MetaWindow *window;
|
||||||
GError *error = NULL;
|
GError *error = NULL;
|
||||||
MetaDisplay *display;
|
MetaDisplay *display;
|
||||||
|
GVariant *window_id_variant = NULL;
|
||||||
MetaScreenCastWindowStream *window_stream;
|
MetaScreenCastWindowStream *window_stream;
|
||||||
MetaScreenCastStream *stream;
|
MetaScreenCastStream *stream;
|
||||||
char *stream_path;
|
char *stream_path;
|
||||||
@ -352,8 +353,24 @@ handle_record_window (MetaDBusScreenCastSession *skeleton,
|
|||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (properties_variant)
|
||||||
|
window_id_variant = g_variant_lookup_value (properties_variant,
|
||||||
|
"window-id",
|
||||||
|
G_VARIANT_TYPE ("t"));
|
||||||
|
|
||||||
display = meta_get_display ();
|
display = meta_get_display ();
|
||||||
|
if (window_id_variant)
|
||||||
|
{
|
||||||
|
uint64_t window_id;
|
||||||
|
|
||||||
|
g_variant_get (window_id_variant, "t", &window_id);
|
||||||
|
window = meta_display_get_window_from_id (display, window_id);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
window = meta_display_get_focus_window (display);
|
window = meta_display_get_focus_window (display);
|
||||||
|
}
|
||||||
|
|
||||||
if (!window)
|
if (!window)
|
||||||
{
|
{
|
||||||
g_dbus_method_invocation_return_error (invocation, G_DBUS_ERROR,
|
g_dbus_method_invocation_return_error (invocation, G_DBUS_ERROR,
|
||||||
|
@ -86,7 +86,10 @@
|
|||||||
|
|
||||||
Record a single window.
|
Record a single window.
|
||||||
|
|
||||||
Available @properties include: (none)
|
Available @properties include:
|
||||||
|
|
||||||
|
* "window-id" (t): Id of the window to record.
|
||||||
|
|
||||||
-->
|
-->
|
||||||
<method name="RecordWindow">
|
<method name="RecordWindow">
|
||||||
<arg name="properties" type="a{sv}" direction="in" />
|
<arg name="properties" type="a{sv}" direction="in" />
|
||||||
|
Loading…
Reference in New Issue
Block a user