示例#1
0
gboolean
desktop_launch(GdkScreen  *screen,
               const char *desktop_name,
               GError    **error)
{
    GnomeDesktopItem *item;
    int result;

    gnome_vfs_init(); /* gnome desktop item uses it internally */
    
    item = find_desktop_item(desktop_name);
    if (item == NULL) {
        g_set_error(error, G_FILE_ERROR,
                    G_FILE_ERROR_FAILED,
                    "Could not find the file %s.desktop needed to start this application",
                    desktop_name);
        return FALSE;
    }
    
    result = gnome_desktop_item_launch_on_screen(item,
                                                 NULL, 0,
                                                 screen, -1,
                                                 error);

    gnome_desktop_item_unref(item);
    
    if (result < 0) {
        return FALSE;
    } else {
        return TRUE;
    }                   
}
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);
}