gnome-panel r11406 - in trunk: gnome-panel gnome-panel/libpanel-util po



Author: vuntz
Date: Wed Dec 10 03:51:06 2008
New Revision: 11406
URL: http://svn.gnome.org/viewvc/gnome-panel?rev=11406&view=rev

Log:
2008-12-10  Vincent Untz  <vuntz gnome org>

	Use gio to launch desktop files, instead of gnome-desktop.

	* panel-util.[ch]: (panel_ditem_launch),
	(panel_util_launch_from_key_file), (panel_launch_desktop_file): kill
	* libpanel-util/panel-launch.[ch]: new, with some nice API
	* libpanel-util/Makefile.am: add new file
	* libpanel-util/panel-show.c: (_panel_app_info_launch_uri): killed
	(panel_show_nautilus_search_uri): use panel_app_info_launch_uri()
	(panel_show_uri_force_mime_type): use panel_app_info_launch_uri()
	* launcher.c: (launcher_launch), (drag_data_received_cb): use
	panel_launch_key_file()
	* panel-action-button.c: (panel_action_search): use
	panel_launch_desktop_file_with_fallback()
	* panel-menu-bar.c: (panel_menu_bar_invoke_menu): use
	panel_launch_desktop_file_with_fallback()
	* panel-menu-button.c: (panel_menu_button_invoke_menu): ditto
	* panel-menu-items.c: (panel_menu_item_activate_desktop_file): use
	panel_launch_desktop_file()

2008-12-10  Vincent Untz  <vuntz gnome org>

	* POTFILES.in: updated again again


Added:
   trunk/gnome-panel/libpanel-util/panel-launch.c
   trunk/gnome-panel/libpanel-util/panel-launch.h
Modified:
   trunk/gnome-panel/ChangeLog
   trunk/gnome-panel/launcher.c
   trunk/gnome-panel/libpanel-util/Makefile.am
   trunk/gnome-panel/libpanel-util/panel-show.c
   trunk/gnome-panel/panel-action-button.c
   trunk/gnome-panel/panel-menu-bar.c
   trunk/gnome-panel/panel-menu-button.c
   trunk/gnome-panel/panel-menu-items.c
   trunk/gnome-panel/panel-util.c
   trunk/gnome-panel/panel-util.h
   trunk/po/ChangeLog
   trunk/po/POTFILES.in

Modified: trunk/gnome-panel/launcher.c
==============================================================================
--- trunk/gnome-panel/launcher.c	(original)
+++ trunk/gnome-panel/launcher.c	Wed Dec 10 03:51:06 2008
@@ -25,6 +25,7 @@
 #include <libpanel-util/panel-error.h>
 #include <libpanel-util/panel-glib.h>
 #include <libpanel-util/panel-keyfile.h>
+#include <libpanel-util/panel-launch.h>
 #include <libpanel-util/panel-show.h>
 
 #include "launcher.h"
