diff --git a/gtk/gtkprivate.c b/gtk/gtkprivate.c index 8f0da6d3b3..7f2a335029 100644 --- a/gtk/gtkprivate.c +++ b/gtk/gtkprivate.c @@ -267,3 +267,23 @@ _gtk_ensure_resources (void) g_once (®ister_resources_once, register_resources, NULL); } + +gboolean +gtk_should_use_portal (void) +{ + const char *use_portal; + char *path; + + path = g_strdup_printf ("%s/flatpak-info", g_get_user_runtime_dir ()); + if (g_file_test (path, G_FILE_TEST_EXISTS)) + use_portal = "1"; + else + { + use_portal = g_getenv ("GTK_USE_PORTAL"); + if (!use_portal) + use_portal = ""; + } + g_free (path); + + return g_str_equal (use_portal, "1"); +} diff --git a/gtk/gtkprivate.h b/gtk/gtkprivate.h index 7602394675..af130cd3f0 100644 --- a/gtk/gtkprivate.h +++ b/gtk/gtkprivate.h @@ -95,6 +95,8 @@ gboolean _gtk_propagate_captured_event (GtkWidget *widget, gdouble _gtk_get_slowdown (); void _gtk_set_slowdown (gdouble slowdown_factor); +gboolean gtk_should_use_portal (void); + #ifdef G_OS_WIN32 void _gtk_load_dll_with_libgtk3_manifest (const char *dllname); #endif