commit xdg-desktop-portal-wlr for openSUSE:Factory
Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package xdg-desktop-portal-wlr for openSUSE:Factory checked in at 2024-01-30 18:25:35 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/xdg-desktop-portal-wlr (Old) and /work/SRC/openSUSE:Factory/.xdg-desktop-portal-wlr.new.1815 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Package is "xdg-desktop-portal-wlr" Tue Jan 30 18:25:35 2024 rev:8 rq:1142648 version:0.7.1 Changes: -------- --- /work/SRC/openSUSE:Factory/xdg-desktop-portal-wlr/xdg-desktop-portal-wlr.changes 2023-04-15 22:34:21.429956824 +0200 +++ /work/SRC/openSUSE:Factory/.xdg-desktop-portal-wlr.new.1815/xdg-desktop-portal-wlr.changes 2024-01-30 18:25:51.622905968 +0100 @@ -1,0 +2,7 @@ +Mon Jan 29 21:03:26 UTC 2024 - Arnav Singh <opensuse@arnavion.dev> + +- Update to v0.7.1: + * Support for 24-bit RGB formats. + * Various bugfixes. + +------------------------------------------------------------------- Old: ---- xdg-desktop-portal-wlr-0.7.0.tar.gz xdg-desktop-portal-wlr-0.7.0.tar.gz.sig New: ---- xdg-desktop-portal-wlr-0.7.1.tar.gz xdg-desktop-portal-wlr-0.7.1.tar.gz.sig ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ xdg-desktop-portal-wlr.spec ++++++ --- /var/tmp/diff_new_pack.qDeFGP/_old 2024-01-30 18:25:52.342931945 +0100 +++ /var/tmp/diff_new_pack.qDeFGP/_new 2024-01-30 18:25:52.346932088 +0100 @@ -1,7 +1,7 @@ # # spec file for package xdg-desktop-portal-wlr # -# Copyright (c) 2023 SUSE LLC +# Copyright (c) 2024 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -17,7 +17,7 @@ Name: xdg-desktop-portal-wlr -Version: 0.7.0 +Version: 0.7.1 Release: 0 Summary: An xdg-desktop-portal backend for wlroots License: MIT ++++++ xdg-desktop-portal-wlr-0.7.0.tar.gz -> xdg-desktop-portal-wlr-0.7.1.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xdg-desktop-portal-wlr-0.7.0/contrib/wlroots-portals.conf new/xdg-desktop-portal-wlr-0.7.1/contrib/wlroots-portals.conf --- old/xdg-desktop-portal-wlr-0.7.0/contrib/wlroots-portals.conf 1970-01-01 01:00:00.000000000 +0100 +++ new/xdg-desktop-portal-wlr-0.7.1/contrib/wlroots-portals.conf 2024-01-29 21:44:32.000000000 +0100 @@ -0,0 +1,7 @@ +[preferred] +# Use xdg-desktop-portal-gtk for every portal interface... +default=gtk +# ... except for the Screencast, Screenshot and Settings (dark/light mode) interface +org.freedesktop.impl.portal.Screencast=wlr +org.freedesktop.impl.portal.Screenshot=wlr +org.freedesktop.impl.portal.Settings=darkman diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xdg-desktop-portal-wlr-0.7.0/include/screencast_common.h new/xdg-desktop-portal-wlr-0.7.1/include/screencast_common.h --- old/xdg-desktop-portal-wlr-0.7.0/include/screencast_common.h 2023-04-15 10:32:26.000000000 +0200 +++ new/xdg-desktop-portal-wlr-0.7.1/include/screencast_common.h 2024-01-29 21:44:32.000000000 +0100 @@ -127,6 +127,7 @@ struct wl_shm *shm; struct zwp_linux_dmabuf_v1 *linux_dmabuf; struct zwp_linux_dmabuf_feedback_v1 *linux_dmabuf_feedback; + struct zxdg_output_manager_v1 *xdg_output_manager; struct xdpw_dmabuf_feedback_data feedback_data; struct wl_array format_modifier_pairs; @@ -194,9 +195,12 @@ struct wl_list link; uint32_t id; struct wl_output *output; + struct zxdg_output_v1 *xdg_output; char *make; char *model; char *name; + int x; + int y; int width; int height; float framerate; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xdg-desktop-portal-wlr-0.7.0/include/wlr_screencast.h new/xdg-desktop-portal-wlr-0.7.1/include/wlr_screencast.h --- old/xdg-desktop-portal-wlr-0.7.0/include/wlr_screencast.h 2023-04-15 10:32:26.000000000 +0200 +++ new/xdg-desktop-portal-wlr-0.7.1/include/wlr_screencast.h 2024-01-29 21:44:32.000000000 +0100 @@ -13,6 +13,9 @@ #define LINUX_DMABUF_VERSION 4 #define LINUX_DMABUF_VERSION_MIN 3 +#define XDG_OUTPUT_VERSION 3 +#define XDG_OUTPUT_VERSION_MIN 1 + struct xdpw_state; int xdpw_wlr_screencopy_init(struct xdpw_state *state); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xdg-desktop-portal-wlr-0.7.0/meson.build new/xdg-desktop-portal-wlr-0.7.1/meson.build --- old/xdg-desktop-portal-wlr-0.7.0/meson.build 2023-04-15 10:32:26.000000000 +0200 +++ new/xdg-desktop-portal-wlr-0.7.1/meson.build 2024-01-29 21:44:32.000000000 +0100 @@ -1,7 +1,7 @@ project( 'xdg-desktop-portal-wlr', 'c', - version: '0.7.0', + version: '0.7.1', license: 'MIT', meson_version: '>=0.58.0', default_options: ['c_std=c11', 'warning_level=2', 'werror=true'], @@ -18,7 +18,7 @@ prefix = get_option('prefix') sysconfdir = get_option('sysconfdir') -add_project_arguments('-DSYSCONFDIR="@0@"'.format(join_paths(prefix, sysconfdir)), language : 'c') +add_project_arguments('-DSYSCONFDIR="@0@"'.format(prefix / sysconfdir), language : 'c') inc = include_directories('include') @@ -31,8 +31,7 @@ drm = dependency('libdrm') epoll = dependency('', required: false) -if (not cc.has_function('timerfd_create', prefix: '#include <sys/timerfd.h>') or - not cc.has_function('signalfd', prefix: '#include <sys/signalfd.h>')) +if not cc.has_function('timerfd_create', prefix: '#include <sys/timerfd.h>') epoll = dependency('epoll-shim') endif @@ -63,7 +62,7 @@ subdir('protocols') -xdpw_files = files([ +xdpw_files = files( 'src/core/main.c', 'src/core/logger.c', 'src/core/config.c', @@ -77,7 +76,7 @@ 'src/screencast/wlr_screencast.c', 'src/screencast/pipewire_screencast.c', 'src/screencast/fps_limit.c', -]) +) executable( 'xdg-desktop-portal-wlr', @@ -98,12 +97,10 @@ ) conf_data = configuration_data() -conf_data.set('libexecdir', - join_paths(get_option('prefix'), get_option('libexecdir'))) +conf_data.set('libexecdir', get_option('prefix') / get_option('libexecdir')) conf_data.set('systemd_service', '') systemd = dependency('systemd', required: get_option('systemd')) - if systemd.found() systemd_service_file = 'xdg-desktop-portal-wlr.service' user_unit_dir = systemd.get_variable(pkgconfig: 'systemduserunitdir', @@ -122,12 +119,12 @@ configuration: conf_data, input: 'org.freedesktop.impl.portal.desktop.wlr.service.in', output: '@BASENAME@', - install_dir: join_paths(get_option('datadir'), 'dbus-1', 'services'), + install_dir: get_option('datadir') / 'dbus-1' / 'services', ) install_data( 'wlr.portal', - install_dir: join_paths(get_option('datadir'), 'xdg-desktop-portal', 'portals'), + install_dir: get_option('datadir') / 'xdg-desktop-portal' / 'portals', ) scdoc = dependency('scdoc', required: get_option('man-pages'), version: '>= 1.9.7', native: true) @@ -146,7 +143,7 @@ 'sh', '-c', '@0@ < @INPUT@ > @1@'.format(scdoc.get_variable(pkgconfig: 'scdoc'), output) ], install: true, - install_dir: join_paths(get_option('mandir'), 'man' + section), + install_dir: get_option('mandir') / ('man' + section), ) endforeach endif diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xdg-desktop-portal-wlr-0.7.0/protocols/meson.build new/xdg-desktop-portal-wlr-0.7.1/protocols/meson.build --- old/xdg-desktop-portal-wlr-0.7.0/protocols/meson.build 2023-04-15 10:32:26.000000000 +0200 +++ new/xdg-desktop-portal-wlr-0.7.1/protocols/meson.build 2024-01-29 21:44:32.000000000 +0100 @@ -1,14 +1,10 @@ wl_protocol_dir = wayland_protos.get_variable('pkgdatadir') -wayland_scanner_dep = dependency('wayland-scanner', required: false, native: true) -if wayland_scanner_dep.found() - wayland_scanner = find_program( - wayland_scanner_dep.get_variable(pkgconfig: 'wayland_scanner'), - native: true, - ) -else - wayland_scanner = find_program('wayland-scanner', native: true) -endif +wayland_scanner_dep = dependency('wayland-scanner', native: true) +wayland_scanner = find_program( + wayland_scanner_dep.get_variable(pkgconfig: 'wayland_scanner'), + native: true, +) client_protocols = [ wl_protocol_dir / 'unstable/linux-dmabuf/linux-dmabuf-unstable-v1.xml', diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xdg-desktop-portal-wlr-0.7.0/src/core/main.c new/xdg-desktop-portal-wlr-0.7.1/src/core/main.c --- old/xdg-desktop-portal-wlr-0.7.0/src/core/main.c 2023-04-15 10:32:26.000000000 +0200 +++ new/xdg-desktop-portal-wlr-0.7.1/src/core/main.c 2024-01-29 21:44:32.000000000 +0100 @@ -175,10 +175,7 @@ wl_list_init(&state.timers); struct pollfd pollfds[] = { - [EVENT_LOOP_DBUS] = { - .fd = sd_bus_get_fd(state.bus), - .events = POLLIN, - }, + [EVENT_LOOP_DBUS] = {0}, // Filled in later [EVENT_LOOP_WAYLAND] = { .fd = wl_display_get_fd(state.wl_display), .events = POLLIN, @@ -196,7 +193,30 @@ state.timer_poll_fd = pollfds[EVENT_LOOP_TIMER].fd; while (1) { - ret = poll(pollfds, sizeof(pollfds) / sizeof(pollfds[0]), -1); + // sd-bus requires that we update FD/events/timeout every time we poll + pollfds[EVENT_LOOP_DBUS].fd = sd_bus_get_fd(state.bus); + if (pollfds[EVENT_LOOP_DBUS].fd < 0) { + logprint(ERROR, "sd_bus_get_fd failed: %s", + strerror(-pollfds[EVENT_LOOP_DBUS].fd)); + goto error; + } + pollfds[EVENT_LOOP_DBUS].events = sd_bus_get_events(state.bus); + if (pollfds[EVENT_LOOP_DBUS].events < 0) { + logprint(ERROR, "sd_bus_get_events failed: %s", + strerror(-pollfds[EVENT_LOOP_DBUS].events)); + goto error; + } + uint64_t usec_timeout = 0; + ret = sd_bus_get_timeout(state.bus, &usec_timeout); + if (ret < 0) { + logprint(ERROR, "sd_bus_get_timeout failed: %s", strerror(-ret)); + goto error; + } + // Convert timestamp from usec to msec. Value of -1 indicates no + // timeout, i.e. poll forever. + int msec_timeout = usec_timeout == UINT64_MAX ? -1 : (int)((usec_timeout + 999) / 1000); + + ret = poll(pollfds, sizeof(pollfds) / sizeof(pollfds[0]), msec_timeout); if (ret < 0) { logprint(ERROR, "poll failed: %s", strerror(errno)); goto error; @@ -215,7 +235,9 @@ break; } - if (pollfds[EVENT_LOOP_DBUS].revents & POLLIN) { + // sd-bus sets events=0 if it already has messages to process + if (pollfds[EVENT_LOOP_DBUS].revents || + pollfds[EVENT_LOOP_DBUS].events == 0) { logprint(TRACE, "event-loop: got dbus event"); do { ret = sd_bus_process(state.bus, NULL); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xdg-desktop-portal-wlr-0.7.0/src/screencast/pipewire_screencast.c new/xdg-desktop-portal-wlr-0.7.1/src/screencast/pipewire_screencast.c --- old/xdg-desktop-portal-wlr-0.7.0/src/screencast/pipewire_screencast.c 2023-04-15 10:32:26.000000000 +0200 +++ new/xdg-desktop-portal-wlr-0.7.1/src/screencast/pipewire_screencast.c 2024-01-29 21:44:32.000000000 +0100 @@ -594,6 +594,21 @@ cast->stream = NULL; } +static void on_core_error(void *data, uint32_t id, int seq, int res, const char* message) { + // If our pipewire connection drops then we won't be able to actually + // do a screencast. Exit the process so someone restarts us and the + // new xdpw can reconnect to pipewire. + logprint(ERROR, "pipewire: fatal error event from core"); + exit(1); +} + +static const struct pw_core_events core_events = { + PW_VERSION_CORE_EVENTS, + .error = on_core_error, +}; + +static struct spa_hook core_listener; + int xdpw_pwr_context_create(struct xdpw_state *state) { struct xdpw_screencast_context *ctx = &state->screencast; @@ -613,6 +628,11 @@ logprint(ERROR, "pipewire: couldn't connect to context"); return -1; } + + // Setup a core listener to detect errors / disconnects + // (i.e. in case the pipewire daemon is restarted). + spa_zero(core_listener); + pw_core_add_listener(ctx->core, &core_listener, &core_events, state); } return 0; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xdg-desktop-portal-wlr-0.7.0/src/screencast/screencast.c new/xdg-desktop-portal-wlr-0.7.1/src/screencast/screencast.c --- old/xdg-desktop-portal-wlr-0.7.0/src/screencast/screencast.c 2023-04-15 10:32:26.000000000 +0200 +++ new/xdg-desktop-portal-wlr-0.7.1/src/screencast/screencast.c 2024-01-29 21:44:32.000000000 +0100 @@ -585,12 +585,67 @@ if (ret < 0) { return ret; } - ret = sd_bus_message_append(reply, "{sv}", - "streams", "a(ua{sv})", 1, - cast->node_id, 3, - "position", "(ii)", 0, 0, - "size", "(ii)", cast->screencopy_frame_info[WL_SHM].width, cast->screencopy_frame_info[WL_SHM].height, - "source_type", "u", 1 << MONITOR); + ret = sd_bus_message_open_container(reply, 'e', "sv"); + if (ret < 0) { + return ret; + } + ret = sd_bus_message_append(reply, "s", "streams"); + if (ret < 0) { + return ret; + } + ret = sd_bus_message_open_container(reply, 'v', "a(ua{sv})"); + if (ret < 0) { + return ret; + } + ret = sd_bus_message_open_container(reply, 'a', "(ua{sv})"); + if (ret < 0) { + return ret; + } + ret = sd_bus_message_open_container(reply, 'r', "ua{sv}"); + if (ret < 0) { + return ret; + } + ret = sd_bus_message_append(reply, "u", cast->node_id); + if (ret < 0) { + return ret; + } + ret = sd_bus_message_open_container(reply, 'a', "{sv}"); + if (ret < 0) { + return ret; + } + if (cast->target->output->xdg_output) { + ret = sd_bus_message_append(reply, "{sv}", + "position", "(ii)", cast->target->output->x, cast->target->output->y); + if (ret < 0) { + return ret; + } + ret = sd_bus_message_append(reply, "{sv}", + "size", "(ii)", cast->target->output->width, cast->target->output->height); + if (ret < 0) { + return ret; + } + } + ret = sd_bus_message_append(reply, "{sv}", "source_type", "u", MONITOR); + if (ret < 0) { + return ret; + } + ret = sd_bus_message_close_container(reply); + if (ret < 0) { + return ret; + } + ret = sd_bus_message_close_container(reply); + if (ret < 0) { + return ret; + } + ret = sd_bus_message_close_container(reply); + if (ret < 0) { + return ret; + } + ret = sd_bus_message_close_container(reply); + if (ret < 0) { + return ret; + } + ret = sd_bus_message_close_container(reply); if (ret < 0) { return ret; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xdg-desktop-portal-wlr-0.7.0/src/screencast/screencast_common.c new/xdg-desktop-portal-wlr-0.7.1/src/screencast/screencast_common.c --- old/xdg-desktop-portal-wlr-0.7.0/src/screencast/screencast_common.c 2023-04-15 10:32:26.000000000 +0200 +++ new/xdg-desktop-portal-wlr-0.7.1/src/screencast/screencast_common.c 2024-01-29 21:44:32.000000000 +0100 @@ -279,6 +279,8 @@ case DRM_FORMAT_ABGR2101010: case DRM_FORMAT_RGBA1010102: case DRM_FORMAT_BGRA1010102: + case DRM_FORMAT_BGR888: + case DRM_FORMAT_RGB888: return (enum wl_shm_format)format; default: logprint(ERROR, "xdg-desktop-portal-wlr: unsupported drm " @@ -308,6 +310,8 @@ case WL_SHM_FORMAT_ABGR2101010: case WL_SHM_FORMAT_RGBA1010102: case WL_SHM_FORMAT_BGRA1010102: + case WL_SHM_FORMAT_BGR888: + case WL_SHM_FORMAT_RGB888: return (uint32_t)format; default: logprint(ERROR, "xdg-desktop-portal-wlr: unsupported wl_shm " @@ -352,6 +356,10 @@ return SPA_VIDEO_FORMAT_RGBA_102LE; case DRM_FORMAT_BGRA1010102: return SPA_VIDEO_FORMAT_BGRA_102LE; + case DRM_FORMAT_BGR888: + return SPA_VIDEO_FORMAT_RGB; + case DRM_FORMAT_RGB888: + return SPA_VIDEO_FORMAT_BGR; default: logprint(ERROR, "xdg-desktop-portal-wlr: failed to convert drm " "format 0x%08x to spa_video_format", format); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xdg-desktop-portal-wlr-0.7.0/src/screencast/wlr_screencast.c new/xdg-desktop-portal-wlr-0.7.1/src/screencast/wlr_screencast.c --- old/xdg-desktop-portal-wlr-0.7.0/src/screencast/wlr_screencast.c 2023-04-15 10:32:26.000000000 +0200 +++ new/xdg-desktop-portal-wlr-0.7.1/src/screencast/wlr_screencast.c 2024-01-29 21:44:32.000000000 +0100 @@ -2,6 +2,7 @@ #include "linux-dmabuf-unstable-v1-client-protocol.h" #include "wlr-screencopy-unstable-v1-client-protocol.h" +#include "xdg-output-unstable-v1-client-protocol.h" #include <fcntl.h> #include <limits.h> #include <stdbool.h> @@ -306,6 +307,42 @@ .description = wlr_output_handle_description, }; +static void xdg_output_handle_logical_position(void *data, struct zxdg_output_v1 *xdg_output_v1, + int32_t x, int32_t y) { + struct xdpw_wlr_output *output = data; + output->x = x; + output->y = y; +} + +static void xdg_output_handle_logical_size(void *data, struct zxdg_output_v1 *xdg_output_v1, + int32_t width, int32_t height) { + struct xdpw_wlr_output *output = data; + output->width = width; + output->height = height; +} + +static void xdg_output_handle_done(void *data, struct zxdg_output_v1 *xdg_output_v1) { + /* Nothing to do */ +} + +static void xdg_output_handle_name(void *data, struct zxdg_output_v1 *xdg_output_v1, + const char *name) { + /* Nothing to do */ +} + +static void xdg_output_handle_description(void *data, struct zxdg_output_v1 *xdg_output_v1, + const char *description) { + /* Nothing to do */ +} + +static const struct zxdg_output_v1_listener xdg_output_listener = { + .logical_position = xdg_output_handle_logical_position, + .logical_size = xdg_output_handle_logical_size, + .done = xdg_output_handle_done, + .name = xdg_output_handle_name, + .description = xdg_output_handle_description, +}; + static struct xdpw_wlr_output *xdpw_wlr_output_first(struct wl_list *output_list) { struct xdpw_wlr_output *output, *tmp; wl_list_for_each_safe(output, tmp, output_list, link) { @@ -555,6 +592,9 @@ free(out->name); free(out->make); free(out->model); + if (out->xdg_output) { + zxdg_output_v1_destroy(out->xdg_output); + } wl_output_destroy(out->output); wl_list_remove(&out->link); free(out); @@ -737,6 +777,12 @@ logprint(DEBUG, "wlroots: |-- registered to interface %s (Version %u)", interface, WL_OUTPUT_VERSION); output->output = wl_registry_bind(reg, id, &wl_output_interface, WL_OUTPUT_VERSION); + if (ctx->xdg_output_manager) { + output->xdg_output = zxdg_output_manager_v1_get_xdg_output( + ctx->xdg_output_manager, output->output); + zxdg_output_v1_add_listener(output->xdg_output, &xdg_output_listener, output); + } + wl_output_add_listener(output->output, &wlr_output_listener, output); wl_list_insert(&ctx->output_list, &output->link); } @@ -776,6 +822,17 @@ zwp_linux_dmabuf_v1_add_listener(ctx->linux_dmabuf, &linux_dmabuf_listener, ctx); } } + + if (strcmp(interface, zxdg_output_manager_v1_interface.name) == 0 + && ver >= XDG_OUTPUT_VERSION_MIN) { + uint32_t version = ver; + if (XDG_OUTPUT_VERSION < ver) { + version = XDG_OUTPUT_VERSION; + } + logprint(DEBUG, "wlroots: |-- registered to interface %s (Version %u)", interface, version); + ctx->xdg_output_manager = wl_registry_bind( + reg, id, &zxdg_output_manager_v1_interface, version); + } } static void wlr_registry_handle_remove(void *data, struct wl_registry *reg, @@ -856,6 +913,19 @@ } } + if (ctx->xdg_output_manager) { + struct xdpw_wlr_output *output; + wl_list_for_each(output, &ctx->output_list, link) { + if (!output->xdg_output) { + output->xdg_output = zxdg_output_manager_v1_get_xdg_output( + ctx->xdg_output_manager, output->output); + zxdg_output_v1_add_listener(output->xdg_output, &xdg_output_listener, output); + } + } + wl_display_roundtrip(state->wl_display); + logprint(DEBUG, "wayland: xdg_output listeners run"); + } + return 0; } @@ -865,6 +935,9 @@ struct xdpw_wlr_output *output, *tmp_o; wl_list_for_each_safe(output, tmp_o, &ctx->output_list, link) { wl_list_remove(&output->link); + if (output->xdg_output) { + zxdg_output_v1_destroy(output->xdg_output); + } wl_output_destroy(output->output); } @@ -890,6 +963,9 @@ if (ctx->linux_dmabuf) { zwp_linux_dmabuf_v1_destroy(ctx->linux_dmabuf); } + if (ctx->xdg_output_manager) { + zxdg_output_manager_v1_destroy(ctx->xdg_output_manager); + } if (ctx->registry) { wl_registry_destroy(ctx->registry); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xdg-desktop-portal-wlr-0.7.0/xdg-desktop-portal-wlr.5.scd new/xdg-desktop-portal-wlr-0.7.1/xdg-desktop-portal-wlr.5.scd --- old/xdg-desktop-portal-wlr-0.7.0/xdg-desktop-portal-wlr.5.scd 2023-04-15 10:32:26.000000000 +0200 +++ new/xdg-desktop-portal-wlr-0.7.1/xdg-desktop-portal-wlr.5.scd 2024-01-29 21:44:32.000000000 +0100 @@ -40,8 +40,7 @@ Select which output will be screencast. This option is used with **chooser_type** = none. The list of available outputs - can be obtained via **wayland-info**(1) (under the _zxdg_output_manager_v1_ - section). + can be obtained via **wayland-info**(1) (under the _wl_output_ section). **max_fps** = _limit_ Limit the number of frames per second to the provided rate.
participants (1)
-
Source-Sync