@@ -147,10 +148,8 @@
 	else {
 		GError *error = NULL;
 
-		panel_util_launch_from_key_file (launcher->key_file,
-						 NULL,
-						 launcher_get_screen (launcher),
-						 &error);
+		panel_launch_key_file (launcher->key_file, NULL,
+				       launcher_get_screen (launcher), &error);
 		if (error) {
 			GtkWidget *error_dialog;
 
@@ -213,10 +212,8 @@
 		file_list = g_list_prepend (file_list, uris[i]);
 	file_list = g_list_reverse (file_list);
 
-	panel_util_launch_from_key_file (launcher->key_file,
-					 file_list,
-					 launcher_get_screen (launcher),
-					 &error);
+	panel_launch_key_file (launcher->key_file, file_list,
+			       launcher_get_screen (launcher), &error);
 
 	g_list_free (file_list);
 	g_strfreev (uris);

Modified: trunk/gnome-panel/libpanel-util/Makefile.am
==============================================================================
--- trunk/gnome-panel/libpanel-util/Makefile.am	(original)
+++ trunk/gnome-panel/libpanel-util/Makefile.am	Wed Dec 10 03:51:06 2008
@@ -30,6 +30,8 @@
 	panel-glib.h			\
 	panel-keyfile.c			\
 	panel-keyfile.h			\
+	panel-launch.c			\
+	panel-launch.h			\
 	panel-list.c			\
 	panel-list.h			\
 	panel-power-manager.c		\

Added: trunk/gnome-panel/libpanel-util/panel-launch.c
==============================================================================
--- (empty file)
+++ trunk/gnome-panel/libpanel-util/panel-launch.c	Wed Dec 10 03:51:06 2008
@@ -0,0 +1,231 @@
+/*
+ * panel-launch.c: some helpers to launch desktop files
+ *
+ * Copyright (C) 2008 Novell, Inc.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+ * 02111-1307, USA.
+ *
+ * Authors:
+ *	Vincent Untz <vuntz gnome org>
+ */
+
+#include <glib/gi18n.h>
+#include <gio/gio.h>
+#include <gio/gdesktopappinfo.h>
+
+#include <gdk/gdk.h>
+#include <gtk/gtk.h>
+
+#include "panel-error.h"
+#include "panel-glib.h"
+
+#include "panel-launch.h"
+
+static void
+_panel_launch_error_dialog (const gchar *name,
+			    GdkScreen   *screen,
+			    const gchar *message)
+{
+	char *primary;
+
+	if (name)
+		primary = g_strdup_printf (_("Could not launch '%s'"), name);
+	else
+		primary = g_strdup (_("Could not launch application"));
+
+	panel_error_dialog (NULL, screen, "cannot_launch", TRUE,
+			    primary, message);
+	g_free (primary);
+}
+
+gboolean
+panel_app_info_launch_uris (GAppInfo   *appinfo,
+			    GList      *uris,
+			    GdkScreen  *screen,
+			    guint32     timestamp,
+			    GError    **error)
+{
+	GdkAppLaunchContext *context;
+	GError              *local_error;
+	gboolean             retval;
+
+	g_return_val_if_fail (G_IS_APP_INFO (appinfo), FALSE);
+	g_return_val_if_fail (GDK_IS_SCREEN (screen), FALSE);
+	g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
+
+	context = gdk_app_launch_context_new ();
+	gdk_app_launch_context_set_screen (context, screen);
+	gdk_app_launch_context_set_timestamp (context, timestamp);
+
+	local_error = NULL;
+	retval = g_app_info_launch_uris (appinfo, uris,
+					 (GAppLaunchContext *) context,
+					 &local_error);
+
+	g_object_unref (context);
+
+	if (retval)
+		return TRUE;
+
+	/* handle error */
+	if (error != NULL)
+		g_propagate_error (error, local_error);
+
+	else {
+		_panel_launch_error_dialog (g_app_info_get_name (appinfo),
+					    screen, local_error->message);
+		g_error_free (local_error);
+	}
+
+	return FALSE;
+}
+
+gboolean
+panel_app_info_launch_uri (GAppInfo     *appinfo,
+			   const gchar  *uri,
+			   GdkScreen    *screen,
+			   guint32       timestamp,
+			   GError      **error)
+{
+	GList    *uris;
+	gboolean  retval;
+
+	g_return_val_if_fail (G_IS_APP_INFO (appinfo), FALSE);
+	g_return_val_if_fail (GDK_IS_SCREEN (screen), FALSE);
+	g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
+
+	uris = NULL;
+	if (uri)
+		uris = g_list_prepend (uris, (gpointer) uri);
+
+	retval = panel_app_info_launch_uris (appinfo, uris,
+					     screen, timestamp, error);
+
+	g_list_free (uris);
+
+	return retval;
+}
+
+gboolean
+panel_launch_key_file (GKeyFile   *keyfile,
+		       GList      *uri_list,
+		       GdkScreen  *screen,
+		       GError    **error)
+{
+	GDesktopAppInfo *appinfo;
+	gboolean         retval;
+
+	g_return_val_if_fail (keyfile != NULL, FALSE);
+	g_return_val_if_fail (GDK_IS_SCREEN (screen), FALSE);
+	g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
+
+	appinfo = g_desktop_app_info_new_from_keyfile (keyfile);
+
+	if (appinfo == NULL)
+		return FALSE;
+
+	retval = panel_app_info_launch_uris (G_APP_INFO (appinfo),
+					     uri_list, screen,
+					     gtk_get_current_event_time (),
+					     error);
+
+	g_object_unref (appinfo);
+
+	return retval;
+}
+
+gboolean
+panel_launch_desktop_file (const char  *desktop_file,
+			   GdkScreen   *screen,
+			   GError     **error)
+{
+	GDesktopAppInfo *appinfo;
+	gboolean         retval;
+
+	g_return_val_if_fail (desktop_file != NULL, FALSE);
+	g_return_val_if_fail (GDK_IS_SCREEN (screen), FALSE);
+	g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
+
+	appinfo = NULL;
+
+	if (g_path_is_absolute (desktop_file))
+		appinfo = g_desktop_app_info_new_from_filename (desktop_file);
+	else {
+		char *full;
+
+		full = panel_g_lookup_in_applications_dirs (desktop_file);
+		if (full) {
+			appinfo = g_desktop_app_info_new_from_filename (full);
+			g_free (full);
+		}
+	}
+
+	if (appinfo == NULL)
+		return FALSE;
+
+	retval = panel_app_info_launch_uris (G_APP_INFO (appinfo), NULL, screen,
+					     gtk_get_current_event_time (),
+					     error);
+
+	g_object_unref (appinfo);
+
+	return retval;
+}
+
+gboolean
+panel_launch_desktop_file_with_fallback (const char  *desktop_file,
+					 const char  *fallback_exec,
+					 GdkScreen   *screen,
+					 GError     **error)
+{
+	char     *argv[2] = { (char *) fallback_exec, NULL };
+	GError   *local_error;
+	gboolean  retval;
+
+	g_return_val_if_fail (desktop_file != NULL, FALSE);
+	g_return_val_if_fail (fallback_exec != NULL, FALSE);
+	g_return_val_if_fail (GDK_IS_SCREEN (screen), FALSE);
+	g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
+
+	/* need to pass a non-NULL error to avoid getting a dialog */
+	local_error = NULL;
+	if (panel_launch_desktop_file (desktop_file, screen, &local_error))
+		return TRUE;
+
+	if (local_error) {
+		g_error_free (local_error);
+		local_error = NULL;
+	}
+
+	retval = gdk_spawn_on_screen (screen, NULL, argv, NULL,
+				      G_SPAWN_SEARCH_PATH,
+				      NULL, NULL, NULL, &local_error);
+
+	if (retval)
+		return TRUE;
+
+	/* handle error */
+	if (error != NULL)
+		g_propagate_error (error, local_error);
+
+	else {
+		_panel_launch_error_dialog (fallback_exec,
+					    screen, local_error->message);
+		g_error_free (local_error);
+	}
+
+	return FALSE;
+}

Added: trunk/gnome-panel/libpanel-util/panel-launch.h
==============================================================================
--- (empty file)
+++ trunk/gnome-panel/libpanel-util/panel-launch.h	Wed Dec 10 03:51:06 2008
@@ -0,0 +1,61 @@
+/*
+ * panel-launch.h: some helpers to launch desktop files
+ *
+ * Copyright (C) 2008 Novell, Inc.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+ * 02111-1307, USA.
+ *
+ * Authors:
+ *	Vincent Untz <vuntz gnome org>
+ */
+
+#ifndef PANEL_LAUNCH_H
+#define PANEL_LAUNCH_H
+
+#include <gio/gio.h>
+#include <gdk/gdk.h>
+
+G_BEGIN_DECLS
+
+gboolean panel_app_info_launch_uris (GAppInfo   *appinfo,
+				     GList      *uris,
+				     GdkScreen  *screen,
+				     guint32     timestamp,
+				     GError    **error);
+
+gboolean panel_app_info_launch_uri (GAppInfo     *appinfo,
+				    const gchar  *uri,
+				    GdkScreen    *screen,
+				    guint32       timestamp,
+				    GError      **error);
+
+gboolean panel_launch_key_file (GKeyFile   *keyfile,
+				GList      *uri_list,
+				GdkScreen  *screen,
+				GError    **error);
+
+gboolean panel_launch_desktop_file (const char  *desktop_file,
+				    GdkScreen   *screen,
+				    GError     **error);
+
+gboolean panel_launch_desktop_file_with_fallback (const char  *desktop_file,
+						  const char  *fallback_exec,
+						  GdkScreen   *screen,
+						  GError     **error);
+
+G_END_DECLS
+
+#endif /* PANEL_LAUNCH_H */

Modified: trunk/gnome-panel/libpanel-util/panel-show.c
==============================================================================
--- trunk/gnome-panel/libpanel-util/panel-show.c	(original)
+++ trunk/gnome-panel/libpanel-util/panel-show.c	Wed Dec 10 03:51:06 2008
@@ -30,6 +30,7 @@
 
 #include "panel-error.h"
 #include "panel-glib.h"
+#include "panel-launch.h"
 
 #include "panel-show.h"
 
@@ -145,34 +146,6 @@
 }
 
 static gboolean
-_panel_app_info_launch_uri (GAppInfo     *appinfo,
-			    const gchar  *uri,
-			    GdkScreen    *screen,
-			    guint32       timestamp,
-			    GError      **error)
-{
-	GList               *uris;
-	GdkAppLaunchContext *context;
-	GError              *local_error;
-
-	uris = NULL;
-	uris = g_list_prepend (uris, (gpointer) uri);
-
-	context = gdk_app_launch_context_new ();
-	gdk_app_launch_context_set_screen (context, screen);
-	gdk_app_launch_context_set_timestamp (context, timestamp);
-
-	local_error = NULL;
-	g_app_info_launch_uris (appinfo, uris,
-				(GAppLaunchContext *) context,
-				&local_error);
-	g_list_free (uris);
-	g_object_unref (context);
-
-	return _panel_show_handle_error (uri, screen, local_error, error);
-}
-
-static gboolean
 panel_show_nautilus_search_uri (GdkScreen    *screen,
 				const gchar  *uri,
 				guint32       timestamp,
@@ -194,8 +167,8 @@
 		return FALSE;
 	}
 
-	ret = _panel_app_info_launch_uri ((GAppInfo *) appinfo,
-					  uri, screen, timestamp, error);
+	ret = panel_app_info_launch_uri ((GAppInfo *) appinfo,
+					 uri, screen, timestamp, error);
 	g_object_unref (appinfo);
 
 	return ret;
@@ -250,7 +223,7 @@
 		return panel_show_uri (screen, uri, timestamp, error);
 	}
 
