From ab7ba16ff7aa50eb0559bc2d4853e502b6bfc27b Mon Sep 17 00:00:00 2001 From: George Lebl Date: Fri, 15 Sep 2000 23:46:03 +0000 Subject: Launch Type=URL entries, and slight cosmetic updates Fri Sep 15 18:47:06 2000 George Lebl * gnome-ditem.[ch]: Launch Type=URL entries, and slight cosmetic updates --- libgnome-desktop/gnome-desktop-item.c | 26 +++++++++++++++++++++++--- libgnome-desktop/gnome-desktop-item.h | 12 ++++++------ libgnome-desktop/libgnome/gnome-desktop-item.h | 12 ++++++------ 3 files changed, 35 insertions(+), 15 deletions(-) diff --git a/libgnome-desktop/gnome-desktop-item.c b/libgnome-desktop/gnome-desktop-item.c index 38b9ac61..9b0785ce 100644 --- a/libgnome-desktop/gnome-desktop-item.c +++ b/libgnome-desktop/gnome-desktop-item.c @@ -1017,7 +1017,9 @@ strip_the_amp(char *exec) * then passed to gnome_exec_async for execution with argc and argv appended. * * Returns: The value returned by gnome_execute_async() upon execution of - * the specified item or -1 on error. + * the specified item or -1 on error. It may also return a 0 on success + * if pid is not available, such as in a case where the entry is a URL + * entry. */ int gnome_desktop_item_launch (const GnomeDesktopItem *item, int argc, const char **argv) @@ -1034,6 +1036,16 @@ gnome_desktop_item_launch (const GnomeDesktopItem *item, int argc, const char ** return -1; } + /* This is a URL, so launch it as a url */ + if (item->type != NULL && + item->item_format == GNOME_DESKTOP_ITEM_GNOME && + strcmp (item->type, "URL") == 0) { + if (gnome_url_show (item->exec)) + return 0; + else + return -1; + } + /* make a new copy and get rid of spaces */ the_exec = g_alloca(strlen(item->exec)+1); strcpy(the_exec,item->exec); @@ -1263,8 +1275,16 @@ gnome_desktop_item_drop_uri_list (const GnomeDesktopItem *item, GList *file_list = NULL; int ret = -1; - g_return_val_if_fail(item!=NULL,-1); - g_return_val_if_fail(uri_list!=NULL,-1); + g_return_val_if_fail (item != NULL, -1); + g_return_val_if_fail (uri_list != NULL, -1); + + /* How could you drop something on a URL entry, that would + * be bollocks */ + if (item->type != NULL && + item->item_format == GNOME_DESKTOP_ITEM_GNOME && + strcmp (item->type, "URL") == 0) { + return -1; + } /* do we even allow drops? */ if(item->item_flags & GNOME_DESKTOP_ITEM_NO_FILE_DROP && diff --git a/libgnome-desktop/gnome-desktop-item.h b/libgnome-desktop/gnome-desktop-item.h index 09c39532..c05ae977 100644 --- a/libgnome-desktop/gnome-desktop-item.h +++ b/libgnome-desktop/gnome-desktop-item.h @@ -24,8 +24,8 @@ @NOTATION@ */ -#ifndef __GNOME_DITEM_H__ -#define __GNOME_DITEM_H__ 1 +#ifndef GNOME_DITEM_H +#define GNOME_DITEM_H BEGIN_GNOME_DECLS @@ -54,9 +54,9 @@ typedef enum { } GnomeDesktopItemFormat; typedef enum { - GNOME_DESKTOP_ITEM_UNCHANGED=0, - GNOME_DESKTOP_ITEM_CHANGED=1, - GNOME_DESKTOP_ITEM_DISAPPEARED=2 + GNOME_DESKTOP_ITEM_UNCHANGED = 0, + GNOME_DESKTOP_ITEM_CHANGED = 1, + GNOME_DESKTOP_ITEM_DISAPPEARED = 2 } GnomeDesktopItemStatus; typedef struct _GnomeDesktopItem GnomeDesktopItem; @@ -149,4 +149,4 @@ void gnome_desktop_item_set_location (GnomeDesktopItem END_GNOME_DECLS -#endif /* __GNOME_DITEM_H__ */ +#endif /* GNOME_DITEM_H */ diff --git a/libgnome-desktop/libgnome/gnome-desktop-item.h b/libgnome-desktop/libgnome/gnome-desktop-item.h index 09c39532..c05ae977 100644 --- a/libgnome-desktop/libgnome/gnome-desktop-item.h +++ b/libgnome-desktop/libgnome/gnome-desktop-item.h @@ -24,8 +24,8 @@ @NOTATION@ */ -#ifndef __GNOME_DITEM_H__ -#define __GNOME_DITEM_H__ 1 +#ifndef GNOME_DITEM_H +#define GNOME_DITEM_H BEGIN_GNOME_DECLS @@ -54,9 +54,9 @@ typedef enum { } GnomeDesktopItemFormat; typedef enum { - GNOME_DESKTOP_ITEM_UNCHANGED=0, - GNOME_DESKTOP_ITEM_CHANGED=1, - GNOME_DESKTOP_ITEM_DISAPPEARED=2 + GNOME_DESKTOP_ITEM_UNCHANGED = 0, + GNOME_DESKTOP_ITEM_CHANGED = 1, + GNOME_DESKTOP_ITEM_DISAPPEARED = 2 } GnomeDesktopItemStatus; typedef struct _GnomeDesktopItem GnomeDesktopItem; @@ -149,4 +149,4 @@ void gnome_desktop_item_set_location (GnomeDesktopItem END_GNOME_DECLS -#endif /* __GNOME_DITEM_H__ */ +#endif /* GNOME_DITEM_H */ -- cgit v1.2.1