summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Proschofsky <suka@gentoo.org>2009-09-03 08:14:05 +0000
committerAndreas Proschofsky <suka@gentoo.org>2009-09-03 08:14:05 +0000
commit2291f5484f52c56ba76dbf3d212e58664ceda32f (patch)
treef2467e6edbd06fc5bb9b340c28e1fa13eac480c8
parentAdd missing patch for clutter (diff)
downloadsuka-2291f5484f52c56ba76dbf3d212e58664ceda32f.tar.gz
suka-2291f5484f52c56ba76dbf3d212e58664ceda32f.tar.bz2
suka-2291f5484f52c56ba76dbf3d212e58664ceda32f.zip
Removing gnome-main-menu stuff, not using it anymore, so won't maintain
svn path=/; revision=150
-rw-r--r--gnome-base/gnome-desktop/Manifest6
-rw-r--r--gnome-base/gnome-desktop/files/gnome-desktop-2.23.2-xsltproc-nonet.patch11
-rw-r--r--gnome-base/gnome-desktop/files/gnome-desktop-recently-used-apps-2.patch2696
-rw-r--r--gnome-base/gnome-desktop/gnome-desktop-2.22.3.ebuild43
-rw-r--r--gnome-base/gnome-desktop/gnome-desktop-2.24.1.ebuild41
-rw-r--r--gnome-base/gnome-panel/Manifest7
-rw-r--r--gnome-base/gnome-panel/files/gnome-panel-2.24.1-logout.patch.gzbin7181 -> 0 bytes
-rw-r--r--gnome-base/gnome-panel/files/gnome-panel-alt-f1-slab.patch47
-rw-r--r--gnome-base/gnome-panel/files/gnome-panel-recently-used-apps.patch197
-rw-r--r--gnome-base/gnome-panel/gnome-panel-2.22.2.ebuild87
-rw-r--r--gnome-base/gnome-panel/gnome-panel-2.24.1-r1.ebuild87
-rw-r--r--gnome-base/gnome-shell/Manifest2
-rw-r--r--gnome-base/gnome-shell/gnome-shell-2.27.1.ebuild2
-rw-r--r--gnome-extra/gnome-main-menu/Manifest8
-rw-r--r--gnome-extra/gnome-main-menu/files/03-configure.in-remove-gtk-doc.patch13
-rw-r--r--gnome-extra/gnome-main-menu/files/03-tracker-search.patch13
-rw-r--r--gnome-extra/gnome-main-menu/files/04-disable-search.patch13
-rw-r--r--gnome-extra/gnome-main-menu/files/gnome-main-menu-gentooifications.patch12
-rw-r--r--gnome-extra/gnome-main-menu/files/gnome-main-menu-libssui.patch35
-rw-r--r--gnome-extra/gnome-main-menu/gnome-main-menu-0.9.9.ebuild74
-rw-r--r--gnome-extra/gnome-main-menu/gnome-main-menu-9999.ebuild79
-rw-r--r--gnome-extra/libssui/Manifest20
-rw-r--r--gnome-extra/libssui/files/libssui-missing-options.patch305
-rw-r--r--gnome-extra/libssui/files/libssui-pm-dbus.patch44
-rw-r--r--gnome-extra/libssui/files/libssui-wrong-icon.patch26
-rw-r--r--gnome-extra/libssui/libssui-0.5.7.ebuild33
26 files changed, 2 insertions, 3899 deletions
diff --git a/gnome-base/gnome-desktop/Manifest b/gnome-base/gnome-desktop/Manifest
deleted file mode 100644
index bcf28c5..0000000
--- a/gnome-base/gnome-desktop/Manifest
+++ /dev/null
@@ -1,6 +0,0 @@
-AUX gnome-desktop-2.23.2-xsltproc-nonet.patch 540 RMD160 be2a9623378b6e0c21fcb4f53e51dc8c7baf2399 SHA1 e62b874b6b3c767efcb63ed944008e9f6d649b16 SHA256 56ea21be5669e32cb4f1e10ff8ed7ed20f2ebf91edd1b18d53afce4e1b337e19
-AUX gnome-desktop-recently-used-apps-2.patch 64661 RMD160 1fa1ea9e457c6dbc368bcb5f67bc71063e2015ef SHA1 22df01a941346769570081b5160ec5540714b029 SHA256 20dca8569233083543e07f4bd9b0c545a613fe2e9d07adabf82f62e574fde1af
-DIST gnome-desktop-2.22.3.tar.bz2 1444103 RMD160 f1bbba787e3924df0fac25c56f3d70334097ad1f SHA1 89d7938a73735e6e2d1309f36d5a4be47eb41cca SHA256 10c087e16c530eb2d09c5794ba5c0d6d2ec6e548860e13f31b2f2375df964dc9
-DIST gnome-desktop-2.24.1.tar.bz2 1508429 RMD160 980538be5fb4ebeff0e66a89dc2a051f679b86af SHA1 d4b396df792c5bd1b496ff3e89949b1d4d2d048e SHA256 ec7beb0886dfaeebb506b2f0e6e255b4254b3ca812ab6f69a6cafb3d9e492a40
-EBUILD gnome-desktop-2.22.3.ebuild 1148 RMD160 8903aa7a9c3ad731c37c475b19362b02b189fed2 SHA1 cd1e12bc063e8cced276b25e278c6fdbe380969e SHA256 84be01a326578399e4c0b5a5688d82273c06472e75dbd8a36ef33715263c21b2
-EBUILD gnome-desktop-2.24.1.ebuild 1141 RMD160 6e026fb6b1222b48784008af155c480d5d1be2be SHA1 ed527c8eb45bae3c8062ce525611d8cceefbf6f1 SHA256 5ad2b4ca164d8b3d27fdd7a1acb0ba0931b9dfa2145365e9ae2de0d2b29e2ac9
diff --git a/gnome-base/gnome-desktop/files/gnome-desktop-2.23.2-xsltproc-nonet.patch b/gnome-base/gnome-desktop/files/gnome-desktop-2.23.2-xsltproc-nonet.patch
deleted file mode 100644
index c0c7de2..0000000
--- a/gnome-base/gnome-desktop/files/gnome-desktop-2.23.2-xsltproc-nonet.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-diff --exclude-from=/home/dang/.scripts/diffrc -up -ruN gnome-desktop-2.23.2.orig/gnome-doc-utils.make gnome-desktop-2.23.2/gnome-doc-utils.make
---- gnome-desktop-2.23.2.orig/gnome-doc-utils.make 2008-05-14 05:10:01.000000000 -0400
-+++ gnome-desktop-2.23.2/gnome-doc-utils.make 2008-05-28 12:01:40.000000000 -0400
-@@ -142,6 +142,7 @@ endif
- ## @@ Rules for OMF Files
-
- db2omf_args = \
-+ --nonet \
- --stringparam db2omf.basename $(DOC_MODULE) \
- --stringparam db2omf.format $(3) \
- --stringparam db2omf.dtd \
diff --git a/gnome-base/gnome-desktop/files/gnome-desktop-recently-used-apps-2.patch b/gnome-base/gnome-desktop/files/gnome-desktop-recently-used-apps-2.patch
deleted file mode 100644
index 722c3f5..0000000
--- a/gnome-base/gnome-desktop/files/gnome-desktop-recently-used-apps-2.patch
+++ /dev/null
@@ -1,2696 +0,0 @@
-diff -uprN gnome-desktop-2.16.1-pristine/libgnome-desktop/Makefile.am gnome-desktop-2.16.1/libgnome-desktop/Makefile.am
---- gnome-desktop-2.16.1-pristine/libgnome-desktop/Makefile.am 2006-06-04 07:53:09.000000000 -0400
-+++ gnome-desktop-2.16.1/libgnome-desktop/Makefile.am 2006-10-23 16:19:45.000000000 -0400
-@@ -19,6 +19,10 @@
- libgnome_desktop_2_la_SOURCES = \
- gnome-desktop-item.c \
- gnome-ditem-edit.c \
-+ egg-recent-item.h \
-+ egg-recent-item.c \
-+ egg-recent-model.h \
-+ egg-recent-model.c \
- gnome-hint.c \
- gnome-bg.c
-
-
-diff -uprN gnome-desktop-2.16.1-pristine/libgnome-desktop/egg-recent-item.c gnome-desktop-2.16.1/libgnome-desktop/egg-recent-item.c
---- gnome-desktop-2.16.1-pristine/libgnome-desktop/egg-recent-item.c 1969-12-31 19:00:00.000000000 -0500
-+++ gnome-desktop-2.16.1/libgnome-desktop/egg-recent-item.c 2006-10-23 16:19:45.000000000 -0400
-@@ -0,0 +1,426 @@
-+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
-+/*
-+ * 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:
-+ * James Willcox <jwillcox@cs.indiana.edu>
-+ */
-+
-+
-+#include <stdio.h>
-+#include <string.h>
-+#include <glib.h>
-+#include <libgnomevfs/gnome-vfs.h>
-+#include <libgnomevfs/gnome-vfs-mime-utils.h>
-+#include "egg-recent-item.h"
-+
-+
-+
-+EggRecentItem *
-+egg_recent_item_new (void)
-+{
-+ EggRecentItem *item;
-+
-+ item = g_new (EggRecentItem, 1);
-+
-+ item->groups = NULL;
-+ item->private_data = FALSE;
-+ item->uri = NULL;
-+ item->mime_type = NULL;
-+ item->mime_type_is_explicit = FALSE;
-+
-+ item->refcount = 1;
-+
-+ return item;
-+}
-+
-+static void
-+egg_recent_item_free (EggRecentItem *item)
-+{
-+ if (item->uri)
-+ g_free (item->uri);
-+
-+ if (item->mime_type)
-+ g_free (item->mime_type);
-+
-+ if (item->groups) {
-+ g_list_foreach (item->groups, (GFunc)g_free, NULL);
-+ g_list_free (item->groups);
-+ item->groups = NULL;
-+ }
-+
-+ g_free (item);
-+}
-+
-+EggRecentItem *
-+egg_recent_item_ref (EggRecentItem *item)
-+{
-+ item->refcount++;
-+ return item;
-+}
-+
-+EggRecentItem *
-+egg_recent_item_unref (EggRecentItem *item)
-+{
-+ item->refcount--;
-+
-+ if (item->refcount == 0) {
-+ egg_recent_item_free (item);
-+ }
-+
-+ return item;
-+}
-+
-+
-+EggRecentItem *
-+egg_recent_item_new_from_uri (const gchar *uri)
-+{
-+ EggRecentItem *item;
-+
-+ g_return_val_if_fail (uri != NULL, NULL);
-+
-+ item = egg_recent_item_new ();
-+
-+ if (!egg_recent_item_set_uri (item ,uri)) {
-+ egg_recent_item_free (item);
-+ return NULL;
-+ }
-+
-+ return item;
-+}
-+
-+static void
-+egg_recent_item_update_mime_type (EggRecentItem *item)
-+{
-+ if (!item->mime_type_is_explicit) {
-+ g_free (item->mime_type);
-+ item->mime_type = NULL;
-+
-+ if (item->uri)
-+ item->mime_type = gnome_vfs_get_mime_type (item->uri);
-+
-+ if (!item->mime_type)
-+ item->mime_type = g_strdup (GNOME_VFS_MIME_TYPE_UNKNOWN);
-+ }
-+}
-+
-+gboolean
-+egg_recent_item_set_uri (EggRecentItem *item, const gchar *uri)
-+{
-+ gchar *utf8_uri;
-+
-+ /* if G_BROKEN_FILENAMES is not set, this should succede */
-+ if (g_utf8_validate (uri, -1, NULL)) {
-+ item->uri = gnome_vfs_make_uri_from_input (uri);
-+ } else {
-+ utf8_uri = g_filename_to_utf8 (uri, -1, NULL, NULL, NULL);
-+
-+ if (utf8_uri == NULL) {
-+ g_warning ("Couldn't convert URI to UTF-8");
-+ return FALSE;
-+ }
-+
-+ if (g_utf8_validate (utf8_uri, -1, NULL)) {
-+ item->uri = gnome_vfs_make_uri_from_input (utf8_uri);
-+ } else {
-+ g_free (utf8_uri);
-+ return FALSE;
-+ }
-+
-+ g_free (utf8_uri);
-+ }
-+
-+ return TRUE;
-+}
-+
-+gchar *
-+egg_recent_item_get_uri (const EggRecentItem *item)
-+{
-+ return g_strdup (item->uri);
-+}
-+
-+G_CONST_RETURN gchar *
-+egg_recent_item_peek_uri (const EggRecentItem *item)
-+{
-+ return item->uri;
-+}
-+
-+gchar *
-+egg_recent_item_get_uri_utf8 (const EggRecentItem *item)
-+{
-+ /* this could fail, but it's not likely, since we've already done it
-+ * once in set_uri()
-+ */
-+ return g_filename_to_utf8 (item->uri, -1, NULL, NULL, NULL);
-+}
-+
-+gchar *
-+egg_recent_item_get_uri_for_display (const EggRecentItem *item)
-+{
-+ return gnome_vfs_format_uri_for_display (item->uri);
-+}
-+
-+/* Stolen from gnome_vfs_make_valid_utf8() */
-+static char *
-+make_valid_utf8 (const char *name)
-+{
-+ GString *string;
-+ const char *remainder, *invalid;
-+ int remaining_bytes, valid_bytes;
-+
-+ string = NULL;
-+ remainder = name;
-+ remaining_bytes = name ? strlen (name) : 0;
-+
-+ while (remaining_bytes != 0) {
-+ if (g_utf8_validate (remainder, remaining_bytes, &invalid))
-+ break;
-+
-+ valid_bytes = invalid - remainder;
-+
-+ if (string == NULL)
-+ string = g_string_sized_new (remaining_bytes);
-+
-+ g_string_append_len (string, remainder, valid_bytes);
-+ g_string_append_c (string, '?');
-+
-+ remaining_bytes -= valid_bytes + 1;
-+ remainder = invalid + 1;
-+ }
-+
-+ if (string == NULL)
-+ return g_strdup (name);
-+
-+ g_string_append (string, remainder);
-+/* g_string_append (string, _(" (invalid file name)")); */
-+ g_assert (g_utf8_validate (string->str, -1, NULL));
-+
-+ return g_string_free (string, FALSE);
-+}
-+
-+static gchar *
-+get_uri_shortname_for_display (GnomeVFSURI *uri)
-+{
-+ gchar *name;
-+ gboolean validated;
-+
-+ validated = FALSE;
-+ name = gnome_vfs_uri_extract_short_name (uri);
-+
-+ if (name == NULL)
-+ {
-+ name = gnome_vfs_uri_to_string (uri, GNOME_VFS_URI_HIDE_PASSWORD);
-+ }
-+ else if (g_ascii_strcasecmp (uri->method_string, "file") == 0)
-+ {
-+ gchar *text_uri;
-+ gchar *local_file;
-+ text_uri = gnome_vfs_uri_to_string (uri, GNOME_VFS_URI_HIDE_PASSWORD);
-+ local_file = gnome_vfs_get_local_path_from_uri (text_uri);
-+
-+ if (local_file != NULL)
-+ {
-+ g_free (name);
-+ name = g_filename_display_basename (local_file);
-+ validated = TRUE;
-+ }
-+
-+ g_free (local_file);
-+ g_free (text_uri);
-+ }
-+ else if (!gnome_vfs_uri_has_parent (uri))
-+ {
-+ const gchar *method;
-+
-+ method = uri->method_string;
-+
-+ if (name == NULL ||
-+ strcmp (name, GNOME_VFS_URI_PATH_STR) == 0)
-+ {
-+ g_free (name);
-+ name = g_strdup (method);
-+ }
-+ else
-+ {
-+ gchar *tmp;
-+
-+ tmp = name;
-+ name = g_strdup_printf ("%s: %s", method, name);
-+ g_free (tmp);
-+ }
-+ }
-+
-+ if (!validated && !g_utf8_validate (name, -1, NULL))
-+ {
-+ gchar *utf8_name;
-+
-+ utf8_name = make_valid_utf8 (name);
-+ g_free (name);
-+ name = utf8_name;
-+ }
-+
-+ return name;
-+}
-+
-+/**
-+ * egg_recent_item_get_short_name:
-+ * @item: an #EggRecentItem
-+ *
-+ * Computes a valid UTF-8 string that can be used as the name of the item in a
-+ * menu or list. For example, calling this function on an item that refers to
-+ * "file:///foo/bar.txt" will yield "bar.txt".
-+ *
-+ * Return value: A newly-allocated string in UTF-8 encoding; free it with
-+ * g_free().
-+ **/
-+gchar *
-+egg_recent_item_get_short_name (const EggRecentItem *item)
-+{
-+ GnomeVFSURI *uri;
-+ gchar *short_name;
-+
-+ g_return_val_if_fail (item != NULL, NULL);
-+
-+ if (item->uri == NULL)
-+ return NULL;
-+
-+ uri = gnome_vfs_uri_new (item->uri);
-+ if (uri == NULL)
-+ return NULL;
-+
-+ short_name = get_uri_shortname_for_display (uri);
-+
-+ gnome_vfs_uri_unref (uri);
-+
-+ return short_name;
-+}
-+
-+void
-+egg_recent_item_set_mime_type (EggRecentItem *item, const gchar *mime)
-+{
-+ g_free (item->mime_type);
-+ item->mime_type = NULL;
-+
-+ if (mime && mime[0]) {
-+ item->mime_type_is_explicit = TRUE;
-+ item->mime_type = g_strdup (mime);
-+ } else {
-+ item->mime_type_is_explicit = FALSE;
-+ }
-+}
-+
-+gchar *
-+egg_recent_item_get_mime_type (EggRecentItem *item)
-+{
-+ egg_recent_item_update_mime_type (item);
-+
-+ return g_strdup (item->mime_type);
-+}
-+
-+void
-+egg_recent_item_set_timestamp (EggRecentItem *item, time_t timestamp)
-+{
-+ if (timestamp == (time_t) -1)
-+ time (&timestamp);
-+
-+ item->timestamp = timestamp;
-+}
-+
-+time_t
-+egg_recent_item_get_timestamp (const EggRecentItem *item)
-+{
-+ return item->timestamp;
-+}
-+
-+G_CONST_RETURN GList *
-+egg_recent_item_get_groups (const EggRecentItem *item)
-+{
-+ return item->groups;
-+}
-+
-+gboolean
-+egg_recent_item_in_group (const EggRecentItem *item, const gchar *group_name)
-+{
-+ GList *tmp;
-+
-+ tmp = item->groups;
-+ while (tmp != NULL) {
-+ gchar *val = (gchar *)tmp->data;
-+
-+ if (strcmp (group_name, val) == 0)
-+ return TRUE;
-+
-+ tmp = tmp->next;
-+ }
-+
-+ return FALSE;
-+}
-+
-+void
-+egg_recent_item_add_group (EggRecentItem *item, const gchar *group_name)
-+{
-+ g_return_if_fail (group_name != NULL);
-+
-+ if (!egg_recent_item_in_group (item, group_name))
-+ item->groups = g_list_append (item->groups, g_strdup (group_name));
-+}
-+
-+void
-+egg_recent_item_remove_group (EggRecentItem *item, const gchar *group_name)
-+{
-+ GList *tmp;
-+
-+ g_return_if_fail (group_name != NULL);
-+
-+ tmp = item->groups;
-+ while (tmp != NULL) {
-+ gchar *val = (gchar *)tmp->data;
-+
-+ if (strcmp (group_name, val) == 0) {
-+ item->groups = g_list_remove (item->groups,
-+ val);
-+ g_free (val);
-+ break;
-+ }
-+
-+ tmp = tmp->next;
-+ }
-+}
-+
-+void
-+egg_recent_item_set_private (EggRecentItem *item, gboolean priv)
-+{
-+ item->private_data = priv;
-+}
-+
-+gboolean
-+egg_recent_item_get_private (const EggRecentItem *item)
-+{
-+ return item->private_data;
-+}
-+
-+GType
-+egg_recent_item_get_type (void)
-+{
-+ static GType boxed_type = 0;
-+
-+ if (!boxed_type) {
-+ boxed_type = g_boxed_type_register_static ("EggRecentItem",
-+ (GBoxedCopyFunc)egg_recent_item_ref,
-+ (GBoxedFreeFunc)egg_recent_item_unref);
-+ }
-+
-+ return boxed_type;
-+}
-diff -uprN gnome-desktop-2.16.1-pristine/libgnome-desktop/egg-recent-item.h gnome-desktop-2.16.1/libgnome-desktop/egg-recent-item.h
---- gnome-desktop-2.16.1-pristine/libgnome-desktop/egg-recent-item.h 1969-12-31 19:00:00.000000000 -0500
-+++ gnome-desktop-2.16.1/libgnome-desktop/egg-recent-item.h 2006-10-23 16:19:45.000000000 -0400
-@@ -0,0 +1,80 @@
-+
-+#ifndef __EGG_RECENT_ITEM_H__
-+#define __EGG_RECENT_ITEM_H__
-+
-+#include <time.h>
-+#include <glib.h>
-+#include <glib-object.h>
-+
-+G_BEGIN_DECLS
-+
-+#define EGG_TYPE_RECENT_ITEM (egg_recent_item_get_type ())
-+
-+#define EGG_RECENT_ITEM_LIST_UNREF(list) \
-+ g_list_foreach (list, (GFunc)egg_recent_item_unref, NULL); \
-+ g_list_free (list);
-+
-+typedef struct _EggRecentItem EggRecentItem;
-+
-+struct _EggRecentItem {
-+ /* do not access any of these directly */
-+ gchar *uri;
-+ gchar *mime_type;
-+ time_t timestamp;
-+
-+ gboolean private_data;
-+
-+ GList *groups;
-+
-+ int refcount;
-+
-+ guint mime_type_is_explicit : 1;
-+};
-+
-+GType egg_recent_item_get_type (void) G_GNUC_CONST;
-+
-+/* constructors */
-+EggRecentItem * egg_recent_item_new (void);
-+
-+EggRecentItem * egg_recent_item_ref (EggRecentItem *item);
-+EggRecentItem * egg_recent_item_unref (EggRecentItem *item);
-+
-+/* automatically fetches the mime type, etc */
-+EggRecentItem * egg_recent_item_new_from_uri (const gchar *uri);
-+
-+gboolean egg_recent_item_set_uri (EggRecentItem *item, const gchar *uri);
-+gchar * egg_recent_item_get_uri (const EggRecentItem *item);
-+gchar * egg_recent_item_get_uri_utf8 (const EggRecentItem *item);
-+gchar * egg_recent_item_get_uri_for_display (const EggRecentItem *item);
-+gchar * egg_recent_item_get_short_name (const EggRecentItem *item);
-+
-+void egg_recent_item_set_mime_type (EggRecentItem *item, const gchar *mime);
-+gchar * egg_recent_item_get_mime_type (EggRecentItem *item);
-+
-+void egg_recent_item_set_timestamp (EggRecentItem *item, time_t timestamp);
-+time_t egg_recent_item_get_timestamp (const EggRecentItem *item);
-+
-+G_CONST_RETURN gchar *egg_recent_item_peek_uri (const EggRecentItem *item);
-+
-+
-+/* groups */
-+G_CONST_RETURN GList * egg_recent_item_get_groups (const EggRecentItem *item);
-+
-+gboolean egg_recent_item_in_group (const EggRecentItem *item,
-+ const gchar *group_name);
-+
-+void egg_recent_item_add_group (EggRecentItem *item,
-+ const gchar *group_name);
-+
-+void egg_recent_item_remove_group (EggRecentItem *item,
-+ const gchar *group_name);
-+
-+void egg_recent_item_set_private (EggRecentItem *item,
-+ gboolean priv);
-+
-+gboolean egg_recent_item_get_private (const EggRecentItem *item);
-+
-+
-+G_END_DECLS
-+
-+#endif /* __EGG_RECENT_ITEM_H__ */
-diff -uprN gnome-desktop-2.16.1-pristine/libgnome-desktop/egg-recent-model.c gnome-desktop-2.16.1/libgnome-desktop/egg-recent-model.c
---- gnome-desktop-2.16.1-pristine/libgnome-desktop/egg-recent-model.c 1969-12-31 19:00:00.000000000 -0500
-+++ gnome-desktop-2.16.1/libgnome-desktop/egg-recent-model.c 2006-10-23 16:19:45.000000000 -0400
-@@ -0,0 +1,1965 @@
-+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
-+/*
-+ * 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:
-+ * James Willcox <jwillcox@cs.indiana.edu>
-+ */
-+
-+#ifdef HAVE_CONFIG_H
-+#include <config.h>
-+#endif
-+
-+#include <stdio.h>
-+#include <string.h>
-+#include <errno.h>
-+#include <stdlib.h>
-+#include <unistd.h>
-+#include <fcntl.h>
-+#include <sys/time.h>
-+#include <sys/stat.h>
-+#include <time.h>
-+#include <gtk/gtk.h>
-+#include <libgnomevfs/gnome-vfs.h>
-+#include <libgnomevfs/gnome-vfs-mime-utils.h>
-+#include <gconf/gconf-client.h>
-+
-+#define EGG_ENABLE_RECENT_FILES
-+#include "egg-recent-model.h"
-+#include "egg-recent-item.h"
-+
-+#define EGG_RECENT_MODEL_FILE_PATH "/.recently-used"
-+#define EGG_RECENT_MODEL_BUFFER_SIZE 8192
-+
-+#define EGG_RECENT_MODEL_MAX_ITEMS 500
-+#define EGG_RECENT_MODEL_DEFAULT_LIMIT 10
-+#define EGG_RECENT_MODEL_TIMEOUT_LENGTH 200
-+#define EGG_RECENT_MODEL_POLL_TIME 3
-+
-+/* needed for Darwin */
-+#if !HAVE_DECL_LOCKF
-+int lockf (int filedes, int function, off_t size);
-+#endif
-+
-+#define EGG_RECENT_MODEL_KEY_DIR "/desktop/gnome/recent_files"
-+#define EGG_RECENT_MODEL_DEFAULT_LIMIT_KEY EGG_RECENT_MODEL_KEY_DIR "/default_limit"
-+#define EGG_RECENT_MODEL_EXPIRE_KEY EGG_RECENT_MODEL_KEY_DIR "/expire"
-+
-+struct _EggRecentModelPrivate {
-+ GSList *mime_filter_values; /* list of mime types we allow */
-+ GSList *group_filter_values; /* list of groups we allow */
-+ GSList *scheme_filter_values; /* list of URI schemes we allow */
-+
-+ EggRecentModelSort sort_type; /* type of sorting to be done */
-+
-+ int limit; /* soft limit for length of the list */
-+ int expire_days; /* number of days to hold an item */
-+
-+ char *path; /* path to the file we store stuff in */
-+
-+ GHashTable *monitors;
-+
-+ GnomeVFSMonitorHandle *monitor;
-+
-+ GConfClient *client;
-+ gboolean use_default_limit;
-+
-+ guint limit_change_notify_id;
-+ guint expiration_change_notify_id;
-+
-+ guint changed_timeout;
-+ guint poll_timeout;
-+ time_t last_mtime;
-+};
-+
-+/* signals */
-+enum {
-+ CHANGED,
-+ LAST_SIGNAL
-+};
-+
-+static GType model_signals[LAST_SIGNAL] = { 0 };
-+
-+/* properties */
-+enum {
-+ PROP_BOGUS,
-+ PROP_MIME_FILTERS,
-+ PROP_GROUP_FILTERS,
-+ PROP_SCHEME_FILTERS,
-+ PROP_SORT_TYPE,
-+ PROP_LIMIT
-+};
-+
-+typedef struct {
-+ GSList *states;
-+ GList *items;
-+ EggRecentItem *current_item;
-+} ParseInfo;
-+
-+typedef enum {
-+ STATE_START,
-+ STATE_RECENT_FILES,
-+ STATE_RECENT_ITEM,
-+ STATE_URI,
-+ STATE_MIME_TYPE,
-+ STATE_TIMESTAMP,
-+ STATE_PRIVATE,
-+ STATE_GROUPS,
-+ STATE_GROUP
-+} ParseState;
-+
-+typedef struct {
-+ EggRecentModel *model;
-+ GList *list;
-+} ChangedData;
-+
-+#define TAG_RECENT_FILES "RecentFiles"
-+#define TAG_RECENT_ITEM "RecentItem"
-+#define TAG_URI "URI"
-+#define TAG_MIME_TYPE "Mime-Type"
-+#define TAG_TIMESTAMP "Timestamp"
-+#define TAG_PRIVATE "Private"
-+#define TAG_GROUPS "Groups"
-+#define TAG_GROUP "Group"
-+
-+static void start_element_handler (GMarkupParseContext *context,
-+ const gchar *element_name,
-+ const gchar **attribute_names,
-+ const gchar **attribute_values,
-+ gpointer user_data,
-+ GError **error);
-+
-+static void end_element_handler (GMarkupParseContext *context,
-+ const gchar *element_name,
-+ gpointer user_data,
-+ GError **error);
-+
-+static void text_handler (GMarkupParseContext *context,
-+ const gchar *text,
-+ gsize text_len,
-+ gpointer user_data,
-+ GError **error);
-+
-+static void error_handler (GMarkupParseContext *context,
-+ GError *error,
-+ gpointer user_data);
-+
-+static GMarkupParser parser = {start_element_handler, end_element_handler,
-+ text_handler,
-+ NULL,
-+ error_handler};
-+
-+static GObjectClass *parent_class;
-+
-+static void egg_recent_model_clear_mime_filter (EggRecentModel *model);
-+static void egg_recent_model_clear_group_filter (EggRecentModel *model);
-+static void egg_recent_model_clear_scheme_filter (EggRecentModel *model);
-+
-+static GObjectClass *parent_class;
-+
-+static gboolean
-+egg_recent_model_string_match (const GSList *list, const gchar *str)
-+{
-+ const GSList *tmp;
-+
-+ if (list == NULL || str == NULL)
-+ return TRUE;
-+
-+ tmp = list;
-+
-+ while (tmp) {
-+ if (g_pattern_match_string (tmp->data, str))
-+ return TRUE;
-+
-+ tmp = tmp->next;
-+ }
-+
-+ return FALSE;
-+}
-+
-+static gboolean
-+egg_recent_model_write_raw (EggRecentModel *model, FILE *file,
-+ const gchar *content)
-+{
-+ int len;
-+ int fd;
-+ struct stat sbuf;
-+
-+ rewind (file);
-+
-+ len = strlen (content);
-+ fd = fileno (file);
-+
-+ if (fstat (fd, &sbuf) < 0)
-+ g_warning ("Couldn't stat XML document.");
-+
-+ if ((off_t)len < sbuf.st_size) {
-+ ftruncate (fd, len);
-+ }
-+
-+ if (fputs (content, file) == EOF)
-+ return FALSE;
-+
-+#ifndef G_OS_WIN32
-+ fsync (fd);
-+#endif
-+ rewind (file);
-+
-+ return TRUE;
-+}
-+
-+static GList *
-+egg_recent_model_delete_from_list (GList *list,
-+ const gchar *uri)
-+{
-+ GList *tmp;
-+
-+ if (!uri)
-+ return list;
-+
-+ tmp = list;
-+
-+ while (tmp) {
-+ EggRecentItem *item = tmp->data;
-+ GList *next;
-+
-+ next = tmp->next;
-+
-+ if (!strcmp (egg_recent_item_peek_uri (item), uri)) {
-+ egg_recent_item_unref (item);
-+
-+ list = g_list_remove_link (list, tmp);
-+ g_list_free_1 (tmp);
-+ }
-+
-+ tmp = next;
-+ }
-+
-+ return list;
-+}
-+
-+static void
-+egg_recent_model_add_new_groups (EggRecentItem *item,
-+ EggRecentItem *upd_item)
-+{
-+ const GList *tmp;
-+
-+ tmp = egg_recent_item_get_groups (upd_item);
-+
-+ while (tmp) {
-+ char *group = tmp->data;
-+
-+ if (!egg_recent_item_in_group (item, group))
-+ egg_recent_item_add_group (item, group);
-+
-+ tmp = tmp->next;
-+ }
-+}
-+
-+static gboolean
-+egg_recent_model_update_item (GList *items, EggRecentItem *upd_item)
-+{
-+ GList *tmp;
-+ const char *uri;
-+
-+ uri = egg_recent_item_peek_uri (upd_item);
-+
-+ tmp = items;
-+
-+ while (tmp) {
-+ EggRecentItem *item = tmp->data;
-+
-+ if (gnome_vfs_uris_match (egg_recent_item_peek_uri (item), uri)) {
-+ egg_recent_item_set_timestamp (item, (time_t) -1);
-+
-+ egg_recent_model_add_new_groups (item, upd_item);
-+
-+ return TRUE;
-+ }
-+
-+ tmp = tmp->next;
-+ }
-+
-+ return FALSE;
-+}
-+
-+static gchar *
-+egg_recent_model_read_raw (EggRecentModel *model, FILE *file)
-+{
-+ GString *string;
-+ char buf[EGG_RECENT_MODEL_BUFFER_SIZE];
-+
-+ rewind (file);
-+
-+ string = g_string_new (NULL);
-+ while (fgets (buf, EGG_RECENT_MODEL_BUFFER_SIZE, file)) {
-+ string = g_string_append (string, buf);
-+ }
-+
-+ rewind (file);
-+
-+ return g_string_free (string, FALSE);
-+}
-+
-+
-+
-+static ParseInfo *
-+parse_info_init (void)
-+{
-+ ParseInfo *retval;
-+
-+ retval = g_new0 (ParseInfo, 1);
-+ retval->states = g_slist_prepend (NULL, STATE_START);
-+ retval->items = NULL;
-+
-+ return retval;
-+}
-+
-+static void
-+parse_info_free (ParseInfo *info)
-+{
-+ g_slist_free (info->states);
-+ g_free (info);
-+}
-+
-+static void
-+push_state (ParseInfo *info,
-+ ParseState state)
-+{
-+ info->states = g_slist_prepend (info->states, GINT_TO_POINTER (state));
-+}
-+
-+static void
-+pop_state (ParseInfo *info)
-+{
-+ g_return_if_fail (info->states != NULL);
-+
-+ info->states = g_slist_remove (info->states, info->states->data);
-+}
-+
-+static ParseState
-+peek_state (ParseInfo *info)
-+{
-+ g_return_val_if_fail (info->states != NULL, STATE_START);
-+
-+ return GPOINTER_TO_INT (info->states->data);
-+}
-+
-+#define ELEMENT_IS(name) (strcmp (element_name, (name)) == 0)
-+
-+static gboolean
-+valid_element (ParseInfo *info,
-+ int valid_parent_state,
-+ const gchar *element_name,
-+ const gchar *valid_element,
-+ GError **error)
-+{
-+ if (peek_state (info) != valid_parent_state) {
-+ g_set_error (error,
-+ G_MARKUP_ERROR,
-+ G_MARKUP_ERROR_INVALID_CONTENT,
-+ "Unexpected tag '%s', tag '%s' expected",
-+ element_name, valid_element);
-+ return FALSE;
-+ }
-+
-+ return TRUE;
-+}
-+
-+static void
-+start_element_handler (GMarkupParseContext *context,
-+ const gchar *element_name,
-+ const gchar **attribute_names,
-+ const gchar **attribute_values,
-+ gpointer user_data,
-+ GError **error)
-+{
-+ ParseInfo *info = (ParseInfo *)user_data;
-+
-+ if (ELEMENT_IS (TAG_RECENT_FILES))
-+ push_state (info, STATE_RECENT_FILES);
-+ else if (ELEMENT_IS (TAG_RECENT_ITEM)) {
-+ if (valid_element (info, STATE_RECENT_FILES,
-+ TAG_RECENT_ITEM, TAG_RECENT_FILES, error)) {
-+ info->current_item = egg_recent_item_new ();
-+ push_state (info, STATE_RECENT_ITEM);
-+ }
-+ } else if (ELEMENT_IS (TAG_URI)) {
-+ if (valid_element (info, STATE_RECENT_ITEM,
-+ TAG_URI, TAG_RECENT_ITEM, error)) {
-+ push_state (info, STATE_URI);
-+ }
-+ } else if (ELEMENT_IS (TAG_MIME_TYPE)) {
-+ if (valid_element (info, STATE_RECENT_ITEM,
-+ TAG_MIME_TYPE, TAG_RECENT_ITEM, error)) {
-+ push_state (info, STATE_MIME_TYPE);
-+ }
-+ } else if (ELEMENT_IS (TAG_TIMESTAMP)) {
-+ if (valid_element (info, STATE_RECENT_ITEM,
-+ TAG_TIMESTAMP, TAG_RECENT_ITEM, error)) {
-+ push_state (info, STATE_TIMESTAMP);
-+ }
-+ } else if (ELEMENT_IS (TAG_PRIVATE)) {
-+ if (valid_element (info, STATE_RECENT_ITEM,
-+ TAG_PRIVATE, TAG_RECENT_ITEM, error)) {
-+ push_state (info, STATE_PRIVATE);
-+ egg_recent_item_set_private (info->current_item, TRUE);
-+ }
-+ } else if (ELEMENT_IS (TAG_GROUPS)) {
-+ if (valid_element (info, STATE_RECENT_ITEM,
-+ TAG_GROUPS, TAG_RECENT_ITEM, error)) {
-+ push_state (info, STATE_GROUPS);
-+ }
-+ } else if (ELEMENT_IS (TAG_GROUP)) {
-+ if (valid_element (info, STATE_GROUPS,
-+ TAG_GROUP, TAG_GROUPS, error)) {
-+ push_state (info, STATE_GROUP);
-+ }
-+ }
-+}
-+
-+static gint
-+list_compare_func_mru (gpointer a, gpointer b)
-+{
-+ EggRecentItem *item_a = (EggRecentItem *)a;
-+ EggRecentItem *item_b = (EggRecentItem *)b;
-+
-+ return item_a->timestamp < item_b->timestamp;
-+}
-+
-+static gint
-+list_compare_func_lru (gpointer a, gpointer b)
-+{
-+ EggRecentItem *item_a = (EggRecentItem *)a;
-+ EggRecentItem *item_b = (EggRecentItem *)b;
-+
-+ return item_a->timestamp > item_b->timestamp;
-+}
-+
-+
-+
-+static void
-+end_element_handler (GMarkupParseContext *context,
-+ const gchar *element_name,
-+ gpointer user_data,
-+ GError **error)
-+{
-+ ParseInfo *info = (ParseInfo *)user_data;
-+
-+ switch (peek_state (info)) {
-+ case STATE_RECENT_ITEM:
-+ if (!info->current_item) {
-+ g_warning ("No recent item found\n");
-+ break;
-+ }
-+
-+ if (!info->current_item->uri) {
-+ g_warning ("Invalid item found\n");
-+ break;
-+ }
-+
-+ info->items = g_list_prepend (info->items,
-+ info->current_item);
-+ info->current_item = NULL;
-+ break;
-+ default:
-+ break;
-+ }
-+
-+ pop_state (info);
-+}
-+
-+static void
-+text_handler (GMarkupParseContext *context,
-+ const gchar *text,
-+ gsize text_len,
-+ gpointer user_data,
-+ GError **error)
-+{
-+ ParseInfo *info = (ParseInfo *)user_data;
-+ gchar *value;
-+
-+ value = g_strndup (text, text_len);
-+
-+ switch (peek_state (info)) {
-+ case STATE_START:
-+ case STATE_RECENT_FILES:
-+ case STATE_RECENT_ITEM:
-+ case STATE_PRIVATE:
-+ case STATE_GROUPS:
-+ break;
-+ case STATE_URI:
-+ egg_recent_item_set_uri (info->current_item, value);
-+ break;
-+ case STATE_MIME_TYPE:
-+ egg_recent_item_set_mime_type (info->current_item, value);
-+ break;
-+ case STATE_TIMESTAMP:
-+ egg_recent_item_set_timestamp (info->current_item,
-+ (time_t)atoi (value));
-+ break;
-+ case STATE_GROUP:
-+ egg_recent_item_add_group (info->current_item,
-+ text);
-+ break;
-+ }
-+
-+ g_free (value);
-+}
-+
-+static void
-+error_handler (GMarkupParseContext *context,
-+ GError *error,
-+ gpointer user_data)
-+{
-+ g_warning ("Error in parse: %s", error->message);
-+}
-+
-+static void
-+egg_recent_model_enforce_limit (GList *list, int limit)
-+{
-+ int len;
-+ GList *end;
-+
-+ /* limit < 0 means unlimited */
-+ if (limit <= 0)
-+ return;
-+
-+ len = g_list_length (list);
-+
-+ if (len > limit) {
-+ GList *next;
-+
-+ end = g_list_nth (list, limit-1);
-+ next = end->next;
-+
-+ end->next = NULL;
-+
-+ EGG_RECENT_ITEM_LIST_UNREF (next);
-+ }
-+}
-+
-+static GList *
-+egg_recent_model_sort (EggRecentModel *model, GList *list)
-+{
-+ switch (model->priv->sort_type) {
-+ case EGG_RECENT_MODEL_SORT_MRU:
-+ list = g_list_sort (list,
-+ (GCompareFunc)list_compare_func_mru);
-+ break;
-+ case EGG_RECENT_MODEL_SORT_LRU:
-+ list = g_list_sort (list,
-+ (GCompareFunc)list_compare_func_lru);
-+ break;
-+ case EGG_RECENT_MODEL_SORT_NONE:
-+ break;
-+ }
-+
-+ return list;
-+}
-+
-+static gboolean
-+egg_recent_model_group_match (EggRecentItem *item, GSList *groups)
-+{
-+ GSList *tmp;
-+
-+ tmp = groups;
-+
-+ while (tmp != NULL) {
-+ const gchar * group = (const gchar *)tmp->data;
-+
-+ if (egg_recent_item_in_group (item, group))
-+ return TRUE;
-+
-+ tmp = tmp->next;
-+ }
-+
-+ return FALSE;
-+}
-+
-+static GList *
-+egg_recent_model_filter (EggRecentModel *model, GList *list)
-+{
-+ GList *newlist = NULL;
-+ GList *l;
-+ gchar *mime_type;
-+ gchar *uri;
-+
-+ g_return_val_if_fail (list != NULL, NULL);
-+
-+ for (l = list; l != NULL ; l = l->next) {
-+ EggRecentItem *item = (EggRecentItem *) l->data;
-+ gboolean pass_mime_test = FALSE;
-+ gboolean pass_group_test = FALSE;
-+ gboolean pass_scheme_test = FALSE;
-+
-+ g_assert (item != NULL);
-+
-+ uri = egg_recent_item_get_uri (item);
-+
-+ /* filter by mime type */
-+ if (model->priv->mime_filter_values != NULL) {
-+ mime_type = egg_recent_item_get_mime_type (item);
-+
-+ if (egg_recent_model_string_match
-+ (model->priv->mime_filter_values,
-+ mime_type))
-+ pass_mime_test = TRUE;
-+
-+ g_free (mime_type);
-+ } else
-+ pass_mime_test = TRUE;
-+
-+ /* filter by group */
-+ if (pass_mime_test && model->priv->group_filter_values != NULL) {
-+ if (egg_recent_model_group_match
-+ (item, model->priv->group_filter_values))
-+ pass_group_test = TRUE;
-+ } else if (egg_recent_item_get_private (item)) {
-+ pass_group_test = FALSE;
-+ } else
-+ pass_group_test = TRUE;
-+
-+ /* filter by URI scheme */
-+ if (pass_mime_test && pass_group_test &&
-+ model->priv->scheme_filter_values != NULL) {
-+ gchar *scheme;
-+
-+ scheme = gnome_vfs_get_uri_scheme (uri);
-+
-+ if (egg_recent_model_string_match
-+ (model->priv->scheme_filter_values, scheme))
-+ pass_scheme_test = TRUE;
-+
-+ g_free (scheme);
-+ } else
-+ pass_scheme_test = TRUE;
-+
-+ if (pass_mime_test && pass_group_test && pass_scheme_test)
-+ newlist = g_list_prepend (newlist, item);
-+ else
-+ egg_recent_item_unref (item);
-+
-+ g_free (uri);
-+ }
-+
-+ g_list_free (list);
-+
-+ return g_list_reverse (newlist);
-+}
-+
-+
-+
-+#if 0
-+static void
-+egg_recent_model_monitor_list_cb (GnomeVFSMonitorHandle *handle,
-+ const gchar *monitor_uri,
-+ const gchar *info_uri,
-+ GnomeVFSMonitorEventType event_type,
-+ gpointer user_data)
-+{
-+ EggRecentModel *model;
-+
-+ model = EGG_RECENT_MODEL (user_data);
-+
-+ if (event_type == GNOME_VFS_MONITOR_EVENT_DELETED) {
-+ egg_recent_model_delete (model, monitor_uri);
-+ g_hash_table_remove (model->priv->monitors, monitor_uri);
-+ }
-+}
-+
-+
-+
-+static void
-+egg_recent_model_monitor_list (EggRecentModel *model, GList *list)
-+{
-+ GList *tmp;
-+
-+ tmp = list;
-+ while (tmp) {
-+ EggRecentItem *item = (EggRecentItem *)tmp->data;
-+ GnomeVFSMonitorHandle *handle;
-+ GnomeVFSResult res;
-+ gchar *uri;
-+
-+ tmp = tmp->next;
-+
-+ uri = egg_recent_item_get_uri (item);
-+ if (g_hash_table_lookup (model->priv->monitors, uri)) {
-+ /* already monitoring this one */
-+ g_free (uri);
-+ continue;
-+ }
-+
-+ res = gnome_vfs_monitor_add (&handle, uri,
-+ GNOME_VFS_MONITOR_FILE,
-+ egg_recent_model_monitor_list_cb,
-+ model);
-+
-+ if (res == GNOME_VFS_OK)
-+ g_hash_table_insert (model->priv->monitors, uri, handle);
-+ else
-+ g_free (uri);
-+ }
-+}
-+#endif
-+
-+
-+static gboolean
-+egg_recent_model_changed_timeout (EggRecentModel *model)
-+{
-+ model->priv->changed_timeout = 0;
-+
-+ egg_recent_model_changed (model);
-+
-+ return FALSE;
-+}
-+
-+static void
-+egg_recent_model_monitor_cb (GnomeVFSMonitorHandle *handle,
-+ const gchar *monitor_uri,
-+ const gchar *info_uri,
-+ GnomeVFSMonitorEventType event_type,
-+ gpointer user_data)
-+{
-+ EggRecentModel *model;
-+
-+ g_return_if_fail (user_data != NULL);
-+ g_return_if_fail (EGG_IS_RECENT_MODEL (user_data));
-+ model = EGG_RECENT_MODEL (user_data);
-+
-+ if (event_type == GNOME_VFS_MONITOR_EVENT_CHANGED ||
-+ event_type == GNOME_VFS_MONITOR_EVENT_CREATED ||
-+ event_type == GNOME_VFS_MONITOR_EVENT_DELETED) {
-+ if (model->priv->changed_timeout > 0) {
-+ g_source_remove (model->priv->changed_timeout);
-+ }
-+
-+ model->priv->changed_timeout = g_timeout_add (
-+ EGG_RECENT_MODEL_TIMEOUT_LENGTH,
-+ (GSourceFunc)egg_recent_model_changed_timeout,
-+ model);
-+ }
-+}
-+
-+static gboolean
-+egg_recent_model_poll_timeout (gpointer user_data)
-+{
-+ EggRecentModel *model;
-+ struct stat stat_buf;
-+ int stat_res;
-+
-+ model = EGG_RECENT_MODEL (user_data);
-+ stat_res = stat (model->priv->path, &stat_buf);
-+
-+ if (!stat_res && stat_buf.st_mtime &&
-+ stat_buf.st_mtime != model->priv->last_mtime) {
-+ model->priv->last_mtime = stat_buf.st_mtime;
-+
-+ if (model->priv->changed_timeout > 0)
-+ g_source_remove (model->priv->changed_timeout);
-+
-+ model->priv->changed_timeout = g_timeout_add (
-+ EGG_RECENT_MODEL_TIMEOUT_LENGTH,
-+ (GSourceFunc)egg_recent_model_changed_timeout,
-+ model);
-+ }
-+ return TRUE;
-+}
-+
-+static void
-+egg_recent_model_monitor (EggRecentModel *model, gboolean should_monitor)
-+{
-+ if (should_monitor && model->priv->monitor == NULL) {
-+ char *uri;
-+ GnomeVFSResult result;
-+
-+ uri = gnome_vfs_get_uri_from_local_path (model->priv->path);
-+
-+ result = gnome_vfs_monitor_add (&model->priv->monitor,
-+ uri,
-+ GNOME_VFS_MONITOR_FILE,
-+ egg_recent_model_monitor_cb,
-+ model);
-+
-+ g_free (uri);
-+
-+ /* if the above fails, don't worry about it.
-+ * local notifications will still happen
-+ */
-+ if (result == GNOME_VFS_ERROR_NOT_SUPPORTED) {
-+ if (model->priv->poll_timeout > 0)
-+ g_source_remove (model->priv->poll_timeout);
-+
-+ model->priv->poll_timeout = g_timeout_add (
-+ EGG_RECENT_MODEL_POLL_TIME * 1000,
-+ egg_recent_model_poll_timeout,
-+ model);
-+ }
-+
-+ } else if (!should_monitor && model->priv->monitor != NULL) {
-+ gnome_vfs_monitor_cancel (model->priv->monitor);
-+ model->priv->monitor = NULL;
-+ }
-+}
-+
-+static void
-+egg_recent_model_set_limit_internal (EggRecentModel *model, int limit)
-+{
-+ model->priv->limit = limit;
-+
-+ if (limit <= 0)
-+ egg_recent_model_monitor (model, FALSE);
-+ else {
-+ egg_recent_model_monitor (model, TRUE);
-+ egg_recent_model_changed (model);
-+ }
-+}
-+
-+static GList *
-+egg_recent_model_read (EggRecentModel *model, FILE *file)
-+{
-+ GList *list=NULL;
-+ gchar *content;
-+ GMarkupParseContext *ctx;
-+ ParseInfo *info;
-+ GError *error;
-+
-+ content = egg_recent_model_read_raw (model, file);
-+
-+ if (strlen (content) <= 0) {
-+ g_free (content);
-+ return NULL;
-+ }
-+
-+ info = parse_info_init ();
-+
-+ ctx = g_markup_parse_context_new (&parser, 0, info, NULL);
-+
-+ error = NULL;
-+ if (!g_markup_parse_context_parse (ctx, content, strlen (content), &error)) {
-+ g_warning ("Error while parsing the .recently-used file: %s\n",
-+ error->message);
-+
-+ g_error_free (error);
-+ parse_info_free (info);
-+
-+ return NULL;
-+ }
-+
-+ error = NULL;
-+ if (!g_markup_parse_context_end_parse (ctx, &error)) {
-+ g_warning ("Unable to complete parsing of the .recently-used file: %s\n",
-+ error->message);
-+
-+ g_error_free (error);
-+ g_markup_parse_context_free (ctx);
-+ parse_info_free (info);
-+
-+ return NULL;
-+ }
-+
-+ list = g_list_reverse (info->items);
-+
-+ g_markup_parse_context_free (ctx);
-+ parse_info_free (info);
-+ g_free (content);
-+
-+ return list;
-+}
-+
-+
-+static gboolean
-+egg_recent_model_write (EggRecentModel *model, FILE *file, GList *list)
-+{
-+ GString *string;
-+ gchar *data;
-+ EggRecentItem *item;
-+ const GList *groups;
-+ int i;
-+ int ret;
-+
-+ string = g_string_new ("<?xml version=\"1.0\"?>\n");
-+ string = g_string_append (string, "<" TAG_RECENT_FILES ">\n");
-+
-+ i=0;
-+ while (list) {
-+ gchar *uri;
-+ gchar *mime_type;
-+ gchar *escaped_uri;
-+ time_t timestamp;
-+ item = (EggRecentItem *)list->data;
-+
-+
-+ uri = egg_recent_item_get_uri_utf8 (item);
-+ escaped_uri = g_markup_escape_text (uri,
-+ strlen (uri));
-+ g_free (uri);
-+
-+ mime_type = egg_recent_item_get_mime_type (item);
-+ timestamp = egg_recent_item_get_timestamp (item);
-+
-+ string = g_string_append (string, " <" TAG_RECENT_ITEM ">\n");
-+
-+ g_string_append_printf (string,
-+ " <" TAG_URI ">%s</" TAG_URI ">\n", escaped_uri);
-+
-+ if (mime_type)
-+ g_string_append_printf (string,
-+ " <" TAG_MIME_TYPE ">%s</" TAG_MIME_TYPE ">\n", mime_type);
-+ else
-+ g_string_append_printf (string,
-+ " <" TAG_MIME_TYPE "></" TAG_MIME_TYPE ">\n");
-+
-+
-+ g_string_append_printf (string,
-+ " <" TAG_TIMESTAMP ">%d</" TAG_TIMESTAMP ">\n", (int)timestamp);
-+
-+ if (egg_recent_item_get_private (item))
-+ string = g_string_append (string,
-+ " <" TAG_PRIVATE "/>\n");
-+
-+ /* write the groups */
-+ string = g_string_append (string,
-+ " <" TAG_GROUPS ">\n");
-+ groups = egg_recent_item_get_groups (item);
-+
-+ if (groups == NULL && egg_recent_item_get_private (item))
-+ g_warning ("Item with URI \"%s\" marked as private, but"
-+ " does not belong to any groups.\n", uri);
-+
-+ while (groups) {
-+ const gchar *group = (const gchar *)groups->data;
-+ gchar *escaped_group;
-+
-+ escaped_group = g_markup_escape_text (group, strlen(group));
-+
-+ g_string_append_printf (string,
-+ " <" TAG_GROUP ">%s</" TAG_GROUP ">\n",
-+ escaped_group);
-+
-+ g_free (escaped_group);
-+
-+ groups = groups->next;
-+ }
-+
-+ string = g_string_append (string, " </" TAG_GROUPS ">\n");
-+
-+ string = g_string_append (string,
-+ " </" TAG_RECENT_ITEM ">\n");
-+
-+ g_free (mime_type);
-+ g_free (escaped_uri);
-+
-+ list = list->next;
-+ i++;
-+ }
-+
-+ string = g_string_append (string, "</" TAG_RECENT_FILES ">");
-+
-+ data = g_string_free (string, FALSE);
-+
-+ ret = egg_recent_model_write_raw (model, file, data);
-+
-+ g_free (data);
-+
-+ return ret;
-+}
-+
-+static FILE *
-+egg_recent_model_open_file (EggRecentModel *model,
-+ gboolean for_writing)
-+{
-+ FILE *file;
-+ mode_t prev_umask;
-+
-+ file = fopen (model->priv->path, "r+");
-+ if (file == NULL && for_writing) {
-+ /* be paranoid */
-+ prev_umask = umask (077);
-+
-+ file = fopen (model->priv->path, "w+");
-+
-+ umask (prev_umask);
-+
-+ g_return_val_if_fail (file != NULL, NULL);
-+ }
-+
-+ return file;
-+}
-+
-+static gboolean
-+egg_recent_model_lock_file (FILE *file)
-+{
-+#ifdef HAVE_LOCKF
-+ int fd;
-+ gint try = 5;
-+
-+ rewind (file);
-+ fd = fileno (file);
-+
-+ /* Attempt to lock the file 5 times,
-+ * waiting a random interval (< 1 second)
-+ * in between attempts.
-+ * We should really be doing asynchronous
-+ * locking, but requires substantially larger
-+ * changes.
-+ */
-+
-+ while (try > 0)
-+ {
-+ int rand_interval;
-+
-+ if (lockf (fd, F_TLOCK, 0) == 0)
-+ return TRUE;
-+
-+ rand_interval = 1 + (int) (10.0 * rand()/(RAND_MAX + 1.0));
-+
-+ g_usleep (100000 * rand_interval);
-+
-+ --try;
-+ }
-+
-+ return FALSE;
-+#else
-+ return TRUE;
-+#endif /* HAVE_LOCKF */
-+}
-+
-+static gboolean
-+egg_recent_model_unlock_file (FILE *file)
-+{
-+#ifdef HAVE_LOCKF
-+ int fd;
-+
-+ rewind (file);
-+ fd = fileno (file);
-+
-+ return (lockf (fd, F_ULOCK, 0) == 0) ? TRUE : FALSE;
-+#else
-+ return TRUE;
-+#endif /* HAVE_LOCKF */
-+}
-+
-+static void
-+egg_recent_model_finalize (GObject *object)
-+{
-+ EggRecentModel *model = EGG_RECENT_MODEL (object);
-+
-+ if (model->priv->changed_timeout > 0) {
-+ g_source_remove (model->priv->changed_timeout);
-+ }
-+
-+ egg_recent_model_monitor (model, FALSE);
-+
-+
-+ g_slist_foreach (model->priv->mime_filter_values,
-+ (GFunc) g_pattern_spec_free, NULL);
-+ g_slist_free (model->priv->mime_filter_values);
-+ model->priv->mime_filter_values = NULL;
-+
-+ g_slist_foreach (model->priv->scheme_filter_values,
-+ (GFunc) g_pattern_spec_free, NULL);
-+ g_slist_free (model->priv->scheme_filter_values);
-+ model->priv->scheme_filter_values = NULL;
-+
-+ g_slist_foreach (model->priv->group_filter_values,
-+ (GFunc) g_free, NULL);
-+ g_slist_free (model->priv->group_filter_values);
-+ model->priv->group_filter_values = NULL;
-+
-+
-+ if (model->priv->limit_change_notify_id)
-+ gconf_client_notify_remove (model->priv->client,
-+ model->priv->limit_change_notify_id);
-+ model->priv->expiration_change_notify_id = 0;
-+
-+ if (model->priv->expiration_change_notify_id)
-+ gconf_client_notify_remove (model->priv->client,
-+ model->priv->expiration_change_notify_id);
-+ model->priv->expiration_change_notify_id = 0;
-+
-+ g_object_unref (model->priv->client);
-+ model->priv->client = NULL;
-+
-+
-+ g_free (model->priv->path);
-+ model->priv->path = NULL;
-+
-+ g_hash_table_destroy (model->priv->monitors);
-+ model->priv->monitors = NULL;
-+
-+ if (model->priv->poll_timeout > 0)
-+ g_source_remove (model->priv->poll_timeout);
-+ model->priv->poll_timeout =0;
-+
-+ g_free (model->priv);
-+
-+ parent_class->finalize (object);
-+}
-+
-+static void
-+egg_recent_model_set_property (GObject *object,
-+ guint prop_id,
-+ const GValue *value,
-+ GParamSpec *pspec)
-+{
-+ EggRecentModel *model = EGG_RECENT_MODEL (object);
-+
-+ switch (prop_id)
-+ {
-+ case PROP_MIME_FILTERS:
-+ if (model->priv->mime_filter_values != NULL)
-+ egg_recent_model_clear_mime_filter (model);
-+
-+ model->priv->mime_filter_values =
-+ (GSList *)g_value_get_pointer (value);
-+ break;
-+
-+ case PROP_GROUP_FILTERS:
-+ if (model->priv->group_filter_values != NULL)
-+ egg_recent_model_clear_group_filter (model);
-+
-+ model->priv->group_filter_values =
-+ (GSList *)g_value_get_pointer (value);
-+ break;
-+
-+ case PROP_SCHEME_FILTERS:
-+ if (model->priv->scheme_filter_values != NULL)
-+ egg_recent_model_clear_scheme_filter (model);
-+
-+ model->priv->scheme_filter_values =
-+ (GSList *)g_value_get_pointer (value);
-+ break;
-+
-+ case PROP_SORT_TYPE:
-+ model->priv->sort_type = g_value_get_int (value);
-+ break;
-+
-+ case PROP_LIMIT:
-+ egg_recent_model_set_limit (model,
-+ g_value_get_int (value));
-+ break;
-+
-+ default:
-+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
-+ break;
-+ }
-+}
-+
-+static void
-+egg_recent_model_get_property (GObject *object,
-+ guint prop_id,
-+ GValue *value,
-+ GParamSpec *pspec)
-+{
-+ EggRecentModel *model = EGG_RECENT_MODEL (object);
-+
-+ switch (prop_id)
-+ {
-+ case PROP_MIME_FILTERS:
-+ g_value_set_pointer (value, model->priv->mime_filter_values);
-+ break;
-+
-+ case PROP_GROUP_FILTERS:
-+ g_value_set_pointer (value, model->priv->group_filter_values);
-+ break;
-+
-+ case PROP_SCHEME_FILTERS:
-+ g_value_set_pointer (value, model->priv->scheme_filter_values);
-+ break;
-+
-+ case PROP_SORT_TYPE:
-+ g_value_set_int (value, model->priv->sort_type);
-+ break;
-+
-+ case PROP_LIMIT:
-+ g_value_set_int (value, model->priv->limit);
-+ break;
-+
-+ default:
-+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
-+ break;
-+ }
-+}
-+
-+static void
-+egg_recent_model_class_init (EggRecentModelClass * klass)
-+{
-+ GObjectClass *object_class;
-+
-+ parent_class = g_type_class_peek_parent (klass);
-+
-+ parent_class = g_type_class_peek_parent (klass);
-+
-+ object_class = G_OBJECT_CLASS (klass);
-+ object_class->set_property = egg_recent_model_set_property;
-+ object_class->get_property = egg_recent_model_get_property;
-+ object_class->finalize = egg_recent_model_finalize;
-+
-+ model_signals[CHANGED] = g_signal_new ("changed",
-+ G_OBJECT_CLASS_TYPE (object_class),
-+ G_SIGNAL_RUN_LAST,
-+ G_STRUCT_OFFSET (EggRecentModelClass, changed),
-+ NULL, NULL,
-+ g_cclosure_marshal_VOID__POINTER,
-+ G_TYPE_NONE, 1,
-+ G_TYPE_POINTER);
-+
-+
-+ g_object_class_install_property (object_class,
-+ PROP_MIME_FILTERS,
-+ g_param_spec_pointer ("mime-filters",
-+ "Mime Filters",
-+ "List of mime types to be allowed.",
-+ G_PARAM_READWRITE));
-+
-+ g_object_class_install_property (object_class,
-+ PROP_GROUP_FILTERS,
-+ g_param_spec_pointer ("group-filters",
-+ "Group Filters",
-+ "List of groups to be allowed.",
-+ G_PARAM_READWRITE));
-+
-+ g_object_class_install_property (object_class,
-+ PROP_SCHEME_FILTERS,
-+ g_param_spec_pointer ("scheme-filters",
-+ "Scheme Filters",
-+ "List of URI schemes to be allowed.",
-+ G_PARAM_READWRITE));
-+
-+ g_object_class_install_property (object_class,
-+ PROP_SORT_TYPE,
-+ g_param_spec_int ("sort-type",
-+ "Sort Type",
-+ "Type of sorting to be done.",
-+ 0, EGG_RECENT_MODEL_SORT_NONE,
-+ EGG_RECENT_MODEL_SORT_MRU,
-+ G_PARAM_READWRITE));
-+
-+ g_object_class_install_property (object_class,
-+ PROP_LIMIT,
-+ g_param_spec_int ("limit",
-+ "Limit",
-+ "Max number of items allowed.",
-+ -1, EGG_RECENT_MODEL_MAX_ITEMS,
-+ EGG_RECENT_MODEL_DEFAULT_LIMIT,
-+ G_PARAM_READWRITE));
-+
-+ klass->changed = NULL;
-+}
-+
-+
-+
-+static void
-+egg_recent_model_limit_changed (GConfClient *client, guint cnxn_id,
-+ GConfEntry *entry, gpointer user_data)
-+{
-+ EggRecentModel *model;
-+ GConfValue *value;
-+
-+ model = EGG_RECENT_MODEL (user_data);
-+
-+ g_return_if_fail (model != NULL);
-+
-+ if (model->priv->use_default_limit == FALSE)
-+ return; /* ignore this key */
-+
-+ /* the key was unset, and the schema has apparently failed */
-+ if (entry == NULL)
-+ return;
-+
-+ value = gconf_entry_get_value (entry);
-+
-+ if (value->type != GCONF_VALUE_INT) {
-+ g_warning ("Expected GConfValue of type integer, "
-+ "got something else");
-+ }
-+
-+
-+ egg_recent_model_set_limit_internal (model, gconf_value_get_int (value));
-+}
-+
-+static void
-+egg_recent_model_expiration_changed (GConfClient *client, guint cnxn_id,
-+ GConfEntry *entry, gpointer user_data)
-+{
-+
-+}
-+
-+static void
-+egg_recent_model_init (EggRecentModel * model)
-+{
-+ if (!gnome_vfs_init ()) {
-+ g_warning ("gnome-vfs initialization failed.");
-+ return;
-+ }
-+
-+
-+ model->priv = g_new0 (EggRecentModelPrivate, 1);
-+
-+ model->priv->path = g_strdup_printf ("%s" EGG_RECENT_MODEL_FILE_PATH,
-+ g_get_home_dir ());
-+
-+ model->priv->mime_filter_values = NULL;
-+ model->priv->group_filter_values = NULL;
-+ model->priv->scheme_filter_values = NULL;
-+
-+ model->priv->client = gconf_client_get_default ();
-+ gconf_client_add_dir (model->priv->client, EGG_RECENT_MODEL_KEY_DIR,
-+ GCONF_CLIENT_PRELOAD_ONELEVEL, NULL);
-+
-+ model->priv->limit_change_notify_id =
-+ gconf_client_notify_add (model->priv->client,
-+ EGG_RECENT_MODEL_DEFAULT_LIMIT_KEY,
-+ egg_recent_model_limit_changed,
-+ model, NULL, NULL);
-+
-+ model->priv->expiration_change_notify_id =
-+ gconf_client_notify_add (model->priv->client,
-+ EGG_RECENT_MODEL_EXPIRE_KEY,
-+ egg_recent_model_expiration_changed,
-+ model, NULL, NULL);
-+
-+ model->priv->expire_days = gconf_client_get_int (
-+ model->priv->client,
-+ EGG_RECENT_MODEL_EXPIRE_KEY,
-+ NULL);
-+
-+#if 0
-+ /* keep this out, for now */
-+ model->priv->limit = gconf_client_get_int (
-+ model->priv->client,
-+ EGG_RECENT_MODEL_DEFAULT_LIMIT_KEY, NULL);
-+ model->priv->use_default_limit = TRUE;
-+#endif
-+ model->priv->limit = EGG_RECENT_MODEL_DEFAULT_LIMIT;
-+ model->priv->use_default_limit = FALSE;
-+
-+ model->priv->monitors = g_hash_table_new_full (
-+ g_str_hash, g_str_equal,
-+ (GDestroyNotify) g_free,
-+ (GDestroyNotify) gnome_vfs_monitor_cancel);
-+
-+ model->priv->monitor = NULL;
-+ model->priv->poll_timeout = 0;
-+ model->priv->last_mtime = 0;
-+ egg_recent_model_monitor (model, TRUE);
-+}
-+
-+
-+/**
-+ * egg_recent_model_new:
-+ * @sort: the type of sorting to use
-+ * @limit: maximum number of items in the list
-+ *
-+ * This creates a new EggRecentModel object.
-+ *
-+ * Returns: a EggRecentModel object
-+ */
-+EggRecentModel *
-+egg_recent_model_new (EggRecentModelSort sort)
-+{
-+ EggRecentModel *model;
-+
-+ model = EGG_RECENT_MODEL (g_object_new (egg_recent_model_get_type (),
-+ "sort-type", sort, NULL));
-+
-+ g_return_val_if_fail (model, NULL);
-+
-+ return model;
-+}
-+
-+/**
-+ * egg_recent_model_add_full:
-+ * @model: A EggRecentModel object.
-+ * @item: A EggRecentItem
-+ *
-+ * This function adds an item to the list of recently used URIs.
-+ *
-+ * Returns: gboolean
-+ */
-+gboolean
-+egg_recent_model_add_full (EggRecentModel * model, EggRecentItem *item)
-+{
-+ FILE *file;
-+ GList *list = NULL;
-+ gboolean ret = FALSE;
-+ gboolean updated = FALSE;
-+ char *uri;
-+ time_t t;
-+
-+ g_return_val_if_fail (model != NULL, FALSE);
-+ g_return_val_if_fail (EGG_IS_RECENT_MODEL (model), FALSE);
-+
-+ uri = egg_recent_item_get_uri (item);
-+ if (strncmp (uri, "recent-files://", strlen ("recent-files://")) == 0) {
-+ g_free (uri);
-+ return FALSE;
-+ } else {
-+ g_free (uri);
-+ }
-+
-+ file = egg_recent_model_open_file (model, TRUE);
-+ g_return_val_if_fail (file != NULL, FALSE);
-+
-+ time (&t);
-+ egg_recent_item_set_timestamp (item, t);
-+
-+ if (egg_recent_model_lock_file (file)) {
-+
-+ /* read existing stuff */
-+ list = egg_recent_model_read (model, file);
-+
-+ /* if it's already there, we just update it */
-+ updated = egg_recent_model_update_item (list, item);
-+
-+ if (!updated) {
-+ list = g_list_prepend (list, item);
-+
-+ egg_recent_model_enforce_limit (list,
-+ EGG_RECENT_MODEL_MAX_ITEMS);
-+ }
-+
-+ /* write new stuff */
-+ if (!egg_recent_model_write (model, file, list))
-+ g_warning ("Write failed: %s", strerror (errno));
-+
-+ if (!updated)
-+ list = g_list_remove (list, item);
-+
-+ EGG_RECENT_ITEM_LIST_UNREF (list);
-+ ret = TRUE;
-+ } else {
-+ g_warning ("Failed to lock: %s", strerror (errno));
-+ fclose (file);
-+ return FALSE;
-+ }
-+
-+ if (!egg_recent_model_unlock_file (file))
-+ g_warning ("Failed to unlock: %s", strerror (errno));
-+
-+ fclose (file);
-+
-+ if (model->priv->monitor == NULL) {
-+ /* since monitoring isn't working, at least give a
-+ * local notification
-+ */
-+ egg_recent_model_changed (model);
-+ }
-+
-+ return ret;
-+}
-+
-+/**
-+ * egg_recent_model_add:
-+ * @model: A EggRecentModel object.
-+ * @uri: A string URI
-+ *
-+ * This function adds an item to the list of recently used URIs.
-+ *
-+ * Returns: gboolean
-+ */
-+gboolean
-+egg_recent_model_add (EggRecentModel *model, const gchar *uri)
-+{
-+ EggRecentItem *item;
-+ gboolean ret = FALSE;
-+
-+ g_return_val_if_fail (model != NULL, FALSE);
-+ g_return_val_if_fail (uri != NULL, FALSE);
-+
-+ item = egg_recent_item_new_from_uri (uri);
-+
-+ g_return_val_if_fail (item != NULL, FALSE);
-+
-+ ret = egg_recent_model_add_full (model, item);
-+
-+ egg_recent_item_unref (item);
-+
-+ return ret;
-+}
-+
-+
-+
-+/**
-+ * egg_recent_model_delete:
-+ * @model: A EggRecentModel object.
-+ * @uri: The URI you want to delete.
-+ *
-+ * This function deletes a URI from the file of recently used URIs.
-+ *
-+ * Returns: gboolean
-+ */
-+gboolean
-+egg_recent_model_delete (EggRecentModel * model, const gchar * uri)
-+{
-+ FILE *file;
-+ GList *list;
-+ unsigned int length;
-+ gboolean ret = FALSE;
-+
-+ g_return_val_if_fail (model != NULL, FALSE);
-+ g_return_val_if_fail (EGG_IS_RECENT_MODEL (model), FALSE);
-+ g_return_val_if_fail (uri != NULL, FALSE);
-+
-+ file = egg_recent_model_open_file (model, TRUE);
-+ g_return_val_if_fail (file != NULL, FALSE);
-+
-+ if (egg_recent_model_lock_file (file)) {
-+ list = egg_recent_model_read (model, file);
-+
-+ if (list == NULL)
-+ goto out;
-+
-+ length = g_list_length (list);
-+
-+ list = egg_recent_model_delete_from_list (list, uri);
-+
-+ if (length == g_list_length (list)) {
-+ /* nothing was deleted */
-+ EGG_RECENT_ITEM_LIST_UNREF (list);
-+ } else {
-+ egg_recent_model_write (model, file, list);
-+ EGG_RECENT_ITEM_LIST_UNREF (list);
-+ ret = TRUE;
-+
-+ }
-+ } else {
-+ g_warning ("Failed to lock: %s", strerror (errno));
-+ return FALSE;
-+ }
-+
-+out:
-+
-+ if (!egg_recent_model_unlock_file (file))
-+ g_warning ("Failed to unlock: %s", strerror (errno));
-+
-+ fclose (file);
-+
-+ g_hash_table_remove (model->priv->monitors, uri);
-+
-+ if (model->priv->monitor == NULL && ret) {
-+ /* since monitoring isn't working, at least give a
-+ * local notification
-+ */
-+ egg_recent_model_changed (model);
-+ }
-+
-+ return ret;
-+}
-+
-+
-+/**
-+ * egg_recent_model_get_list:
-+ * @model: A EggRecentModel object.
-+ *
-+ * This function gets the current contents of the file
-+ *
-+ * Returns: a GList
-+ */
-+GList *
-+egg_recent_model_get_list (EggRecentModel *model)
-+{
-+ FILE *file;
-+ GList *list = NULL;
-+
-+ file = egg_recent_model_open_file (model, FALSE);
-+ if (file == NULL)
-+ return NULL;
-+
-+ if (egg_recent_model_lock_file (file))
-+ list = egg_recent_model_read (model, file);
-+ else {
-+ g_warning ("Failed to lock: %s", strerror (errno));
-+ fclose (file);
-+ return NULL;
-+ }
-+
-+ if (!egg_recent_model_unlock_file (file))
-+ g_warning ("Failed to unlock: %s", strerror (errno));
-+
-+ if (list != NULL) {
-+ list = egg_recent_model_filter (model, list);
-+ list = egg_recent_model_sort (model, list);
-+
-+ egg_recent_model_enforce_limit (list, model->priv->limit);
-+ }
-+
-+ fclose (file);
-+
-+ return list;
-+}
-+
-+
-+
-+/**
-+ * egg_recent_model_set_limit:
-+ * @model: A EggRecentModel object.
-+ * @limit: The maximum length of the list
-+ *
-+ * This function sets the maximum length of the list. Note: This only affects
-+ * the length of the list emitted in the "changed" signal, not the list stored
-+ * on disk.
-+ *
-+ * Returns: void
-+ */
-+void
-+egg_recent_model_set_limit (EggRecentModel *model, int limit)
-+{
-+ model->priv->use_default_limit = FALSE;
-+
-+ egg_recent_model_set_limit_internal (model, limit);
-+}
-+
-+/**
-+ * egg_recent_model_get_limit:
-+ * @model: A EggRecentModel object.
-+ *
-+ * This function gets the maximum length of the list.
-+ *
-+ * Returns: int
-+ */
-+int
-+egg_recent_model_get_limit (EggRecentModel *model)
-+{
-+ return model->priv->limit;
-+}
-+
-+
-+/**
-+ * egg_recent_model_clear:
-+ * @model: A EggRecentModel object.
-+ *
-+ * This function clears the contents of the file
-+ *
-+ * Returns: void
-+ */
-+void
-+egg_recent_model_clear (EggRecentModel *model)
-+{
-+ FILE *file;
-+ int fd;
-+
-+ file = egg_recent_model_open_file (model, TRUE);
-+ g_return_if_fail (file != NULL);
-+
-+ fd = fileno (file);
-+
-+ if (egg_recent_model_lock_file (file)) {
-+ ftruncate (fd, 0);
-+ } else {
-+ g_warning ("Failed to lock: %s", strerror (errno));
-+ return;
-+ }
-+
-+ if (!egg_recent_model_unlock_file (file))
-+ g_warning ("Failed to unlock: %s", strerror (errno));
-+
-+ fclose (file);
-+
-+ if (model->priv->monitor == NULL) {
-+ /* since monitoring isn't working, at least give a
-+ * local notification
-+ */
-+ egg_recent_model_changed (model);
-+ }
-+}
-+
-+static void
-+egg_recent_model_clear_mime_filter (EggRecentModel *model)
-+{
-+ g_return_if_fail (model != NULL);
-+
-+ if (model->priv->mime_filter_values != NULL) {
-+ g_slist_foreach (model->priv->mime_filter_values,
-+ (GFunc) g_pattern_spec_free, NULL);
-+ g_slist_free (model->priv->mime_filter_values);
-+ model->priv->mime_filter_values = NULL;
-+ }
-+}
-+
-+/**
-+ * egg_recent_model_set_filter_mime_types:
-+ * @model: A EggRecentModel object.
-+ *
-+ * Sets which mime types are allowed in the list.
-+ *
-+ * Returns: void
-+ */
-+void
-+egg_recent_model_set_filter_mime_types (EggRecentModel *model,
-+ ...)
-+{
-+ va_list valist;
-+ GSList *list = NULL;
-+ gchar *str;
-+
-+ g_return_if_fail (model != NULL);
-+
-+ egg_recent_model_clear_mime_filter (model);
-+
-+ va_start (valist, model);
-+
-+ str = va_arg (valist, gchar*);
-+
-+ while (str != NULL) {
-+ list = g_slist_prepend (list, g_pattern_spec_new (str));
-+
-+ str = va_arg (valist, gchar*);
-+ }
-+
-+ va_end (valist);
-+
-+ model->priv->mime_filter_values = list;
-+}
-+
-+static void
-+egg_recent_model_clear_group_filter (EggRecentModel *model)
-+{
-+ g_return_if_fail (model != NULL);
-+
-+ if (model->priv->group_filter_values != NULL) {
-+ g_slist_foreach (model->priv->group_filter_values, (GFunc)g_free, NULL);
-+ g_slist_free (model->priv->group_filter_values);
-+ model->priv->group_filter_values = NULL;
-+ }
-+}
-+
-+/**
-+ * egg_recent_model_set_filter_groups:
-+ * @model: A EggRecentModel object.
-+ *
-+ * Sets which groups are allowed in the list.
-+ *
-+ * Returns: void
-+ */
-+void
-+egg_recent_model_set_filter_groups (EggRecentModel *model,
-+ ...)
-+{
-+ va_list valist;
-+ GSList *list = NULL;
-+ gchar *str;
-+
-+ g_return_if_fail (model != NULL);
-+
-+ egg_recent_model_clear_group_filter (model);
-+
-+ va_start (valist, model);
-+
-+ str = va_arg (valist, gchar*);
-+
-+ while (str != NULL) {
-+ list = g_slist_prepend (list, g_strdup (str));
-+
-+ str = va_arg (valist, gchar*);
-+ }
-+
-+ va_end (valist);
-+
-+ model->priv->group_filter_values = list;
-+}
-+
-+static void
-+egg_recent_model_clear_scheme_filter (EggRecentModel *model)
-+{
-+ g_return_if_fail (model != NULL);
-+
-+ if (model->priv->scheme_filter_values != NULL) {
-+ g_slist_foreach (model->priv->scheme_filter_values,
-+ (GFunc) g_pattern_spec_free, NULL);
-+ g_slist_free (model->priv->scheme_filter_values);
-+ model->priv->scheme_filter_values = NULL;
-+ }
-+}
-+
-+/**
-+ * egg_recent_model_set_filter_uri_schemes:
-+ * @model: A EggRecentModel object.
-+ *
-+ * Sets which URI schemes (file, http, ftp, etc) are allowed in the list.
-+ *
-+ * Returns: void
-+ */
-+void
-+egg_recent_model_set_filter_uri_schemes (EggRecentModel *model, ...)
-+{
-+ va_list valist;
-+ GSList *list = NULL;
-+ gchar *str;
-+
-+ g_return_if_fail (model != NULL);
-+
-+ egg_recent_model_clear_scheme_filter (model);
-+
-+ va_start (valist, model);
-+
-+ str = va_arg (valist, gchar*);
-+
-+ while (str != NULL) {
-+ list = g_slist_prepend (list, g_pattern_spec_new (str));
-+
-+ str = va_arg (valist, gchar*);
-+ }
-+
-+ va_end (valist);
-+
-+ model->priv->scheme_filter_values = list;
-+}
-+
-+/**
-+ * egg_recent_model_set_sort:
-+ * @model: A EggRecentModel object.
-+ * @sort: A EggRecentModelSort type
-+ *
-+ * Sets the type of sorting to be used.
-+ *
-+ * Returns: void
-+ */
-+void
-+egg_recent_model_set_sort (EggRecentModel *model,
-+ EggRecentModelSort sort)
-+{
-+ g_return_if_fail (model != NULL);
-+
-+ model->priv->sort_type = sort;
-+}
-+
-+/**
-+ * egg_recent_model_changed:
-+ * @model: A EggRecentModel object.
-+ *
-+ * This function causes a "changed" signal to be emitted.
-+ *
-+ * Returns: void
-+ */
-+void
-+egg_recent_model_changed (EggRecentModel *model)
-+{
-+ GList *list = NULL;
-+
-+ if (model->priv->limit > 0) {
-+ list = egg_recent_model_get_list (model);
-+ /* egg_recent_model_monitor_list (model, list); */
-+
-+ g_signal_emit (G_OBJECT (model), model_signals[CHANGED], 0,
-+ list);
-+ }
-+
-+ if (list)
-+ EGG_RECENT_ITEM_LIST_UNREF (list);
-+}
-+
-+static void
-+egg_recent_model_remove_expired_list (EggRecentModel *model, GList *list)
-+{
-+ time_t current_time;
-+ time_t day_seconds;
-+
-+ time (&current_time);
-+ day_seconds = model->priv->expire_days*24*60*60;
-+
-+ while (list != NULL) {
-+ EggRecentItem *item = list->data;
-+ time_t timestamp;
-+
-+ timestamp = egg_recent_item_get_timestamp (item);
-+
-+ if ((timestamp+day_seconds) < current_time) {
-+ gchar *uri = egg_recent_item_get_uri (item);
-+ egg_recent_model_delete (model, uri);
-+
-+ g_strdup (uri);
-+ }
-+
-+ list = list->next;
-+ }
-+}
-+
-+
-+/**
-+ * egg_recent_model_remove_expired:
-+ * @model: A EggRecentModel object.
-+ *
-+ * Goes through the entire list, and removes any items that are older than
-+ * the user-specified expiration period.
-+ *
-+ * Returns: void
-+ */
-+void
-+egg_recent_model_remove_expired (EggRecentModel *model)
-+{
-+ FILE *file;
-+ GList *list=NULL;
-+
-+ g_return_if_fail (model != NULL);
-+
-+ file = egg_recent_model_open_file (model, FALSE);
-+ if (file == NULL)
-+ return;
-+
-+ if (egg_recent_model_lock_file (file)) {
-+ list = egg_recent_model_read (model, file);
-+
-+ } else {
-+ g_warning ("Failed to lock: %s", strerror (errno));
-+ return;
-+ }
-+
-+ if (!egg_recent_model_unlock_file (file))
-+ g_warning ("Failed to unlock: %s", strerror (errno));
-+
-+ if (list != NULL) {
-+ egg_recent_model_remove_expired_list (model, list);
-+ EGG_RECENT_ITEM_LIST_UNREF (list);
-+ }
-+
-+ fclose (file);
-+}
-+
-+/**
-+ * egg_recent_model_get_type:
-+ *
-+ * This returns a GType representing a EggRecentModel object.
-+ *
-+ * Returns: a GType
-+ */
-+GType
-+egg_recent_model_get_type (void)
-+{
-+ static GType egg_recent_model_type = 0;
-+
-+ if(!egg_recent_model_type) {
-+ static const GTypeInfo egg_recent_model_info = {
-+ sizeof (EggRecentModelClass),
-+ NULL, /* base init */
-+ NULL, /* base finalize */
-+ (GClassInitFunc)egg_recent_model_class_init, /* class init */
-+ NULL, /* class finalize */
-+ NULL, /* class data */
-+ sizeof (EggRecentModel),
-+ 0,
-+ (GInstanceInitFunc) egg_recent_model_init
-+ };
-+
-+ egg_recent_model_type = g_type_register_static (G_TYPE_OBJECT,
-+ "EggRecentModel",
-+ &egg_recent_model_info, 0);
-+ }
-+
-+ return egg_recent_model_type;
-+}
-+
-diff -uprN gnome-desktop-2.16.1-pristine/libgnome-desktop/egg-recent-model.h gnome-desktop-2.16.1/libgnome-desktop/egg-recent-model.h
---- gnome-desktop-2.16.1-pristine/libgnome-desktop/egg-recent-model.h 1969-12-31 19:00:00.000000000 -0500
-+++ gnome-desktop-2.16.1/libgnome-desktop/egg-recent-model.h 2006-10-23 16:19:45.000000000 -0400
-@@ -0,0 +1,84 @@
-+/* vim: set sw=8: -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
-+#ifndef __EGG_RECENT_MODEL_H__
-+#define __EGG_RECENT_MODEL_H__
-+
-+#include "egg-recent-item.h"
-+
-+#ifndef EGG_ENABLE_RECENT_FILES
-+#error "EggRecent has been DEPRECATED by the new recent files code inside GTK 2.9.0. Use EGG_ENABLE_RECENT_FILES to compile this code, but you are using it at your own risk."
-+#endif
-+
-+G_BEGIN_DECLS
-+
-+#define EGG_TYPE_RECENT_MODEL (egg_recent_model_get_type ())
-+#define EGG_RECENT_MODEL(obj) G_TYPE_CHECK_INSTANCE_CAST (obj, EGG_TYPE_RECENT_MODEL, EggRecentModel)
-+#define EGG_RECENT_MODEL_CLASS(klass) G_TYPE_CHECK_CLASS_CAST (klass, EGG_TYPE_RECENT_MODEL, EggRecentModelClass)
-+#define EGG_IS_RECENT_MODEL(obj) G_TYPE_CHECK_INSTANCE_TYPE (obj, egg_recent_model_get_type ())
-+
-+typedef struct _EggRecentModel EggRecentModel;
-+typedef struct _EggRecentModelPrivate EggRecentModelPrivate;
-+typedef struct _EggRecentModelClass EggRecentModelClass;
-+
-+struct _EggRecentModel {
-+ GObject parent_instance;
-+
-+ EggRecentModelPrivate *priv;
-+};
-+
-+struct _EggRecentModelClass {
-+ GObjectClass parent_class;
-+
-+ void (*changed) (EggRecentModel *model, GList *list);
-+};
-+
-+typedef enum {
-+ EGG_RECENT_MODEL_SORT_MRU,
-+ EGG_RECENT_MODEL_SORT_LRU,
-+ EGG_RECENT_MODEL_SORT_NONE
-+} EggRecentModelSort;
-+
-+
-+/* Standard group names */
-+#define EGG_RECENT_GROUP_LAUNCHERS "Launchers"
-+
-+
-+GType egg_recent_model_get_type (void);
-+
-+/* constructors */
-+EggRecentModel * egg_recent_model_new (EggRecentModelSort sort);
-+
-+/* public methods */
-+void egg_recent_model_set_filter_mime_types (EggRecentModel *model,
-+ ...);
-+
-+void egg_recent_model_set_filter_groups (EggRecentModel *model, ...);
-+
-+void egg_recent_model_set_filter_uri_schemes (EggRecentModel *model,
-+ ...);
-+
-+void egg_recent_model_set_sort (EggRecentModel *model,
-+ EggRecentModelSort sort);
-+
-+gboolean egg_recent_model_add_full (EggRecentModel *model,
-+ EggRecentItem *item);
-+
-+gboolean egg_recent_model_add (EggRecentModel *model,
-+ const gchar *uri);
-+
-+gboolean egg_recent_model_delete (EggRecentModel *model,
-+ const gchar *uri);
-+
-+void egg_recent_model_clear (EggRecentModel *model);
-+
-+GList * egg_recent_model_get_list (EggRecentModel *model);
-+
-+void egg_recent_model_changed (EggRecentModel *model);
-+
-+void egg_recent_model_set_limit (EggRecentModel *model, int limit);
-+int egg_recent_model_get_limit (EggRecentModel *model);
-+
-+void egg_recent_model_remove_expired (EggRecentModel *model);
-+
-+G_END_DECLS
-+
-+#endif /* __EGG_RECENT_MODEL_H__ */
-diff -uprN gnome-desktop-2.16.1-pristine/libgnome-desktop/gnome-desktop-item.c gnome-desktop-2.16.1/libgnome-desktop/gnome-desktop-item.c
---- gnome-desktop-2.16.1-pristine/libgnome-desktop/gnome-desktop-item.c 2006-08-05 07:59:08.000000000 -0400
-+++ gnome-desktop-2.16.1/libgnome-desktop/gnome-desktop-item.c 2006-10-23 17:15:41.000000000 -0400
-@@ -59,6 +59,16 @@
- #include <gtk/gtk.h>
- #endif
-
-+#include <gtk/gtkversion.h>
-+#if GTK_CHECK_VERSION (2,10,0)
-+# define USE_GTK_RECENT_MANAGER
-+# include <gtk/gtkrecentmanager.h>
-+#else
-+# include "egg-recent-item.h"
-+# define EGG_ENABLE_RECENT_FILES
-+# include "egg-recent-model.h"
-+#endif
-+
- #define sure_string(s) ((s)!=NULL?(s):"")
-
- struct _GnomeDesktopItem {
-@@ -128,6 +138,8 @@ static gboolean ditem_save (Gno
- const char *uri,
- GError **error);
-
-+static void update_recently_used_apps (const GnomeDesktopItem *item);
-+
- static int
- readbuf_getc (ReadBuf *rb)
- {
-@@ -2103,6 +2115,8 @@ gnome_desktop_item_launch_on_screen_with
- (flags & GNOME_DESKTOP_ITEM_LAUNCH_APPEND_PATHS),
- error);
-
-+ update_recently_used_apps (item);
-+
- return ret;
- }
-
-@@ -4098,3 +4112,71 @@ gnome_desktop_item_error_quark (void)
-
- return q;
- }
-+
-+static void
-+update_recently_used_apps (const GnomeDesktopItem *item)
-+{
-+#ifdef USE_GTK_RECENT_MANAGER
-+ GtkRecentManager *manager;
-+ GtkRecentData recent_data;
-+#else
-+ EggRecentModel *model;
-+ EggRecentItem *recent_item;
-+#endif
-+
-+
-+ if (! item)
-+ return;
-+
-+#ifdef USE_GTK_RECENT_MANAGER
-+ manager = gtk_recent_manager_get_default ();
-+
-+ if (! manager)
-+ return;
-+
-+ recent_data.display_name = NULL;
-+ recent_data.description = NULL;
-+ recent_data.mime_type = g_strdup ("application/x-desktop");
-+ recent_data.is_private = TRUE;
-+
-+ recent_data.app_name = g_strdup (g_get_application_name ());
-+ if (! recent_data.app_name)
-+ recent_data.app_name = g_strdup ("libgnomedesktop");
-+
-+ recent_data.app_exec = g_strdup (gnome_desktop_item_get_string (item, GNOME_DESKTOP_ITEM_EXEC));
-+ if (! recent_data.app_exec)
-+ recent_data.app_exec = g_strdup ("gnome-open %u");
-+
-+ recent_data.groups = g_new0 (gchar *, 2);
-+ recent_data.groups [0] = g_strdup ("recently-used-apps");
-+ recent_data.groups [1] = NULL;
-+
-+ gtk_recent_manager_add_full (manager, gnome_desktop_item_get_location (item), & recent_data);
-+
-+ g_free (recent_data.mime_type);
-+ g_free (recent_data.app_name);
-+ g_free (recent_data.app_exec);
-+ g_free (recent_data.groups [0]);
-+ g_free (recent_data.groups);
-+
-+#else
-+
-+ model = egg_recent_model_new (EGG_RECENT_MODEL_SORT_MRU);
-+
-+ if (! model)
-+ return;
-+
-+ recent_item = egg_recent_item_new_from_uri (gnome_desktop_item_get_location (item));
-+
-+ if (recent_item) {
-+ egg_recent_item_add_group (recent_item, "recently-used-apps");
-+ egg_recent_item_set_private (recent_item, TRUE);
-+
-+ egg_recent_model_add_full (model, recent_item);
-+
-+ egg_recent_item_unref (recent_item);
-+ }
-+
-+ g_object_unref (G_OBJECT (model));
-+#endif
-+}
diff --git a/gnome-base/gnome-desktop/gnome-desktop-2.22.3.ebuild b/gnome-base/gnome-desktop/gnome-desktop-2.22.3.ebuild
deleted file mode 100644
index da638dc..0000000
--- a/gnome-base/gnome-desktop/gnome-desktop-2.22.3.ebuild
+++ /dev/null
@@ -1,43 +0,0 @@
-# Copyright 1999-2007 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: $
-
-inherit gnome2 eutils
-
-DESCRIPTION="Libraries for the gnome desktop that is not part of the UI"
-HOMEPAGE="http://www.gnome.org/"
-
-LICENSE="GPL-2 FDL-1.1 LGPL-2"
-SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~sh ~sparc ~x86 ~x86-fbsd"
-IUSE="doc slab"
-
-RDEPEND=">=dev-libs/libxml2-2.4.20
- >=x11-libs/gtk+-2.11.3
- >=dev-libs/glib-2.15.4
- >=gnome-base/gconf-2
- >=gnome-base/libgnomeui-2.6
- >=x11-libs/startup-notification-0.5"
-DEPEND="${RDEPEND}
- app-text/scrollkeeper
- sys-devel/gettext
- >=dev-util/intltool-0.35
- >=dev-util/pkgconfig-0.9
- >=app-text/gnome-doc-utils-0.3.2
- doc? ( >=dev-util/gtk-doc-1.4 )
- ~app-text/docbook-xml-dtd-4.1.2
- x11-proto/xproto"
-# Includes X11/Xatom.h in libgnome-desktop/gnome-bg.c which comes from xproto
-
-DOCS="AUTHORS ChangeLog HACKING NEWS README"
-
-pkg_setup() {
- G2CONF="${G2CONF} --with-gnome-distributor=Gentoo --disable-scrollkeeper"
-}
-
-src_unpack() {
- gnome2_src_unpack
- cd "${S}"
-
- use slab && epatch ${FILESDIR}/gnome-desktop-recently-used-apps-2.patch
-}
diff --git a/gnome-base/gnome-desktop/gnome-desktop-2.24.1.ebuild b/gnome-base/gnome-desktop/gnome-desktop-2.24.1.ebuild
deleted file mode 100644
index 55f1bf8..0000000
--- a/gnome-base/gnome-desktop/gnome-desktop-2.24.1.ebuild
+++ /dev/null
@@ -1,41 +0,0 @@
-# Copyright 1999-2007 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/gnome-base/gnome-desktop/gnome-desktop-2.22.0.ebuild,v 1.1 2007/10/17 20:26:26 eva Exp $
-
-inherit gnome2 eutils
-
-DESCRIPTION="Libraries for the gnome desktop that are not part of the UI"
-HOMEPAGE="http://www.gnome.org/"
-
-LICENSE="GPL-2 FDL-1.1 LGPL-2"
-SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~sh ~sparc ~x86 ~x86-fbsd"
-IUSE="doc slab"
-
-RDEPEND=">=dev-libs/libxml2-2.4.20
- >=x11-libs/gtk+-2.11.3
- >=dev-libs/glib-2.15.4
- >=gnome-base/gconf-2
- >=gnome-base/libgnomeui-2.6
- >=x11-libs/startup-notification-0.5"
-DEPEND="${RDEPEND}
- app-text/rarian
- >=dev-util/intltool-0.40
- >=dev-util/pkgconfig-0.9
- >=app-text/gnome-doc-utils-0.3.2
- doc? ( >=dev-util/gtk-doc-1.4 )"
-
-DOCS="AUTHORS ChangeLog HACKING NEWS README"
-
-pkg_setup() {
- G2CONF="${G2CONF} --with-gnome-distributor=Gentoo"
-}
-
-src_unpack() {
- gnome2_src_unpack
-
- use slab && epatch "${FILESDIR}"/gnome-desktop-recently-used-apps-2.patch
- epatch "${FILESDIR}"/${PN}-2.23.2-xsltproc-nonet.patch
-
- eautoreconf
-}
diff --git a/gnome-base/gnome-panel/Manifest b/gnome-base/gnome-panel/Manifest
deleted file mode 100644
index b9c5371..0000000
--- a/gnome-base/gnome-panel/Manifest
+++ /dev/null
@@ -1,7 +0,0 @@
-AUX gnome-panel-2.24.1-logout.patch.gz 7181 RMD160 d61356aeb4bb96e0df30eb26303b1847793d8537 SHA1 2ad2c3a2b5c9d714d324e750f918023c3f5c85f4 SHA256 ff43145a3cc3187a52333ebc17aa1a0d390960e253fc3342e8e952e6578d9da7
-AUX gnome-panel-alt-f1-slab.patch 1458 RMD160 090bee7ad7933426509fde2a7305a410ebe92af8 SHA1 78b45ef6ca4234db783b3f23de4f2b9410a83c70 SHA256 d085431812451f471fa78aacd37f0fde85bc5e6588a7e525d3187002aa7f91e4
-AUX gnome-panel-recently-used-apps.patch 5005 RMD160 0d6a63ab97749a48d6ce4e2e00c6e78b999ca45c SHA1 caa02d33e97bae915b38607cdf48fa870d576d99 SHA256 2d5aa1ec0b9fa55744b22de3137d3305454e45786a5a150002199054a0462bcc
-DIST gnome-panel-2.22.2.tar.bz2 3255261 RMD160 64a37f44b9f34f74d30f30aca349749a24c80859 SHA1 73752c3ce6224886c2381b0b13111253008bc6f7 SHA256 e1ecc0ddc5a09481deb2daa1f30fa14472bfed541db46bb4f49f3d0d728b0a45
-DIST gnome-panel-2.24.1.tar.bz2 3354268 RMD160 84e7ccd0425c567c9b800cdfecb653f206cdf768 SHA1 01a2376582ba81b006511279767cb74ecb3332af SHA256 35a845990a8f56da191615a82e22f1be47657476647f4fb5c5148668cc999907
-EBUILD gnome-panel-2.22.2.ebuild 2327 RMD160 1e0879cfaadc4b3f56718047bead9aa327c2aebc SHA1 497e3439bf81796a40a15a6671fbf8a5a5467d13 SHA256 691a2b76599b561fd9e083c04042f4215c84a9ac5a4938aedda778f6bec2c7c7
-EBUILD gnome-panel-2.24.1-r1.ebuild 2361 RMD160 de035a15ed7b6a5d590c9ee7533acaf60e179c2f SHA1 36d0b09c1847e2530a8ebeb0887cdb2935824fee SHA256 206888f865a2e6c519b7e4065f5c2dbf224e58ce597f1db44cf694bd0663a28d
diff --git a/gnome-base/gnome-panel/files/gnome-panel-2.24.1-logout.patch.gz b/gnome-base/gnome-panel/files/gnome-panel-2.24.1-logout.patch.gz
deleted file mode 100644
index da56b16..0000000
--- a/gnome-base/gnome-panel/files/gnome-panel-2.24.1-logout.patch.gz
+++ /dev/null
Binary files differ
diff --git a/gnome-base/gnome-panel/files/gnome-panel-alt-f1-slab.patch b/gnome-base/gnome-panel/files/gnome-panel-alt-f1-slab.patch
deleted file mode 100644
index 084e1bf..0000000
--- a/gnome-base/gnome-panel/files/gnome-panel-alt-f1-slab.patch
+++ /dev/null
@@ -1,47 +0,0 @@
---- gnome-panel-2.12.2-orig/gnome-panel/panel-action-protocol.c 2005-01-12 05:16:41.000000000 +0100
-+++ gnome-panel-2.12.2/gnome-panel/panel-action-protocol.c 2006-05-11 15:01:49.000000000 +0200
-@@ -50,6 +50,7 @@ panel_action_protocol_main_menu (GdkScre
- PanelWidget *panel_widget;
- GtkWidget *menu;
- AppletInfo *info;
-+ gchar *path;
-
- info = panel_applet_get_by_type (PANEL_OBJECT_MENU_BAR, screen);
- if (info) {
-@@ -65,6 +66,36 @@ panel_action_protocol_main_menu (GdkScre
- return;
- }
-
-+ path = g_find_program_in_path ("application-browser");
-+ if (path) {
-+ static Atom action_atom = None, type_atom = None;
-+ static gboolean atoms_init = FALSE;
-+ XClientMessageEvent ev;
-+ Display *xdisplay = GDK_DISPLAY_XDISPLAY (gdk_display_get_default ());
-+
-+ if (!atoms_init) {
-+ action_atom = XInternAtom (xdisplay, "_SLAB_ACTION_MAIN_MENU", FALSE);
-+ type_atom = XInternAtom (xdisplay, "_SLAB_ACTION", FALSE);
-+
-+ atoms_init = TRUE;
-+ }
-+
-+ ev.type = ClientMessage;
-+ ev.window = RootWindow (xdisplay, DefaultScreen (xdisplay));
-+ ev.message_type = type_atom;
-+ ev.format = 32;
-+ ev.data.l[0] = action_atom;
-+ ev.data.l[1] = activate_time;
-+
-+ XUngrabKeyboard (xdisplay, activate_time);
-+ XSendEvent (xdisplay, RootWindow (xdisplay, DefaultScreen (xdisplay)),
-+ True, StructureNotifyMask, (XEvent*) &ev);
-+
-+ g_free (path);
-+
-+ return;
-+ }
-+
- panel_widget = panels->data;
- menu = create_main_menu (panel_widget);
-
diff --git a/gnome-base/gnome-panel/files/gnome-panel-recently-used-apps.patch b/gnome-base/gnome-panel/files/gnome-panel-recently-used-apps.patch
deleted file mode 100644
index d52fd12..0000000
--- a/gnome-base/gnome-panel/files/gnome-panel-recently-used-apps.patch
+++ /dev/null
@@ -1,197 +0,0 @@
-diff -uprN gnome-panel-2.16.1-pristine/gnome-panel/panel-run-dialog.c gnome-panel-2.16.1/gnome-panel/panel-run-dialog.c
---- gnome-panel-2.16.1-pristine/gnome-panel/panel-run-dialog.c 2006-08-07 17:07:46.000000000 -0400
-+++ gnome-panel-2.16.1/gnome-panel/panel-run-dialog.c 2006-10-23 18:11:16.000000000 -0400
-@@ -59,6 +59,14 @@
- #include "panel-lockdown.h"
- #include "panel-xutils.h"
-
-+#include <gtk/gtkversion.h>
-+#if GTK_CHECK_VERSION (2,10,0)
-+# define USE_GTK_RECENT_MANAGER
-+# include <gtk/gtkrecentmanager.h>
-+#else
-+# include "egg-recent-model.h"
-+#endif
-+
- typedef struct {
- GtkWidget *run_dialog;
-
-@@ -112,6 +120,8 @@ enum {
-
- static PanelRunDialog *static_dialog = NULL;
-
-+static void panel_run_dialog_update_recent_apps (PanelRunDialog *dialog, const gchar *cmd);
-+
- static void
- panel_run_dialog_destroy (PanelRunDialog *dialog)
- {
-@@ -420,6 +430,8 @@ panel_run_dialog_execute (PanelRunDialog
- gnome_entry_prepend_history (GNOME_ENTRY (dialog->gnome_entry),
- TRUE, /* save item in history */
- command);
-+
-+ panel_run_dialog_update_recent_apps (dialog, command);
-
- /* only close the dialog if we successfully showed or launched something */
- gtk_widget_destroy (dialog->run_dialog);
-@@ -672,6 +684,160 @@ panel_run_dialog_find_command_idle (Pane
- return FALSE;
- }
-
-+static void
-+panel_run_dialog_update_recent_apps (PanelRunDialog *dialog, const gchar *cmd)
-+{
-+ GtkTreeIter iter;
-+ GtkTreeModel *model = NULL;
-+ GtkTreePath *path = NULL;
-+
-+ gchar *found_ditem_path = NULL;
-+ gchar *found_ditem_uri = NULL;
-+ gchar *found_cmd = NULL;
-+
-+ gchar *cmd_i;
-+ gchar *ditem_path_i;
-+
-+ gboolean fuzzy;
-+
-+#ifdef USE_GTK_RECENT_MANAGER
-+ GtkRecentManager *recent_manager;
-+ GtkRecentData recent_data;
-+#else
-+ EggRecentModel *recent_model;
-+ EggRecentItem *recent_item;
-+#endif
-+
-+ GError *error = NULL;
-+
-+
-+ if (! cmd)
-+ return;
-+
-+ model = gtk_tree_view_get_model (GTK_TREE_VIEW (dialog->program_list));
-+ path = gtk_tree_path_new_first ();
-+
-+ if (! path || ! gtk_tree_model_get_iter (model, & iter, path)) {
-+ if (path)
-+ gtk_tree_path_free (path);
-+
-+ return;
-+ }
-+
-+ do {
-+ cmd_i = NULL;
-+ ditem_path_i = NULL;
-+
-+ gtk_tree_model_get (
-+ model, & iter,
-+ COLUMN_EXEC, & cmd_i,
-+ COLUMN_PATH, & ditem_path_i,
-+ -1
-+ );
-+
-+ if (cmd_i && ditem_path_i) {
-+ fuzzy = FALSE;
-+
-+ if (fuzzy_command_match (sure_string (cmd), cmd_i, & fuzzy)) {
-+ g_free (found_ditem_path);
-+
-+ found_ditem_path = g_strdup (ditem_path_i);
-+ found_cmd = g_strdup (cmd_i);
-+
-+ if (! fuzzy) {
-+ /*
-+ * if not fuzzy then we have a precise
-+ * match and we can quit, else keep
-+ * searching for a better match
-+ */
-+ g_free (cmd_i);
-+ g_free (ditem_path_i);
-+
-+ break;
-+ }
-+ }
-+ }
-+
-+ g_free (cmd_i);
-+ g_free (ditem_path_i);
-+
-+ } while (gtk_tree_model_iter_next (model, & iter));
-+
-+ gtk_tree_path_free (path);
-+
-+#ifdef USE_GTK_RECENT_MANAGER
-+ recent_manager = gtk_recent_manager_get_default ();
-+
-+ if (! recent_manager)
-+ goto exit;
-+#else
-+ recent_model = egg_recent_model_new (EGG_RECENT_MODEL_SORT_NONE);
-+
-+ if (! recent_model)
-+ goto exit;
-+#endif
-+
-+ if (found_ditem_path) {
-+ found_ditem_uri = g_filename_to_uri (found_ditem_path, NULL, & error);
-+
-+ if (! error) {
-+#ifdef USE_GTK_RECENT_MANAGER
-+ recent_data.display_name = NULL;
-+ recent_data.description = NULL;
-+ recent_data.mime_type = g_strdup ("application/x-desktop");
-+ recent_data.is_private = TRUE;
-+
-+ recent_data.app_name = g_strdup (g_get_application_name ());
-+ if (! recent_data.app_name)
-+ recent_data.app_name = g_strdup ("gnome-panel run dialog");
-+
-+ recent_data.app_exec = g_strdup (g_strdup (found_cmd));
-+ if (! recent_data.app_exec)
-+ recent_data.app_exec = g_strdup ("gnome-open %u");
-+
-+ recent_data.groups = g_new0 (gchar *, 2);
-+ recent_data.groups [0] = g_strdup ("recently-used-apps");
-+ recent_data.groups [1] = NULL;
-+
-+ gtk_recent_manager_add_full (recent_manager, found_ditem_uri, & recent_data);
-+
-+ g_free (recent_data.mime_type);
-+ g_free (recent_data.app_name);
-+ g_free (recent_data.app_exec);
-+ g_free (recent_data.groups [0]);
-+ g_free (recent_data.groups);
-+
-+#else
-+
-+ recent_item = egg_recent_item_new_from_uri (found_ditem_uri);
-+ egg_recent_item_add_group (recent_item, "recently-used-apps");
-+ egg_recent_item_set_private (recent_item, TRUE);
-+
-+ egg_recent_model_add_full (recent_model, recent_item);
-+
-+ if (recent_item)
-+ egg_recent_item_unref (recent_item);
-+#endif
-+ }
-+ else {
-+ g_warning ("unable to create uri from [%s] to insert into recent file list.\n",
-+ found_ditem_path);
-+
-+ g_error_free (error);
-+ }
-+ }
-+
-+#ifndef USE_GTK_RECENT_MANAGER
-+ g_object_unref (recent_model);
-+#endif
-+
-+exit:
-+
-+ g_free (found_ditem_path);
-+ g_free (found_ditem_uri);
-+ g_free (found_cmd);
-+}
-+
- static gboolean
- panel_run_dialog_add_icon_idle (PanelRunDialog *dialog)
- {
diff --git a/gnome-base/gnome-panel/gnome-panel-2.22.2.ebuild b/gnome-base/gnome-panel/gnome-panel-2.22.2.ebuild
deleted file mode 100644
index 4fee10d..0000000
--- a/gnome-base/gnome-panel/gnome-panel-2.22.2.ebuild
+++ /dev/null
@@ -1,87 +0,0 @@
-# Copyright 1999-2008 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: $
-
-inherit autotools eutils gnome2
-
-DESCRIPTION="The GNOME panel"
-HOMEPAGE="http://www.gnome.org/"
-
-LICENSE="GPL-2 FDL-1.1 LGPL-2"
-SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~sh ~sparc ~x86 ~x86-fbsd"
-IUSE="doc eds networkmanager policykit slab"
-
-RDEPEND=">=gnome-base/gnome-desktop-2.12
- >=x11-libs/pango-1.15.4
- >=dev-libs/glib-2.15.6
- >=x11-libs/gtk+-2.11.3
- >=dev-libs/libgweather-2.22.1
- dev-libs/libxml2
- >=gnome-base/libglade-2.5
- >=gnome-base/libgnome-2.13
- >=gnome-base/libgnomeui-2.5.4
- >=gnome-base/libbonoboui-2.1.1
- >=gnome-base/orbit-2.4
- >=x11-libs/libwnck-2.19.5
- >=gnome-base/gconf-2.6.1
- >=gnome-base/gnome-menus-2.11.1
- >=gnome-base/libbonobo-2
- gnome-base/librsvg
- >=dev-libs/dbus-glib-0.71
- >=sys-apps/dbus-1.1.2
- x11-libs/libXau
- >=x11-libs/cairo-1.0.0
- eds? ( >=gnome-extra/evolution-data-server-1.6 )
- networkmanager? ( >=net-misc/networkmanager-0.6 )
- policykit? ( >=gnome-extra/policykit-gnome-0.7 )"
-
-DEPEND="${RDEPEND}
- app-text/scrollkeeper
- >=app-text/gnome-doc-utils-0.3.2
- >=dev-util/pkgconfig-0.9
- >=dev-util/intltool-0.35
- ~app-text/docbook-xml-dtd-4.1.2
- doc? ( >=dev-util/gtk-doc-1 )"
-
-DOCS="AUTHORS ChangeLog HACKING NEWS README"
-
-pkg_setup() {
- G2CONF="${G2CONF}
- --disable-scrollkeeper
- --with-in-process-applets=clock,notification-area,wncklet
- $(use_enable networkmanager network-manager)
- $(use_enable eds)
- $(use_enable policykit polkit)"
-}
-
-src_unpack() {
- gnome2_src_unpack
-
- # FIXME : uh yeah, this is nice
- # We should patch in a switch here and send it upstream
- sed -i 's:--load:-v:' "${S}/gnome-panel/Makefile.in" || die "sed failed"
-
- if use slab; then
- epatch ${FILESDIR}/${PN}-alt-f1-slab.patch
- epatch ${FILESDIR}/${PN}-recently-used-apps.patch
- fi
-}
-
-pkg_postinst() {
- local entries="/etc/gconf/schemas/panel-default-setup.entries"
- local gconftool="${ROOT}usr/bin/gconftool-2"
-
- if [ -e "$entries" ]; then
- einfo "setting panel gconf defaults..."
-
- GCONF_CONFIG_SOURCE=$("${gconftool}" --get-default-source)
-
- "${gconftool}" --direct --config-source \
- "${GCONF_CONFIG_SOURCE}" --load="${entries}"
- fi
-
- # Calling this late so it doesn't process the GConf schemas file we already
- # took care of.
- gnome2_pkg_postinst
-}
diff --git a/gnome-base/gnome-panel/gnome-panel-2.24.1-r1.ebuild b/gnome-base/gnome-panel/gnome-panel-2.24.1-r1.ebuild
deleted file mode 100644
index 3ffe5e6..0000000
--- a/gnome-base/gnome-panel/gnome-panel-2.24.1-r1.ebuild
+++ /dev/null
@@ -1,87 +0,0 @@
-# Copyright 1999-2008 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/gnome-base/gnome-panel/gnome-panel-2.24.1-r1.ebuild,v 1.1 2008/11/16 21:00:31 eva Exp $
-
-inherit autotools gnome2
-
-DESCRIPTION="The GNOME panel"
-HOMEPAGE="http://www.gnome.org/"
-
-LICENSE="GPL-2 FDL-1.1 LGPL-2"
-SLOT="0"
-KEYWORDS="~alpha ~amd64 ~hppa ~ia64 ~ppc ~ppc64 ~sparc ~x86"
-IUSE="doc eds networkmanager slab"
-
-RDEPEND=">=gnome-base/gnome-desktop-2.12
- >=x11-libs/pango-1.15.4
- >=dev-libs/glib-2.16.0
- >=x11-libs/gtk+-2.13.1
- >=dev-libs/libgweather-2.24.1
- dev-libs/libxml2
- >=gnome-base/libglade-2.5
- >=gnome-base/libgnome-2.13
- >=gnome-base/libgnomeui-2.5.4
- >=gnome-base/libbonoboui-2.1.1
- >=gnome-base/orbit-2.4
- >=x11-libs/libwnck-2.19.5
- >=gnome-base/gconf-2.6.1
- >=gnome-base/gnome-menus-2.11.1
- >=gnome-base/libbonobo-2
- gnome-base/librsvg
- >=dev-libs/dbus-glib-0.71
- >=sys-apps/dbus-1.1.2
- x11-libs/libXau
- >=x11-libs/cairo-1.0.0
- eds? ( >=gnome-extra/evolution-data-server-1.6 )
- networkmanager? ( >=net-misc/networkmanager-0.6 )"
-DEPEND="${RDEPEND}
- app-text/scrollkeeper
- >=app-text/gnome-doc-utils-0.3.2
- >=dev-util/pkgconfig-0.9
- >=dev-util/intltool-0.40
- ~app-text/docbook-xml-dtd-4.1.2
- doc? ( >=dev-util/gtk-doc-1 )"
-
-DOCS="AUTHORS ChangeLog HACKING NEWS README"
-
-pkg_setup() {
- G2CONF="${G2CONF}
- --disable-scrollkeeper
- --disable-schemas-install
- --with-in-process-applets=clock,notification-area,wncklet
- --disable-polkit
- $(use_enable networkmanager network-manager)
- $(use_enable eds)"
-}
-
-src_unpack() {
- gnome2_src_unpack
-
- # Allow logout/shutdown without gnome-session 2.24, bug #246170
- epatch "${FILESDIR}/${PN}-2.24.1-logout.patch.gz"
-
- if use slab; then
- epatch "${FILESDIR}/${PN}-alt-f1-slab.patch"
- epatch "${FILESDIR}/${PN}-recently-used-apps.patch"
- fi
-
- eautomake
-}
-
-pkg_postinst() {
- local entries="${ROOT}etc/gconf/schemas/panel-default-setup.entries"
- local gconftool="${ROOT}usr/bin/gconftool-2"
-
- if [ -e "$entries" ]; then
- einfo "setting panel gconf defaults..."
-
- GCONF_CONFIG_SOURCE="$("${gconftool}" --get-default-source | sed "s;:/;:${ROOT};")"
-
- "${gconftool}" --direct --config-source \
- "${GCONF_CONFIG_SOURCE}" --load="${entries}"
- fi
-
- # Calling this late so it doesn't process the GConf schemas file we already
- # took care of.
- gnome2_pkg_postinst
-}
diff --git a/gnome-base/gnome-shell/Manifest b/gnome-base/gnome-shell/Manifest
index cb4257d..467cb25 100644
--- a/gnome-base/gnome-shell/Manifest
+++ b/gnome-base/gnome-shell/Manifest
@@ -1,3 +1,3 @@
DIST gnome-shell-2.27.1.tar.bz2 464266 RMD160 8133ae2f0f298fac23a01e3f0487cff6b1dcfad1 SHA1 d321629fdeb29418f016e9123291980ed78e19c1 SHA256 ae2725f6e2c1ea94477045afedf0845dcada2e2ffacfa5b8d2437fbf9b6b6de5
-EBUILD gnome-shell-2.27.1.ebuild 1330 RMD160 d0d586117ed13aec4847b80661b0d22deb06c567 SHA1 7959862c303198a3a0677f4991b7628a242a7b7e SHA256 36765e994eb88e9e9999637189155f0ab743c79a3514541e850dc39256edc77d
+EBUILD gnome-shell-2.27.1.ebuild 1223 RMD160 f657ec2b3a26dfa6092a4534ec78856876b53c60 SHA1 ba3ce49951e6022451c84212348741e0bcc9a276 SHA256 7fc5266497ea85dd798a3be4cefc5d359ddc2dfe4eebe7b2383c239d33259370
EBUILD gnome-shell-9999.ebuild 1497 RMD160 300969ecfd1f9057ddd9616d39a7de9e9ac36c00 SHA1 98648fa780a42fb761d4c5e07709720ccac9ee43 SHA256 d20cde677baf2a1fb1bd77a7db6c9424a24a48175753c60c7cfac37ede254244
diff --git a/gnome-base/gnome-shell/gnome-shell-2.27.1.ebuild b/gnome-base/gnome-shell/gnome-shell-2.27.1.ebuild
index aafc0ab..5aa3914 100644
--- a/gnome-base/gnome-shell/gnome-shell-2.27.1.ebuild
+++ b/gnome-base/gnome-shell/gnome-shell-2.27.1.ebuild
@@ -1,6 +1,6 @@
# Copyright 1999-2009 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/gnome-base/gnome-panel/gnome-panel-2.26.3.ebuild,v 1.1 2009/07/09 21:14:07 eva Exp $
+# $Header: $
EAPI="2"
diff --git a/gnome-extra/gnome-main-menu/Manifest b/gnome-extra/gnome-main-menu/Manifest
deleted file mode 100644
index eeb21e0..0000000
--- a/gnome-extra/gnome-main-menu/Manifest
+++ /dev/null
@@ -1,8 +0,0 @@
-AUX 03-configure.in-remove-gtk-doc.patch 275 RMD160 ec622845ded0b8e375e51b5b18f55466fd5d37d6 SHA1 496a777c80a8481551d96cc770870874280fa8e8 SHA256 f46b2136783562b4a4e5433067df27a6efff65764f20f163f2f1e694647cf944
-AUX 03-tracker-search.patch 714 RMD160 daa5b0e6d26930edc0c53394e99286dd761b4021 SHA1 9faf44d33f002d5ebdbb93b212c6f429d933d83c SHA256 7c9477a924f30c0a869b8232b6f6b575a614d02f046c52896ef75468558d571f
-AUX 04-disable-search.patch 595 RMD160 6d50cf4442e34119909e47a11157d985a098681d SHA1 2e51810689bee5b69b13276c3bec3810418b7b4c SHA256 b901cdd617380c3024b7f8c8aaedfd3e84115ede27ff33ec67c427f9a692eced
-AUX gnome-main-menu-gentooifications.patch 641 RMD160 beaa96f51ddd91d02ef3b8b6b44aa50c7eb16551 SHA1 001b7ed095222a655fc3766d188ffc8fac8e4afa SHA256 e39c1af38cf70393bead0e2e69df0bb70fa4259059a01ade0c6fa91716b48df1
-AUX gnome-main-menu-libssui.patch 1558 RMD160 11d9c5e14f3934bbae8819823569b29351ef425d SHA1 3f4fa94baf1f08f91ddd3021b8a51e6457a0788d SHA256 3d5728ad444c398b0354ad73d811c5f5e837af552a5db0a7d623ada35231bcba
-DIST gnome-main-menu-0.9.9.tar.bz2 577138 RMD160 e0a8571dc175321536f5d9a62e5b2f6911527605 SHA1 f97c79da9ead64411f3c975efdc8716208c07d39 SHA256 403062abf3288cb00c5e3105c6b4ebe867301016c0f06111bd4d954c9fce7fe7
-EBUILD gnome-main-menu-0.9.9.ebuild 1983 RMD160 5e985b38de2c69d2e5a0e0e7584fb7fd9358d620 SHA1 e5a5f306337580eeb69cf92c70c05562a7e4e2cc SHA256 aae82e6fb70d5b77a4bc4e7fe91d83765a36de468bb566e4f0699819cbf5c4cd
-EBUILD gnome-main-menu-9999.ebuild 2121 RMD160 38ad508d36aabb1fb2d68c6d135e5636eeddb406 SHA1 c79eef8965fa7a0fa758abdeeb836e8ad6e4516b SHA256 2c8b7ef57c2161b56343deee7a27183f3c9de6d4b6a04f62673a4f32d5a487aa
diff --git a/gnome-extra/gnome-main-menu/files/03-configure.in-remove-gtk-doc.patch b/gnome-extra/gnome-main-menu/files/03-configure.in-remove-gtk-doc.patch
deleted file mode 100644
index 97b97e1..0000000
--- a/gnome-extra/gnome-main-menu/files/03-configure.in-remove-gtk-doc.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff -ru slab-orig/configure.in slab/configure.in
---- configure.in
-+++ configure.in
-@@ -154,8 +154,6 @@
- dnl End: Nautilus Extension
- dnl ==============================================
-
--GTK_DOC_CHECK(1.0)
--
- AC_CONFIG_FILES([
- Makefile
- application-browser/etc/Makefile
-
diff --git a/gnome-extra/gnome-main-menu/files/03-tracker-search.patch b/gnome-extra/gnome-main-menu/files/03-tracker-search.patch
deleted file mode 100644
index 172f782..0000000
--- a/gnome-extra/gnome-main-menu/files/03-tracker-search.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-Index: main-menu/etc/slab.schemas.in.in
-===================================================================
---- main-menu/etc/slab.schemas.in.in (revision 278)
-+++ main-menu/etc/slab.schemas.in.in (working copy)
-@@ -77,7 +77,7 @@
- <applyto>/desktop/gnome/applications/main-menu/search_command</applyto>
- <owner>gnome-main-menu</owner>
- <type>string</type>
-- <default>beagle-search SEARCH_STRING</default>
-+ <default>tracker-search-tool SEARCH_STRING</default>
- <locale name="C">
- <short>This is the command to execute when the search entry is used.</short>
- <long>This is the command to execute when the search entry is used. SEARCH_STRING is replaced with the entered search text.</long>
diff --git a/gnome-extra/gnome-main-menu/files/04-disable-search.patch b/gnome-extra/gnome-main-menu/files/04-disable-search.patch
deleted file mode 100644
index d5c3ce7..0000000
--- a/gnome-extra/gnome-main-menu/files/04-disable-search.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-Index: main-menu/etc/slab.schemas.in.in
-===================================================================
---- main-menu/etc/slab.schemas.in.in (revision 278)
-+++ main-menu/etc/slab.schemas.in.in (working copy)
-@@ -186,7 +186,7 @@
- <applyto>/desktop/gnome/applications/main-menu/lock-down/search_area_visible</applyto>
- <owner>gnome-main-menu</owner>
- <type>bool</type>
-- <default>true</default>
-+ <default>false</default>
- <locale name="C">
- <short>lock-down status for the search area</short>
- <long>set to true if the search area should be visible and active.</long>
diff --git a/gnome-extra/gnome-main-menu/files/gnome-main-menu-gentooifications.patch b/gnome-extra/gnome-main-menu/files/gnome-main-menu-gentooifications.patch
deleted file mode 100644
index e276fee..0000000
--- a/gnome-extra/gnome-main-menu/files/gnome-main-menu-gentooifications.patch
+++ /dev/null
@@ -1,12 +0,0 @@
---- main-menu/etc/applications.xbel
-+++ main-menu/etc/applications.xbel
-@@ -3,7 +3,7 @@
- xmlns:bookmark="http://www.freedesktop.org/standards/desktop-bookmarks"
- xmlns:mime="http://www.freedesktop.org/standards/shared-mime-info"
- >
-- <bookmark href="MozillaFirefox.desktop" added="2007-01-16T05:51:22Z" modified="2007-01-16T05:51:22Z" visited="2007-01-16T05:51:22Z">
-+ <bookmark href="mozilla-firefox-2.0.desktop" added="2007-01-16T05:51:22Z" modified="2007-01-16T05:51:22Z" visited="2007-01-16T05:51:22Z">
- <info>
- <metadata owner="http://freedesktop.org">
- <mime:mime-type type="application/x-desktop"/>
-
diff --git a/gnome-extra/gnome-main-menu/files/gnome-main-menu-libssui.patch b/gnome-extra/gnome-main-menu/files/gnome-main-menu-libssui.patch
deleted file mode 100644
index 4e98916..0000000
--- a/gnome-extra/gnome-main-menu/files/gnome-main-menu-libssui.patch
+++ /dev/null
@@ -1,35 +0,0 @@
---- main-menu/etc/system-items.xbel
-+++ main-menu/etc/system-items.xbel
-@@ -56,7 +56,7 @@
- </metadata>
- </info>
- </bookmark>
-- <bookmark href="gnome-session-kill.desktop" added="2007-01-16T05:53:36Z" modified="2007-01-16T05:53:36Z" visited="2007-01-16T05:53:36Z">
-+ <bookmark href="gnome-session-logout.desktop" added="2007-01-16T05:53:36Z" modified="2007-01-16T05:53:36Z" visited="2007-01-16T05:53:36Z">
- <title>Logout</title>
- <info>
- <metadata owner="http://freedesktop.org">
-@@ -65,7 +65,21 @@
- <bookmark:group>rank-4</bookmark:group>
- </bookmark:groups>
- <bookmark:applications>
-- <bookmark:application name="Logout" exec="gnome-session-save --kill" timestamp="1168926816" count="1"/>
-+ <bookmark:application name="Logout" exec="libssui-tool --logout" timestamp="1168926816" count="1"/>
-+ </bookmark:applications>
-+ </metadata>
-+ </info>
-+ </bookmark>
-+ <bookmark href="gnome-session-shutdown.desktop" added="2007-01-16T05:53:36Z" modified="2007-01-16T05:53:36Z" visited="2007-01-16T05:53:36Z">
-+ <title>Shutdown</title>
-+ <info>
-+ <metadata owner="http://freedesktop.org">
-+ <mime:mime-type type="application/x-desktop"/>
-+ <bookmark:groups>
-+ <bookmark:group>rank-5</bookmark:group>
-+ </bookmark:groups>
-+ <bookmark:applications>
-+ <bookmark:application name="Shutdown" exec="libssui-tool --shutdown" timestamp="1168926816" count="1"/>
- </bookmark:applications>
- </metadata>
- </info>
-
diff --git a/gnome-extra/gnome-main-menu/gnome-main-menu-0.9.9.ebuild b/gnome-extra/gnome-main-menu/gnome-main-menu-0.9.9.ebuild
deleted file mode 100644
index 0aa3b33..0000000
--- a/gnome-extra/gnome-main-menu/gnome-main-menu-0.9.9.ebuild
+++ /dev/null
@@ -1,74 +0,0 @@
-# Copyright 2000-2006 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: $
-
-inherit autotools eutils gnome2
-
-DESCRIPTION="The new Desktop Menu from SUSE"
-HOMEPAGE="http://www.novell.com/products/desktop/preview.html"
-
-LICENSE="LGPL-2.1"
-SLOT="0"
-KEYWORDS="~x86"
-IUSE="beagle doc libssui nautilus tracker"
-
-RDEPEND=">=dev-libs/glib-2.8.0
- >=x11-libs/gtk+-2
- >=gnome-base/libglade-2
- >=gnome-base/gnome-desktop-2
- >=gnome-base/gnome-panel-2
- >=gnome-base/librsvg-2
- >=gnome-base/eel-2
- >=gnome-base/gnome-menus-2
- >=gnome-base/gconf-2
- >=gnome-base/libgtop-2
- >=gnome-base/libgnome-2
- >=gnome-base/libgnomeui-2
- dev-libs/dbus-glib
- =net-misc/networkmanager-0.6*
- sys-apps/hal
- x11-libs/cairo
- x11-libs/pango
- libssui? ( >=gnome-extra/libssui-0.5.6 )
- nautilus? ( >=gnome-base/nautilus-2.6
- >=gnome-base/gnome-vfs-2 )
- tracker? ( app-misc/tracker )"
-
-DEPEND="${RDEPEND}
- doc? (
- dev-util/gtk-doc
- )"
-
-src_unpack() {
- gnome2_src_unpack
- cd ${S}
-
- gnome2_omf_fix
-
- epatch "${FILESDIR}"/gnome-main-menu-gentooifications.patch
- use libssui && epatch "${FILESDIR}"/gnome-main-menu-libssui.patch
- use doc || epatch "${FILESDIR}"/03-configure.in-remove-gtk-doc.patch
- if use tracker && ! use beagle ; then
- epatch ${FILESDIR}/03-tracker-search.patch
- elif ! use tracker && ! use beagle ; then
- epatch ${FILESDIR}/04-disable-search.patch
- fi
-
- G2CONF="`use_enable nautilus nautilus-extension`"
- intltoolize --force || die "intloolize failed"
- eautoreconf || die "eautoreconf failed"
-}
-
-pkg_postinst() {
-
- elog
- elog " If you want to have recent applications-support working, you should "
- elog " also use the patched gnome-panel and gnome-desktop packages from this "
- elog " overlay "
- elog
- if use tracker && use beagle ; then
- ewarn " You have both beagle and tracker set in your USE flags. "
- ewarn " Beagle will be used by default. If you would like to use "
- ewarn " tracker, emerge this package with the beagle USE flag unset. "
- fi
-}
diff --git a/gnome-extra/gnome-main-menu/gnome-main-menu-9999.ebuild b/gnome-extra/gnome-main-menu/gnome-main-menu-9999.ebuild
deleted file mode 100644
index a9bb1c6..0000000
--- a/gnome-extra/gnome-main-menu/gnome-main-menu-9999.ebuild
+++ /dev/null
@@ -1,79 +0,0 @@
-# Copyright 2000-2006 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: $
-
-inherit autotools eutils subversion gnome2
-
-DESCRIPTION="The new Desktop Menu from SUSE"
-HOMEPAGE="http://www.novell.com/products/desktop/preview.html"
-
-# Have to set SRC_URI blank or gnome2 eclass tries to fetch package
-SRC_URI=""
-
-ESVN_REPO_URI="http://svn.gnome.org/svn/gnome-main-menu/trunk"
-
-S="${WORKDIR}/${PN}"
-
-LICENSE="LGPL-2.1"
-SLOT="0"
-KEYWORDS="~x86"
-IUSE="beagle doc libssui nautilus tracker"
-
-RDEPEND=">=dev-libs/glib-2.12
- >=x11-libs/gtk+-2.13.3
- >=gnome-base/libglade-2
- >=gnome-base/gnome-desktop-2
- >=gnome-base/gnome-panel-2
- >=gnome-base/librsvg-2
- >=gnome-base/gnome-menus-2
- >=gnome-base/gconf-2
- >=gnome-base/libgtop-2
- >=gnome-base/libgnome-2
- >=gnome-base/libgnomeui-2
- dev-libs/dbus-glib
- >=net-misc/networkmanager-0.7
- sys-apps/hal
- x11-libs/cairo
- x11-libs/pango
- libssui? ( >=gnome-extra/libssui-0.5.6 )
- nautilus? ( >=gnome-base/nautilus-2.6 )
- tracker? ( app-misc/tracker )"
-
-DEPEND="${RDEPEND}
- doc? (
- dev-util/gtk-doc
- )"
-
-src_unpack() {
- subversion_src_unpack
- cd ${S}
-
- gnome2_omf_fix
-
- epatch "${FILESDIR}"/gnome-main-menu-gentooifications.patch
- use libssui && epatch "${FILESDIR}"/gnome-main-menu-libssui.patch
- use doc || epatch "${FILESDIR}"/03-configure.in-remove-gtk-doc.patch
- if use tracker && ! use beagle ; then
- epatch ${FILESDIR}/03-tracker-search.patch
- elif ! use tracker && ! use beagle ; then
- epatch ${FILESDIR}/04-disable-search.patch
- fi
-
- G2CONF="`use_enable nautilus nautilus-extension`"
- intltoolize --force || die "intloolize failed"
- eautoreconf || die "eautoreconf failed"
-}
-
-pkg_postinst() {
-
- elog
- elog " If you want to have recent applications-support working, you should "
- elog " also use the patched gnome-panel and gnome-desktop packages from this "
- elog " overlay "
- elog
- if use tracker && use beagle ; then
- ewarn " You have both beagle and tracker set in your USE flags. "
- ewarn " Beagle will be used by default. If you would like to use "
- ewarn " tracker, emerge this package with the beagle USE flag unset. "
- fi
-}
diff --git a/gnome-extra/libssui/Manifest b/gnome-extra/libssui/Manifest
deleted file mode 100644
index 96cd5cc..0000000
--- a/gnome-extra/libssui/Manifest
+++ /dev/null
@@ -1,20 +0,0 @@
-AUX libssui-missing-options.patch 9072 RMD160 71bd385844734caeae2dc8868968fcdd6470ae95 SHA1 9c20fae585fa950f87e65fa782260cccb167d9fe SHA256 0187698c4cae22290601c6d3fe9ec29540708c5b7d56b0d2d9884e8ce25f6c5b
-MD5 2abfaf85c42bbce4f1fa62d632b43e26 files/libssui-missing-options.patch 9072
-RMD160 71bd385844734caeae2dc8868968fcdd6470ae95 files/libssui-missing-options.patch 9072
-SHA256 0187698c4cae22290601c6d3fe9ec29540708c5b7d56b0d2d9884e8ce25f6c5b files/libssui-missing-options.patch 9072
-AUX libssui-pm-dbus.patch 1531 RMD160 d0c1796e909dd58d5a4e37ac2c1e888594c394a9 SHA1 ce3e510843559344609203e559c6abe865ea5af1 SHA256 a22b43286f3a9b94137d4609ac671d59f8893f8afa7db68c36c00d2058c42b25
-MD5 eaa9f55652f21deca1e1dec77305e856 files/libssui-pm-dbus.patch 1531
-RMD160 d0c1796e909dd58d5a4e37ac2c1e888594c394a9 files/libssui-pm-dbus.patch 1531
-SHA256 a22b43286f3a9b94137d4609ac671d59f8893f8afa7db68c36c00d2058c42b25 files/libssui-pm-dbus.patch 1531
-AUX libssui-wrong-icon.patch 867 RMD160 eea4cd9dea5888d22a87d977ba4b37481e9caf96 SHA1 f0d5d5ec0e9d06b66de63e86d612365c4622a6a0 SHA256 b5ba1046b68879780761b64d70d9a401c3b3940430e6cc38803ebd283cdc87dd
-MD5 0a5e57f7dc2ff300477d9c870244010a files/libssui-wrong-icon.patch 867
-RMD160 eea4cd9dea5888d22a87d977ba4b37481e9caf96 files/libssui-wrong-icon.patch 867
-SHA256 b5ba1046b68879780761b64d70d9a401c3b3940430e6cc38803ebd283cdc87dd files/libssui-wrong-icon.patch 867
-DIST libssui-0.5.7.tar.gz 419490 RMD160 de642c5ab869796b5b515baafd38a39924dc7b0f SHA1 a2498f67c07fb7c10a50a5caaac5363666a6d792 SHA256 60bd3eed9a14c9567e5eadd0ea12ead313426432c591691ef9a61aae372cd78d
-EBUILD libssui-0.5.7.ebuild 739 RMD160 32c7face76365351daaed216841d49066f781512 SHA1 2a24b106770d92559cea37e80ca2bbb7026d02f1 SHA256 d6b7196077cbc09907d3f1f26ed49cf5a0ad0a6fd65b30097637bd5943fb1b6a
-MD5 876e8e46d966b6c20ff89e89db90d0ae libssui-0.5.7.ebuild 739
-RMD160 32c7face76365351daaed216841d49066f781512 libssui-0.5.7.ebuild 739
-SHA256 d6b7196077cbc09907d3f1f26ed49cf5a0ad0a6fd65b30097637bd5943fb1b6a libssui-0.5.7.ebuild 739
-MD5 3ad4501f2d46fed0acc78f6d1940f934 files/digest-libssui-0.5.7 241
-RMD160 16e0bd7c927e823145a14f6ed6b3d8cbe66feb56 files/digest-libssui-0.5.7 241
-SHA256 f914af79cadade95aaa17695750d527bb07cd6e2181ba52ef014f0c2b38f613f files/digest-libssui-0.5.7 241
diff --git a/gnome-extra/libssui/files/libssui-missing-options.patch b/gnome-extra/libssui/files/libssui-missing-options.patch
deleted file mode 100644
index 7f415bf..0000000
--- a/gnome-extra/libssui/files/libssui-missing-options.patch
+++ /dev/null
@@ -1,305 +0,0 @@
---- libssui-0.5.7/src/logout-dialog.c
-+++ libssui-0.5.7/src/logout-dialog.c
-@@ -190,7 +190,6 @@
- // GdkWindow *parent;
- int monitor = 0;
- int selected_option;
-- gboolean haveOption = FALSE;
-
- // gsm_verbose ("display_gui: showing logout dialog\n");
-
-@@ -257,7 +256,6 @@
-
- if(dlg_option & SSUI_OPTION_LOGOUT)
- {
-- haveOption = TRUE;
- image = NULL;
- if(gtk_icon_theme_has_icon(iconTheme, "system-log-out"))
- {
-@@ -295,7 +293,6 @@
-
- if(dlg_option & SSUI_OPTION_LOCK)
- {
-- haveOption = TRUE;
- image = NULL;
- if(gtk_icon_theme_has_icon(iconTheme, "system-lock-screen"))
- {
-@@ -333,150 +330,154 @@
-
- if(dlg_option & SSUI_OPTION_SHUTDOWN)
- {
-- if(gdm_supports_logout_action (GDM_LOGOUT_ACTION_SHUTDOWN))
-+ image = NULL;
-+ if(gtk_icon_theme_has_icon(iconTheme, "system-shutdown"))
- {
-- image = NULL;
-- if(gtk_icon_theme_has_icon(iconTheme, "system-shutdown"))
-- {
-- themePixbuf = gtk_icon_theme_load_icon(iconTheme,
-- "system-shutdown", 48, 0, &error);
-- if(themePixbuf != NULL)
-- image = gtk_image_new_from_pixbuf(themePixbuf);
-- else
-- image = NULL;
-- }
-- else if(gtk_icon_theme_has_icon(iconTheme, "gnome-shutdown"))
-- {
-- themePixbuf = gtk_icon_theme_load_icon(iconTheme,
-- "gnome-shutdown", 48, 0, &error);
-- if(themePixbuf != NULL)
-- image = gtk_image_new_from_pixbuf(themePixbuf);
-- else
-- image = NULL;
-- }
-- if(image == NULL)
-- {
-- image = gtk_image_new_from_stock (GTK_STOCK_DIALOG_QUESTION,
-- GTK_ICON_SIZE_DIALOG);
-- }
-- tile = ssui_get_tile(image, _("_Shutdown"),
-- _("Ends your session and turns off the computer."));
-- g_signal_connect (G_OBJECT (tile), "clicked",
-- G_CALLBACK (shutdown_button_clicked), logoutDlg);
-+ themePixbuf = gtk_icon_theme_load_icon(iconTheme,
-+ "system-shutdown", 48, 0, &error);
-+ if(themePixbuf != NULL)
-+ image = gtk_image_new_from_pixbuf(themePixbuf);
-+ else
-+ image = NULL;
-+ }
-+ else if(gtk_icon_theme_has_icon(iconTheme, "gnome-shutdown"))
-+ {
-+ themePixbuf = gtk_icon_theme_load_icon(iconTheme,
-+ "gnome-shutdown", 48, 0, &error);
-+ if(themePixbuf != NULL)
-+ image = gtk_image_new_from_pixbuf(themePixbuf);
-+ else
-+ image = NULL;
-+ }
-+ if(image == NULL)
-+ {
-+ image = gtk_image_new_from_stock (GTK_STOCK_DIALOG_QUESTION,
-+ GTK_ICON_SIZE_DIALOG);
-+ }
-+ tile = ssui_get_tile(image, _("_Shutdown"),
-+ _("Ends your session and turns off the computer."));
-+ g_signal_connect (G_OBJECT (tile), "clicked",
-+ G_CALLBACK (shutdown_button_clicked), logoutDlg);
-
-- gtk_box_pack_start (GTK_BOX (vbox), tile, TRUE, TRUE, 0);
-- gtk_widget_show_all(tile);
-+ if(!gdm_supports_logout_action (GDM_LOGOUT_ACTION_SHUTDOWN))
-+ {
-+ gtk_widget_set_sensitive(tile, FALSE);
- }
-+
-+ gtk_box_pack_start (GTK_BOX (vbox), tile, TRUE, TRUE, 0);
-+ gtk_widget_show_all(tile);
- }
-
-
-
- if(dlg_option & SSUI_OPTION_RESTART)
- {
-- if(gdm_supports_logout_action (GDM_LOGOUT_ACTION_REBOOT))
-+ image = NULL;
-+ if(gtk_icon_theme_has_icon(iconTheme, "stock_refresh"))
- {
-- haveOption = TRUE;
-- image = NULL;
-- if(gtk_icon_theme_has_icon(iconTheme, "stock_refresh"))
-- {
-- themePixbuf = gtk_icon_theme_load_icon(iconTheme,
-- "stock_refresh", 48, 0, &error);
-- if(themePixbuf != NULL)
-- image = gtk_image_new_from_pixbuf(themePixbuf);
-- else
-- image = NULL;
-- }
-- else if(gtk_icon_theme_has_icon(iconTheme, "gnome-reboot"))
-- {
-- themePixbuf = gtk_icon_theme_load_icon(iconTheme,
-- "gnome-reboot", 48, 0, &error);
-- if(themePixbuf != NULL)
-- image = gtk_image_new_from_pixbuf(themePixbuf);
-- else
-- image = NULL;
-- }
-- if(image == NULL)
-- {
-- image = gtk_image_new_from_stock (GTK_STOCK_DIALOG_QUESTION,
-- GTK_ICON_SIZE_DIALOG);
-- }
-- tile = ssui_get_tile(image, _("_Restart"),
-- _("Ends your session and restarts the computer."));
-- g_signal_connect (G_OBJECT (tile), "clicked",
-- G_CALLBACK (restart_button_clicked), logoutDlg);
-+ themePixbuf = gtk_icon_theme_load_icon(iconTheme,
-+ "stock_refresh", 48, 0, &error);
-+ if(themePixbuf != NULL)
-+ image = gtk_image_new_from_pixbuf(themePixbuf);
-+ else
-+ image = NULL;
-+ }
-+ else if(gtk_icon_theme_has_icon(iconTheme, "gnome-reboot"))
-+ {
-+ themePixbuf = gtk_icon_theme_load_icon(iconTheme,
-+ "gnome-reboot", 48, 0, &error);
-+ if(themePixbuf != NULL)
-+ image = gtk_image_new_from_pixbuf(themePixbuf);
-+ else
-+ image = NULL;
-+ }
-+ if(image == NULL)
-+ {
-+ image = gtk_image_new_from_stock (GTK_STOCK_DIALOG_QUESTION,
-+ GTK_ICON_SIZE_DIALOG);
-+ }
-+ tile = ssui_get_tile(image, _("_Restart"),
-+ _("Ends your session and restarts the computer."));
-+ g_signal_connect (G_OBJECT (tile), "clicked",
-+ G_CALLBACK (restart_button_clicked), logoutDlg);
-
-- gtk_box_pack_start (GTK_BOX (vbox), tile, TRUE, TRUE, 0);
-- gtk_widget_show_all(tile);
-+ if(!gdm_supports_logout_action (GDM_LOGOUT_ACTION_REBOOT))
-+ {
-+ gtk_widget_set_sensitive(tile, FALSE);
- }
-+
-+ gtk_box_pack_start (GTK_BOX (vbox), tile, TRUE, TRUE, 0);
-+ gtk_widget_show_all(tile);
- }
-
-
-
- if(dlg_option & SSUI_OPTION_SLEEP)
- {
-- if(panel_power_manager_can_suspend(powerManager))
-+ image = NULL;
-+ if(gtk_icon_theme_has_icon(iconTheme, "sleep"))
- {
-- haveOption = TRUE;
-- image = NULL;
-- if(gtk_icon_theme_has_icon(iconTheme, "sleep"))
-- {
-- themePixbuf = gtk_icon_theme_load_icon(iconTheme,
-- "sleep", 48, 0, &error);
-- if(themePixbuf != NULL)
-- image = gtk_image_new_from_pixbuf(themePixbuf);
-- else
-- image = NULL;
-- }
-- if(image == NULL)
-- {
-- image = gtk_image_new_from_stock (GTK_STOCK_DIALOG_QUESTION,
-- GTK_ICON_SIZE_DIALOG);
-- }
-- tile = ssui_get_tile(image, _("Slee_p"),
-- _("Suspends your session quickly, using minimal power while the computer stands by."));
-- g_signal_connect (G_OBJECT (tile), "clicked",
-- G_CALLBACK (sleep_button_clicked), logoutDlg);
-+ themePixbuf = gtk_icon_theme_load_icon(iconTheme,
-+ "sleep", 48, 0, &error);
-+ if(themePixbuf != NULL)
-+ image = gtk_image_new_from_pixbuf(themePixbuf);
-+ else
-+ image = NULL;
-+ }
-+ if(image == NULL)
-+ {
-+ image = gtk_image_new_from_stock (GTK_STOCK_DIALOG_QUESTION,
-+ GTK_ICON_SIZE_DIALOG);
-+ }
-+ tile = ssui_get_tile(image, _("Slee_p"),
-+ _("Suspends your session quickly, using minimal power while the computer stands by."));
-+ g_signal_connect (G_OBJECT (tile), "clicked",
-+ G_CALLBACK (sleep_button_clicked), logoutDlg);
-
-- gtk_box_pack_start (GTK_BOX (vbox), tile, TRUE, TRUE, 0);
-- gtk_widget_show_all(tile);
-+ if(!panel_power_manager_can_suspend(powerManager))
-+ {
-+ gtk_widget_set_sensitive(tile, FALSE);
- }
-+
-+ gtk_box_pack_start (GTK_BOX (vbox), tile, TRUE, TRUE, 0);
-+ gtk_widget_show_all(tile);
- }
-
-
- if(dlg_option & SSUI_OPTION_HIBERNATE)
- {
-- if(panel_power_manager_can_hibernate(powerManager))
-+ image = NULL;
-+ if(gtk_icon_theme_has_icon(iconTheme, "drive-harddisk"))
- {
-- haveOption = TRUE;
-- image = NULL;
-- if(gtk_icon_theme_has_icon(iconTheme, "drive-harddisk"))
-- {
-- themePixbuf = gtk_icon_theme_load_icon(iconTheme,
-- "drive-harddisk", 48, 0, &error);
-- if(themePixbuf != NULL)
-- image = gtk_image_new_from_pixbuf(themePixbuf);
-- else
-- image = NULL;
-- }
-- if(image == NULL)
-- {
-- image = gtk_image_new_from_stock (GTK_STOCK_DIALOG_QUESTION,
-- GTK_ICON_SIZE_DIALOG);
-- }
-- tile = ssui_get_tile(image, _("Hi_bernate"),
-- _("Suspends your session, using no power until the computer is restarted."));
-- g_signal_connect (G_OBJECT (tile), "clicked",
-- G_CALLBACK (hibernate_button_clicked), logoutDlg);
-+ themePixbuf = gtk_icon_theme_load_icon(iconTheme,
-+ "drive-harddisk", 48, 0, &error);
-+ if(themePixbuf != NULL)
-+ image = gtk_image_new_from_pixbuf(themePixbuf);
-+ else
-+ image = NULL;
-+ }
-+ if(image == NULL)
-+ {
-+ image = gtk_image_new_from_stock (GTK_STOCK_DIALOG_QUESTION,
-+ GTK_ICON_SIZE_DIALOG);
-+ }
-+ tile = ssui_get_tile(image, _("Hi_bernate"),
-+ _("Suspends your session, using no power until the computer is restarted."));
-+ g_signal_connect (G_OBJECT (tile), "clicked",
-+ G_CALLBACK (hibernate_button_clicked), logoutDlg);
-
-- gtk_box_pack_start (GTK_BOX (vbox), tile, TRUE, TRUE, 0);
-- gtk_widget_show_all(tile);
-+ if(!panel_power_manager_can_hibernate(powerManager))
-+ {
-+ gtk_widget_set_sensitive(tile, FALSE);
- }
-+
-+ gtk_box_pack_start (GTK_BOX (vbox), tile, TRUE, TRUE, 0);
-+ gtk_widget_show_all(tile);
- }
-
-
- if(dlg_option & SSUI_OPTION_SWITCH)
- {
-- haveOption = TRUE;
- image = NULL;
- if(gtk_icon_theme_has_icon(iconTheme, "config-users"))
- {
-@@ -551,12 +552,7 @@
- do
- {
-
-- // if there are any options available to display above, show the
-- // dialog, otherwise don't show it at all
-- if(haveOption)
-- response = gtk_dialog_run (GTK_DIALOG (logoutDlg));
-- else
-- response = GTK_RESPONSE_CANCEL;
-+ response = gtk_dialog_run (GTK_DIALOG (logoutDlg));
-
- showDialog = FALSE;
-
diff --git a/gnome-extra/libssui/files/libssui-pm-dbus.patch b/gnome-extra/libssui/files/libssui-pm-dbus.patch
deleted file mode 100644
index 1caee60..0000000
--- a/gnome-extra/libssui/files/libssui-pm-dbus.patch
+++ /dev/null
@@ -1,44 +0,0 @@
---- src/gnome-session-code/panel-power-manager.c
-+++ src/gnome-session-code/panel-power-manager.c
-@@ -129,7 +129,7 @@
- const char *new_owner,
- PanelPowerManager *manager)
- {
-- if (strcmp (name, "org.gnome.PowerManager") != 0)
-+ if (strcmp (name, "org.freedesktop.PowerManagement") != 0)
- return;
-
- if (manager->priv->gpm_proxy != NULL) {
-@@ -189,9 +189,9 @@
- manager->priv->gpm_proxy =
- dbus_g_proxy_new_for_name_owner (
- manager->priv->dbus_connection,
-- "org.gnome.PowerManager",
-- "/org/gnome/PowerManager",
-- "org.gnome.PowerManager",
-+ "org.freedesktop.PowerManagement",
-+ "/org/freedesktop/PowerManagement",
-+ "org.freedesktop.PowerManagement",
- &connection_error);
-
- if (manager->priv->gpm_proxy == NULL) {
-@@ -324,8 +324,7 @@
- }
-
- can_suspend = FALSE;
--// if (!dbus_g_proxy_call (manager->priv->gpm_proxy, "CanSuspend",
-- if (!dbus_g_proxy_call (manager->priv->gpm_proxy, "AllowedSuspend",
-+ if (!dbus_g_proxy_call (manager->priv->gpm_proxy, "CanSuspend",
- &error,
- G_TYPE_INVALID,
- G_TYPE_BOOLEAN, &can_suspend, G_TYPE_INVALID)) {
-@@ -356,8 +355,7 @@
- }
-
- can_hibernate = FALSE;
--// if (!dbus_g_proxy_call (manager->priv->gpm_proxy, "CanHibernate",
-- if (!dbus_g_proxy_call (manager->priv->gpm_proxy, "AllowedHibernate",
-+ if (!dbus_g_proxy_call (manager->priv->gpm_proxy, "CanHibernate",
- &error,
- G_TYPE_INVALID,
- G_TYPE_BOOLEAN, &can_hibernate, G_TYPE_INVALID)) {
diff --git a/gnome-extra/libssui/files/libssui-wrong-icon.patch b/gnome-extra/libssui/files/libssui-wrong-icon.patch
deleted file mode 100644
index 1bcc87b..0000000
--- a/gnome-extra/libssui/files/libssui-wrong-icon.patch
+++ /dev/null
@@ -1,26 +0,0 @@
---- src/logout-dialog.c
-+++ src/logout-dialog.c
-@@ -331,19 +331,19 @@
- if(dlg_option & SSUI_OPTION_SHUTDOWN)
- {
- image = NULL;
-- if(gtk_icon_theme_has_icon(iconTheme, "system-shutdown"))
-+ if(gtk_icon_theme_has_icon(iconTheme, "gnome-shutdown"))
- {
- themePixbuf = gtk_icon_theme_load_icon(iconTheme,
-- "system-shutdown", 48, 0, &error);
-+ "gnome-shutdown", 48, 0, &error);
- if(themePixbuf != NULL)
- image = gtk_image_new_from_pixbuf(themePixbuf);
- else
- image = NULL;
- }
-- else if(gtk_icon_theme_has_icon(iconTheme, "gnome-shutdown"))
-+ else if(gtk_icon_theme_has_icon(iconTheme, "system-shutdown"))
- {
- themePixbuf = gtk_icon_theme_load_icon(iconTheme,
-- "gnome-shutdown", 48, 0, &error);
-+ "system-shutdown", 48, 0, &error);
- if(themePixbuf != NULL)
- image = gtk_image_new_from_pixbuf(themePixbuf);
- else
diff --git a/gnome-extra/libssui/libssui-0.5.7.ebuild b/gnome-extra/libssui/libssui-0.5.7.ebuild
deleted file mode 100644
index 5b06b86..0000000
--- a/gnome-extra/libssui/libssui-0.5.7.ebuild
+++ /dev/null
@@ -1,33 +0,0 @@
-# Copyright 1999-2007 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: $
-
-inherit eutils gnome2
-
-DESCRIPTION="New logout dialog by Novell"
-HOMEPAGE="http://code.google.com/p/libssui/"
-SRC_URI="http://libssui.googlecode.com/files/${P}.tar.gz"
-LICENSE="GPL-2"
-SLOT="0"
-KEYWORDS="~x86"
-IUSE=""
-
-DEPEND=">=x11-libs/gtk+-2.6.0
- >=gnome-base/gconf-2
- >=gnome-base/libgnome-2
- >=gnome-base/libgnomeui-2
- >=gnome-base/gnome-vfs-2
- >=sys-apps/dbus-0.60"
-
-RDEPEND="${DEPEND}"
-
-src_unpack() {
- gnome2_src_unpack
-
- # Update to newer dbus calls from GNOME Power Manager
- epatch ${FILESDIR}/${PN}-pm-dbus.patch
- epatch ${FILESDIR}/${PN}-missing-options.patch
- epatch ${FILESDIR}/${PN}-wrong-icon.patch
-
-}
-