Index: server/vino-status-icon.c
===================================================================
--- server/vino-status-icon.c	(revisión: 1007)
+++ server/vino-status-icon.c	(copia de trabajo)
@@ -183,9 +183,7 @@
   return g_object_new (VINO_TYPE_STATUS_ICON,
                        "icon-name", "preferences-desktop-remote-desktop",
                        "server",    server,
-#if GTK_CHECK_VERSION (2, 11, 0)
                        "screen",    screen,
-#endif
                        NULL);
 }
 
@@ -198,59 +196,63 @@
 }
 
 static void
-vino_status_icon_spawn_command (VinoStatusIcon *icon,
-                                const char     *command,
-                                const char     *error_format)
+vino_status_icon_spawn_on_error (VinoStatusIcon *icon,
+                                 GError         *error,
+                                 const char     *error_format)
 {
-  GdkScreen *screen;
-  GError    *error;
-
   g_return_if_fail (VINO_IS_STATUS_ICON (icon));
 
-#if GTK_CHECK_VERSION (2, 11, 0)
-  screen = gtk_status_icon_get_screen (GTK_STATUS_ICON (icon));
-#else
-  screen = vino_server_get_screen (icon->priv->server);
-#endif
+  GtkWidget *message_dialog;
 
-  error = NULL;
+  message_dialog = gtk_message_dialog_new (NULL,
+                                           GTK_DIALOG_DESTROY_WITH_PARENT,
+                                           GTK_MESSAGE_ERROR,
+                                           GTK_BUTTONS_CLOSE,
+                                           error_format,
+                                           error->message);
+  gtk_window_set_resizable (GTK_WINDOW (message_dialog), FALSE);
 
-  if (!gdk_spawn_command_line_on_screen (screen, command, &error))
-    {
-      GtkWidget *message_dialog;
+  g_signal_connect (message_dialog, "response",
+                    G_CALLBACK (gtk_widget_destroy),
+                    NULL);
 
-      message_dialog = gtk_message_dialog_new (NULL,
-					       GTK_DIALOG_DESTROY_WITH_PARENT,
-					       GTK_MESSAGE_ERROR,
-					       GTK_BUTTONS_CLOSE,
-                                               error_format,
-					       error->message);
-      gtk_window_set_resizable (GTK_WINDOW (message_dialog), FALSE);
+  gtk_widget_show (message_dialog);
+}
 
-      g_signal_connect (message_dialog, "response",
-			G_CALLBACK (gtk_widget_destroy),
-			NULL);
+static void
+vino_status_icon_preferences (VinoStatusIcon *icon)
+{
+  GdkScreen *screen;
+  g_return_if_fail (VINO_IS_STATUS_ICON (icon));
+  screen = gtk_status_icon_get_screen (GTK_STATUS_ICON (icon));
 
-      gtk_widget_show (message_dialog);
+  GError *error;
 
+  if (!gdk_spawn_command_line_on_screen (screen, "vino-preferences", error))
+    {
+      vino_status_icon_spawn_on_error (icon,
+                                       error,
+                                       _("There was an error displaying preferences:\n %s"));
       g_error_free (error);
     }
 }
 
 static void
-vino_status_icon_preferences (VinoStatusIcon *icon)
+vino_status_icon_help (VinoStatusIcon *icon)
 {
-  vino_status_icon_spawn_command (icon,
-                                  "vino-preferences",
-                                  _("There was an error displaying preferences:\n %s"));
-}
+  GdkScreen *screen;
+  g_return_if_fail (VINO_IS_STATUS_ICON (icon));
+  screen = gtk_status_icon_get_screen (GTK_STATUS_ICON (icon));
 
-static void
-vino_status_icon_help (VinoStatusIcon *icon)
-{
-  vino_status_icon_spawn_command (icon,
-                                  "gnome-open ghelp:user-guide?goscustdesk-90",
-                                  _("There was an error displaying help:\n %s"));
+  GError *error;
+
+  if (!gtk_show_uri (screen, "ghelp:user-guide?goscustdesk-90", GDK_CURRENT_TIME, error))
+    {
+      vino_status_icon_spawn_on_error (icon,
+                                       error,
+                                       _("There was an error displaying help:\n %s"));
+      g_error_free (error);
+    }
 }
 
 static void
