summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthias Clasen <mclasen@redhat.com>2016-02-18 22:03:12 -0500
committerMatthias Clasen <mclasen@redhat.com>2016-02-18 22:03:12 -0500
commit9c2110122b8b5e5f12a19076814012407ee7abb2 (patch)
treef4938c8d79d7ea4e2b569cecf005abb728b9ee2d
parenta3ba7f0a201ad9025a926aacb4229865ea724b01 (diff)
downloadgtk+-9c2110122b8b5e5f12a19076814012407ee7abb2.tar.gz
gdk: Add a way to show included backends
Set GDK_BACKEND=help to see a list of all inluded GDK backends.
-rw-r--r--docs/reference/gtk/running.sgml5
-rw-r--r--gdk/gdkdisplaymanager.c9
2 files changed, 12 insertions, 2 deletions
diff --git a/docs/reference/gtk/running.sgml b/docs/reference/gtk/running.sgml
index 7f3812046a..accd973224 100644
--- a/docs/reference/gtk/running.sgml
+++ b/docs/reference/gtk/running.sgml
@@ -477,7 +477,7 @@ nevertheless.
<para>
If set, selects the GDK backend to use. Selecting a backend requires that
GTK+ is compiled with support for that backend. The following backends can
- be selected:
+ be selected, provided they are included in the GDK libraries you are using:
<variablelist>
<varlistentry>
@@ -513,7 +513,8 @@ nevertheless.
</variablelist>
Since 3.10, this environment variable can contain a comma-separated list
of backend names, which are tried in order. The list may also contain
- a *, which means: try all remaining backends.
+ a *, which means: try all remaining backends. The special value "help" can
+ be used to make GDK print out a list of all available backends.
For more information about selecting backends, see the gdk_display_manager_get() function.
</para>
</formalpara>
diff --git a/gdk/gdkdisplaymanager.c b/gdk/gdkdisplaymanager.c
index bc3471f83a..cbb5c4cf38 100644
--- a/gdk/gdkdisplaymanager.c
+++ b/gdk/gdkdisplaymanager.c
@@ -441,6 +441,15 @@ gdk_display_manager_open_display (GdkDisplayManager *manager,
backend_list = g_getenv ("GDK_BACKEND");
if (backend_list == NULL)
backend_list = allowed_backends;
+ else if (g_strcmp0 (backend_list, "help") == 0)
+ {
+ fprintf (stderr, "Supported GDK backends:");
+ for (i = 0; gdk_backends[i].name != NULL; i++)
+ fprintf (stderr, " %s", gdk_backends[i].name);
+ fprintf (stderr, "\n");
+
+ backend_list = allowed_backends;
+ }
backends = g_strsplit (backend_list, ",", 0);
display = NULL;