-	ret = _panel_app_info_launch_uri (app, uri, screen, timestamp, error);
+	ret = panel_app_info_launch_uri (app, uri, screen, timestamp, error);
 	g_object_unref (app);
 
 	return ret;

Modified: trunk/gnome-panel/panel-action-button.c
==============================================================================
--- trunk/gnome-panel/panel-action-button.c	(original)
+++ trunk/gnome-panel/panel-action-button.c	Wed Dec 10 03:51:06 2008
@@ -33,6 +33,7 @@
 #include <glib/gi18n.h>
 
 #include <libpanel-util/panel-error.h>
+#include <libpanel-util/panel-launch.h>
 #include <libpanel-util/panel-session-manager.h>
 
 #include "applet.h"
@@ -216,23 +217,11 @@
 panel_action_search (GtkWidget *widget)
 {
 	GdkScreen *screen;
-	GError    *error = NULL;
 
 	screen = gtk_widget_get_screen (widget);
-	panel_launch_desktop_file ("gnome-search-tool.desktop",
-				   "gnome-search-tool",
-				   screen,
-				   &error);
-	if (error) {
-		char *primary;
-		primary = g_strdup_printf (_("Could not execute '%s'"),
-					   "gnome-search-tool");
-		panel_error_dialog (NULL, screen,
-				    "cannot_exec_gnome-search-tool", TRUE,
-				    primary, error->message);
-		g_free (primary);
-		g_error_free (error);
-	}
+	panel_launch_desktop_file_with_fallback ("gnome-search-tool.desktop",
+						 "gnome-search-tool",
+						 screen, NULL);
 }
 
 /* Force Quit

Modified: trunk/gnome-panel/panel-menu-bar.c
==============================================================================
--- trunk/gnome-panel/panel-menu-bar.c	(original)
+++ trunk/gnome-panel/panel-menu-bar.c	Wed Dec 10 03:51:06 2008
@@ -32,6 +32,7 @@
 #include <glib/gi18n.h>
 
 #include <libpanel-util/panel-error.h>
+#include <libpanel-util/panel-launch.h>
 
 #include "panel-util.h"
 #include "panel-background.h"
@@ -399,28 +400,15 @@
 	} else if (!strcmp (callback_name, "edit")) {
 		GError *error = NULL;
 
-		panel_launch_desktop_file ("alacarte.desktop",
-					   "alacarte",
-					   screen,
-					   &error);
+		panel_launch_desktop_file_with_fallback ("alacarte.desktop",
+							 "alacarte",
+							 screen, &error);
 		if (error) {
 			g_error_free (error);
-			error = NULL;
-			panel_launch_desktop_file ("gmenu-simple-editor.desktop",
-						   "gmenu-simple-editor",
-						   screen,
-						   &error);
-		}
-		if (error) {
-			char *primary;
-			primary = g_strdup_printf (_("Could not execute '%s'"),
-						   "gmenu-simple-editor");
-                        panel_error_dialog (NULL, screen,
-                                            "cannot_exec_gmenu-simple-editor",
-					    TRUE,
-					    primary, error->message);
-			g_free (primary);
-			g_error_free (error);
+			panel_launch_desktop_file_with_fallback (
+						"gmenu-simple-editor.desktop",
+						"gmenu-simple-editor",
+						screen, NULL);
 		}
 	}
 }

Modified: trunk/gnome-panel/panel-menu-button.c
==============================================================================
--- trunk/gnome-panel/panel-menu-button.c	(original)
+++ trunk/gnome-panel/panel-menu-button.c	Wed Dec 10 03:51:06 2008
@@ -32,6 +32,7 @@
 #include <gmenu-tree.h>
 
 #include <libpanel-util/panel-error.h>
+#include <libpanel-util/panel-launch.h>
 
 #include "applet.h"
 #include "panel-widget.h"
@@ -974,30 +975,16 @@
 	} else if (!strcmp (callback_name, "edit")) {
                 GError *error = NULL;
 
-		panel_launch_desktop_file ("alacarte.desktop",
-					   "alacarte-editor",
-					   screen,
-					   &error);
+		panel_launch_desktop_file_with_fallback ("alacarte.desktop",
+							 "alacarte",
+							 screen, &error);
 		if (error) {
 			g_error_free (error);
-			error = NULL;
-			panel_launch_desktop_file ("gmenu-simple-editor.desktop",
-						   "gmenu-simple-editor",
-						   screen,
-						   &error);
+			panel_launch_desktop_file_with_fallback (
+						"gmenu-simple-editor.desktop",
+						"gmenu-simple-editor",
+						screen, NULL);
 		}
-
-                if (error) {
-			char *primary;
-			primary = g_strdup_printf (_("Could not execute '%s'"),
-						   "gmenu-simple-editor");
-                        panel_error_dialog (NULL, screen,
-                                            "cannot_exec_gmenu-simple-editor",
-					    TRUE,
-					    primary, error->message);
-			g_free (primary);
-                        g_error_free (error);
-                }
 	}
 }
 

Modified: trunk/gnome-panel/panel-menu-items.c
==============================================================================
--- trunk/gnome-panel/panel-menu-items.c	(original)
+++ trunk/gnome-panel/panel-menu-items.c	Wed Dec 10 03:51:06 2008
@@ -42,6 +42,7 @@
 #include <libpanel-util/panel-error.h>
 #include <libpanel-util/panel-glib.h>
 #include <libpanel-util/panel-keyfile.h>
+#include <libpanel-util/panel-launch.h>
 #include <libpanel-util/panel-show.h>
 
 #include "menu.h"
@@ -1519,17 +1520,5 @@
 panel_menu_item_activate_desktop_file (GtkWidget  *menuitem,
 				       const char *path)
 {
-	GError *error;
-
-	error = NULL;
-	panel_launch_desktop_file (path, NULL,
-				   menuitem_to_screen (menuitem), &error);
-	if (error) {
-		panel_error_dialog (NULL, menuitem_to_screen (menuitem),
-				    "cannot_launch_entry", TRUE,
-				    _("Could not launch menu item"),
-				    error->message);
-
-		g_error_free (error);
-	}
+	panel_launch_desktop_file (path, menuitem_to_screen (menuitem), NULL);
 }

Modified: trunk/gnome-panel/panel-util.c
==============================================================================
--- trunk/gnome-panel/panel-util.c	(original)
+++ trunk/gnome-panel/panel-util.c	Wed Dec 10 03:51:06 2008
@@ -28,7 +28,6 @@
 #include <gio/gio.h>
 #include <gdk-pixbuf/gdk-pixbuf.h>
 
-#include <libgnome/gnome-desktop-item.h>
 #include <libgnomeui/gnome-help.h>
 
 #include <libpanel-util/panel-error.h>
@@ -45,110 +44,6 @@
 #include "panel-icon-names.h"
 #include "panel-lockdown.h"
 
-static int
-panel_ditem_launch (GnomeDesktopItem  *item,
-		    GList             *file_list,
-		    GdkScreen         *screen,
-		    GError           **error)
-{
-	int workspace;
-
-	workspace = xstuff_get_current_workspace (screen);
-
-	gnome_desktop_item_set_launch_time (item,
-					    gtk_get_current_event_time ());
-
-	return gnome_desktop_item_launch_on_screen (item, file_list, 0,
-						    screen, workspace, error);
-}
-
-void
-panel_util_launch_from_key_file (GKeyFile   *keyfile,
-				 GList      *file_list,
-				 GdkScreen  *screen,
-				 GError    **error)
-{
-	GnomeDesktopItem  *ditem;
-	int                i;
-	static const char *keys [] = { "Type",
-				       "Exec",
-				       "URL",
-				       "Dev",
-				       "Path",
-				       "Terminal",
-				       "TerminalOptions",
-				       "StartupNotify",
-				       "StartupWMClass",
-				     };
-	static const char *locale_keys [] = { "Name",
-					      "GenericName",
-					      "Icon",
-					      "MiniIcon",
-					    };
-
-	g_return_if_fail (keyfile != NULL);
-
-	ditem = gnome_desktop_item_new ();
-	if (ditem == NULL)
-		return;
-
-	for (i = 0; i < G_N_ELEMENTS (keys); i++) {
-		char *value;
-
-		value = panel_key_file_get_string (keyfile, keys [i]);
-		if (value != NULL) {
-			gnome_desktop_item_set_string (ditem, keys [i], value);
-			g_free (value);
-		}
-	}
-
-	for (i = 0; i < G_N_ELEMENTS (locale_keys); i++) {
-		char *value;
-
-		value = panel_key_file_get_locale_string (keyfile,
-							  locale_keys [i]);
-		if (value != NULL) {
-			gnome_desktop_item_set_string (ditem, locale_keys [i], value);
-			g_free (value);
-		}
-	}
-
-	panel_ditem_launch (ditem, file_list, screen, error);
-	gnome_desktop_item_unref (ditem);
-}
-
-void
-panel_launch_desktop_file (const char  *desktop_file,
-			   const char  *fallback_exec,
-			   GdkScreen   *screen,
-			   GError     **error)
-{
-	GnomeDesktopItem *ditem;
-
-	if (g_path_is_absolute (desktop_file))
-		ditem = gnome_desktop_item_new_from_file (desktop_file, 0,
-							  error);
-	else
-		ditem = gnome_desktop_item_new_from_basename (desktop_file, 0,
-							      error);
-
-	if (ditem != NULL) {
-		panel_ditem_launch (ditem, NULL, screen, error);
-		gnome_desktop_item_unref (ditem);
-	} else if (fallback_exec != NULL) {
-		char *argv [2] = {(char *)fallback_exec, NULL};
-
-		if (*error) {
-			g_error_free (*error);
-			*error = NULL;
-		}
-
-		gdk_spawn_on_screen (screen, NULL, argv, NULL,
-				     G_SPAWN_SEARCH_PATH,
-				     NULL, NULL, NULL, error);
-	}
-}
-
 char *
 panel_util_make_exec_uri_for_desktop (const char *exec)
 {

Modified: trunk/gnome-panel/panel-util.h
==============================================================================
--- trunk/gnome-panel/panel-util.h	(original)
+++ trunk/gnome-panel/panel-util.h	Wed Dec 10 03:51:06 2008
@@ -8,15 +8,6 @@
 
 #define		sure_string(s)		((const char *)((s)!=NULL?(s):""))
 
-void            panel_util_launch_from_key_file (GKeyFile                *keyfile,
-						 GList                   *file_list,
-						 GdkScreen               *screen,
-						 GError                 **error);
-void            panel_launch_desktop_file  (const char                   *desktop_file,
-					    const char                   *fallback_exec,
-					    GdkScreen                    *screen,
-					    GError                      **error);
-
 char *          panel_util_make_exec_uri_for_desktop (const char *exec);
 
 void		panel_show_help		(GdkScreen  *screen,

Modified: trunk/po/POTFILES.in
==============================================================================
--- trunk/po/POTFILES.in	(original)
+++ trunk/po/POTFILES.in	Wed Dec 10 03:51:06 2008
@@ -36,6 +36,7 @@
 applets/wncklet/workspace-switcher.glade
 applets/wncklet/workspace-switcher.schemas.in
 gnome-panel/libpanel-util/panel-error.c
+gnome-panel/libpanel-util/panel-launch.c
 gnome-panel/libpanel-util/panel-show.c
 gnome-panel/GNOME_Panel_Popup.xml
 gnome-panel/applet.c



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]