mirror of https://github.com/GNOME/gimp.git
pickbutton: Add version check for XDG portal
`PickColor()` API only got added in version 2, so check for that before trying to use it.
This commit is contained in:
parent
ff4e9c649a
commit
e5caf21bcb
|
@ -36,7 +36,9 @@
|
||||||
gboolean
|
gboolean
|
||||||
_gimp_pick_button_xdg_available (void)
|
_gimp_pick_button_xdg_available (void)
|
||||||
{
|
{
|
||||||
|
gboolean ret = TRUE;
|
||||||
GDBusProxy *proxy = NULL;
|
GDBusProxy *proxy = NULL;
|
||||||
|
GVariant *version = NULL;
|
||||||
|
|
||||||
proxy = g_dbus_proxy_new_for_bus_sync (G_BUS_TYPE_SESSION,
|
proxy = g_dbus_proxy_new_for_bus_sync (G_BUS_TYPE_SESSION,
|
||||||
G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START,
|
G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START,
|
||||||
|
@ -46,24 +48,30 @@ _gimp_pick_button_xdg_available (void)
|
||||||
"org.freedesktop.portal.Screenshot",
|
"org.freedesktop.portal.Screenshot",
|
||||||
NULL, NULL);
|
NULL, NULL);
|
||||||
|
|
||||||
if (proxy)
|
if (proxy == NULL)
|
||||||
{
|
{
|
||||||
GError *error = NULL;
|
ret = FALSE;
|
||||||
|
goto out;
|
||||||
g_dbus_proxy_call_sync (proxy, "org.freedesktop.DBus.Peer.Ping",
|
|
||||||
NULL,
|
|
||||||
G_DBUS_CALL_FLAGS_NONE,
|
|
||||||
-1, NULL, &error);
|
|
||||||
if (! error)
|
|
||||||
return TRUE;
|
|
||||||
|
|
||||||
g_clear_error (&error);
|
|
||||||
|
|
||||||
g_object_unref (proxy);
|
|
||||||
proxy = NULL;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return FALSE;
|
/* Finally, PickColor is only available starting V2 of the portal */
|
||||||
|
version = g_dbus_proxy_get_cached_property (proxy, "version");
|
||||||
|
if (version == NULL)
|
||||||
|
{
|
||||||
|
ret = FALSE;
|
||||||
|
goto out;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (g_variant_get_uint32 (version) < 2)
|
||||||
|
{
|
||||||
|
ret = FALSE;
|
||||||
|
goto out;
|
||||||
|
}
|
||||||
|
|
||||||
|
out:
|
||||||
|
g_clear_pointer (&version, g_variant_unref);
|
||||||
|
g_clear_object (&proxy);
|
||||||
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
|
Loading…
Reference in New Issue