summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthias Clasen <mclasen@redhat.com>2010-12-22 11:13:31 -0500
committerMatthias Clasen <mclasen@redhat.com>2010-12-22 11:13:31 -0500
commit05b43caf4c5c36fe35d03cbc26158e562a4a7cc1 (patch)
treed8fcc1211e9dfda6c72a596d2a030ce6e9c629d3
parente20503836c3d91d52eb0448ebb34f599d7b87300 (diff)
downloadgtk+-05b43caf4c5c36fe35d03cbc26158e562a4a7cc1.tar.gz
Add a section about gdk_spawn to migration guide
-rw-r--r--docs/reference/gtk/migrating-2to3.xml47
1 files changed, 47 insertions, 0 deletions
diff --git a/docs/reference/gtk/migrating-2to3.xml b/docs/reference/gtk/migrating-2to3.xml
index ad0919b9a8..237d14f634 100644
--- a/docs/reference/gtk/migrating-2to3.xml
+++ b/docs/reference/gtk/migrating-2to3.xml
@@ -124,6 +124,53 @@
</section>
<section>
+ <title>Use GIO for launching applications</title>
+ <para>
+ The <literal>gdk_spawn</literal> family of functions has been
+ deprecated in GDK 2.24 and removed from GDK 3. Various replacements
+ exit; the best replacement depends on the circumstances:
+ <itemizedlist>
+ <listitem>If you are opening a document or URI by launching a command
+ like <literal>firefox http://my-favourite-website.com</literal> or
+ <literal>gnome-open ghelp:epiphany</literal>, it is best to just use
+ gtk_show_uri(); as an added benefit, your application will henceforth
+ respect the users preference for what application to use.</listitem>
+ <listitem>If you are launching a regular, installed application that
+ has a desktop file, it is best to use GIOs #GAppInfo with a suitable
+ launch context.
+ <informalexample><programlisting>
+ GAppInfo *info;
+ GAppLaunchContext *context;
+ GError *error = NULL;
+
+ info = g_desktop_app_info_new ("epiphany.desktop");
+ context = gdk_app_launch_context_new ();
+ g_app_info_launch (info, NULL, context, &amp;error);
+
+ if (error)
+ {
+ g_warning ("Failed to launch epiphany: %s", error-&gt;message);
+ g_error_free (error);
+ }
+
+ g_object_unref (info);
+ g_object_unref (context);
+ </programlisting></informalexample>
+ </listitem>
+ <listitem>If you are launching a custom commandline, you can
+ still use g_app_info_launch() with a GAppInfo that is constructed
+ with g_app_info_create_from_commandline(), or you can use the
+ more lowlevel <literal>g_spawn</literal> family of functions
+ (e.g. g_spawn_command_line_async()), and pass <envar>DISPLAY</envar>
+ in the environment. gdk_screen_make_display_name() can be
+ used to find the right value for the <envar>DISPLAY</envar>
+ environment variable.
+ </listitem>
+ </itemizedlist>
+ </para>
+ </section>
+
+ <section>
<title>Use cairo for drawing</title>
<para>
In GTK+ 3, the GDK drawing API (which closely mimics the X