aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/dbus.c
diff options
context:
space:
mode:
authordec05eba <dec05eba@protonmail.com>2026-07-03 11:51:06 +0200
committerdec05eba <dec05eba@protonmail.com>2026-07-03 11:51:06 +0200
commitb6e9bcfd22c1014af40f432ad10acb59591ab7f2 (patch)
tree74efb9a5853311b361fdcb98ca0e06c4f2d6bd3c /src/dbus.c
parentf1e724368bce988c09e5a8e57faf971106bb55cf (diff)
Desktop portal: fix cursor lagging on gnome (change cursor to metadata)
Diffstat (limited to 'src/dbus.c')
-rw-r--r--src/dbus.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/dbus.c b/src/dbus.c
index 8ba58bc..715a021 100644
--- a/src/dbus.c
+++ b/src/dbus.c
@@ -650,8 +650,15 @@ int gsr_dbus_screencast_select_sources(gsr_dbus *self, const char *session_handl
uint32_t available_cursor_modes = 0;
gsr_dbus_desktop_portal_get_property(self, "org.freedesktop.portal.ScreenCast", "AvailableCursorModes", &available_cursor_modes);
if(available_cursor_modes == 0)
- fprintf(stderr, "gsr error: gsr_dbus_screencast_select_sources: no cursors modes are available\n");
+ fprintf(stderr, "gsr warning: gsr_dbus_screencast_select_sources: no cursors modes are available\n");
+
+ if(cursor_mode == GSR_PORTAL_CURSOR_MODE_METADATA && !(available_cursor_modes & GSR_PORTAL_CURSOR_MODE_METADATA)) {
+ fprintf(stderr, "gsr warning: gsr_dbus_screencast_select_sources: cursor mode metadata is not available, using cursor mode embedded instead\n");
+ cursor_mode = GSR_PORTAL_CURSOR_MODE_EMBEDDED;
+ }
cursor_mode = unset_unsupported_cursor_modes(cursor_mode, available_cursor_modes);
+ if(cursor_mode == 0)
+ cursor_mode = GSR_PORTAL_CURSOR_MODE_HIDDEN;
char handle_token[64];
gsr_dbus_portal_get_unique_handle_token(self, handle_token, sizeof(handle_token));