diff --git a/.cvsignore b/.cvsignore
index 553ec2d..d157a30 100644
--- a/.cvsignore
+++ b/.cvsignore
@@ -1 +1 @@
-gnome-settings-daemon-2.25.3.tar.bz2
+gnome-settings-daemon-2.25.90.tar.bz2
diff --git a/gnome-settings-daemon-2.24.0-catch-deviceadded.patch b/gnome-settings-daemon-2.24.0-catch-deviceadded.patch
index 8e1d0ce..9c32d69 100644
--- a/gnome-settings-daemon-2.24.0-catch-deviceadded.patch
+++ b/gnome-settings-daemon-2.24.0-catch-deviceadded.patch
@@ -1,14 +1,7 @@
-============================================================
- Listen for DeviceAdded in addition to DeviceEnabled
-
- This should help address problems like left-handed
-mouse, and acceleration settings getting lost after
-resume, or when new devices gets plugged in.
-
-diff --git a/plugins/mouse/gsd-mouse-manager.c b/plugins/mouse/gsd-mouse-manager.c
---- a/plugins/mouse/gsd-mouse-manager.c
-+++ b/plugins/mouse/gsd-mouse-manager.c
-@@ -320,7 +320,7 @@ devicepresence_filter (GdkXEvent *xevent,
+diff -up gnome-settings-daemon-2.25.90/plugins/mouse/gsd-mouse-manager.c.catch-deviceadded gnome-settings-daemon-2.25.90/plugins/mouse/gsd-mouse-manager.c
+--- gnome-settings-daemon-2.25.90/plugins/mouse/gsd-mouse-manager.c.catch-deviceadded 2009-02-04 23:23:55.000000000 -0500
++++ gnome-settings-daemon-2.25.90/plugins/mouse/gsd-mouse-manager.c 2009-02-04 23:22:13.000000000 -0500
+@@ -320,7 +320,7 @@ devicepresence_filter (GdkXEvent *xevent
if (xev->type == xi_presence)
{
XDevicePresenceNotifyEvent *dpn = (XDevicePresenceNotifyEvent *) xev;
diff --git a/gnome-settings-daemon-2.25.1-drop-sample-cache.patch b/gnome-settings-daemon-2.25.1-drop-sample-cache.patch
deleted file mode 100644
index d112845..0000000
--- a/gnome-settings-daemon-2.25.1-drop-sample-cache.patch
+++ /dev/null
@@ -1,845 +0,0 @@
-diff -up gnome-settings-daemon-2.25.1/configure.ac.drop-sample-cache gnome-settings-daemon-2.25.1/configure.ac
---- gnome-settings-daemon-2.25.1/configure.ac.drop-sample-cache 2008-11-04 10:30:15.000000000 -0500
-+++ gnome-settings-daemon-2.25.1/configure.ac 2008-11-12 23:12:36.000000000 -0500
-@@ -210,6 +210,30 @@ AC_SUBST(LIBGNOMEKBD_CFLAGS)
- AC_SUBST(LIBGNOMEKBD_LIBS)
-
- dnl ==============================================
-+dnl PulseAudio section
-+dnl ==============================================
-+
-+AC_ARG_ENABLE(pulse,
-+ AC_HELP_STRING([--disable-pulse],
-+ [turn off PulseAudio support]),
-+ [case "${enableval}" in
-+ yes) WANT_PULSE=yes ;;
-+ no) WANT_PULSE=no ;;
-+ *) AC_MSG_ERROR(bad value ${enableval} for --disable-pulse) ;;
-+ esac],
-+ [WANT_PULSE=yes]) dnl Default value
-+
-+if test x$WANT_PULSE = xyes ; then
-+ PKG_CHECK_MODULES(PULSE, libpulse >= 0.9.11,
-+ AC_DEFINE(HAVE_PULSE, 1, [Define if PULSE sound server should be used]),
-+ AC_MSG_RESULT([disabled]))
-+fi
-+
-+AC_SUBST(PULSE_CFLAGS)
-+AC_SUBST(PULSE_LIBS)
-+AC_SUBST(PULSE_LOCATION)
-+
-+dnl ==============================================
- dnl GStreamer section
- dnl ==============================================
- GST_MAJORMINOR=auto
-@@ -399,6 +423,7 @@ plugins/media-keys/Makefile
- plugins/media-keys/actions/Makefile
- plugins/mouse/Makefile
- plugins/screensaver/Makefile
-+plugins/sound-sample-cache/Makefile
- plugins/typing-break/Makefile
- plugins/xrandr/Makefile
- plugins/xrdb/Makefile
-diff -up gnome-settings-daemon-2.25.1/data/gnome-settings-daemon.schemas.in.drop-sample-cache gnome-settings-daemon-2.25.1/data/gnome-settings-daemon.schemas.in
---- gnome-settings-daemon-2.25.1/data/gnome-settings-daemon.schemas.in.drop-sample-cache 2008-11-04 10:25:28.000000000 -0500
-+++ gnome-settings-daemon-2.25.1/data/gnome-settings-daemon.schemas.in 2008-11-12 23:10:00.000000000 -0500
-@@ -233,6 +233,29 @@
-
-
-
-+ /schemas/apps/gnome_settings_daemon/plugins/sound-sample-cache/active
-+ /apps/gnome_settings_daemon/plugins/sound-sample-cache/active
-+ gnome-settings-daemon
-+ bool
-+ TRUE
-+
-+ Enable sound sample cache plugin
-+ Set to True to enable the plugin to manage sound sample caches.
-+
-+
-+
-+ /schemas/apps/gnome_settings_daemon/plugins/sound-sample-cache/priority
-+ /apps/gnome_settings_daemon/plugins/sound-sample-cache/priority
-+ gnome-settings-daemon
-+ int
-+ 5
-+
-+
-+
-+
-+
-+
-+
- /schemas/apps/gnome_settings_daemon/plugins/sound/active
- /apps/gnome_settings_daemon/plugins/sound/active
- gnome-settings-daemon
-diff -up gnome-settings-daemon-2.25.1/plugins/Makefile.am.drop-sample-cache gnome-settings-daemon-2.25.1/plugins/Makefile.am
---- gnome-settings-daemon-2.25.1/plugins/Makefile.am.drop-sample-cache 2008-10-30 09:25:37.000000000 -0400
-+++ gnome-settings-daemon-2.25.1/plugins/Makefile.am 2008-11-12 23:10:00.000000000 -0500
-@@ -17,4 +17,5 @@ SUBDIRS = \
- xrandr \
- xrdb \
- xsettings \
-+ sound-sample-cache \
- $(NULL)
-diff -up /dev/null gnome-settings-daemon-2.25.1/plugins/sound-sample-cache/gsd-sound-sample-cache-manager.c
---- /dev/null 2008-11-12 15:48:32.607088093 -0500
-+++ gnome-settings-daemon-2.25.1/plugins/sound-sample-cache/gsd-sound-sample-cache-manager.c 2008-11-12 23:10:00.000000000 -0500
-@@ -0,0 +1,471 @@
-+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*-
-+ *
-+ * Copyright (C) 2008 Lennart Poettering
-+ *
-+ * 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.
-+ *
-+ */
-+
-+#include "config.h"
-+
-+#include
-+#include
-+#include
-+#include
-+#include
-+#include
-+#include
-+
-+#include
-+
-+#include
-+#include
-+#include
-+#include
-+
-+#ifdef HAVE_PULSE
-+#include
-+#endif
-+
-+#include "gsd-sound-sample-cache-manager.h"
-+#include "gnome-settings-profile.h"
-+
-+#define GSD_SOUND_SAMPLE_CACHE_MANAGER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE((o), GSD_TYPE_SOUND_SAMPLE_CACHE_MANAGER, GsdSoundSampleCacheManagerPrivate))
-+
-+struct GsdSoundSampleCacheManagerPrivate
-+{
-+ guint gconf_notify;
-+ GList* monitors;
-+ guint timeout;
-+};
-+
-+#define GCONF_SOUND_DIR "/desktop/gnome/sound"
-+
-+static void gsd_sound_sample_cache_manager_class_init(GsdSoundSampleCacheManagerClass *klass);
-+static void gsd_sound_sample_cache_manager_init(GsdSoundSampleCacheManager *sound_manager);
-+static void gsd_sound_sample_cache_manager_finalize(GObject *object);
-+
-+G_DEFINE_TYPE(GsdSoundSampleCacheManager, gsd_sound_sample_cache_manager, G_TYPE_OBJECT)
-+
-+static gpointer manager_object = NULL;
-+
-+#ifdef HAVE_PULSE
-+
-+static void
-+sample_info_cb(pa_context *c, const pa_sample_info *i, int eol, void *userdata)
-+{
-+ pa_operation *o;
-+
-+ if (!i)
-+ return;
-+
-+ g_debug("Found sample %s.", i->name);
-+
-+ /* We only flush those samples which have an XDG sound name
-+ * attached, because only those originate from themeing */
-+ if (!(pa_proplist_gets(i->proplist, PA_PROP_EVENT_ID)))
-+ return;
-+
-+ g_debug("Dropping sample %s from cache.", i->name);
-+
-+ if (!(o = pa_context_remove_sample(c, i->name, NULL, NULL))) {
-+ g_debug("pa_context_remove_sample(): %s", pa_strerror(pa_context_errno(c)));
-+ return;
-+ }
-+
-+ pa_operation_unref(o);
-+
-+ /* We won't wait until the operation is actually executed to
-+ * speed things up a bit.*/
-+}
-+
-+static void
-+flush_cache(void)
-+{
-+ pa_mainloop *ml = NULL;
-+ pa_context *c = NULL;
-+ pa_proplist *pl = NULL;
-+ pa_operation *o = NULL;
-+
-+ g_debug("Flushing sample cache.");
-+
-+ if (!(ml = pa_mainloop_new())) {
-+ g_debug("Failed to allocate pa_mainloop.");
-+ goto fail;
-+ }
-+
-+ if (!(pl = pa_proplist_new())) {
-+ g_debug("Failed to allocate pa_proplist.");
-+ goto fail;
-+ }
-+
-+ pa_proplist_sets(pl, PA_PROP_APPLICATION_NAME, PACKAGE_NAME);
-+ pa_proplist_sets(pl, PA_PROP_APPLICATION_VERSION, PACKAGE_VERSION);
-+ pa_proplist_sets(pl, PA_PROP_APPLICATION_ID, "org.gnome.SettingsDaemon");
-+
-+ if (!(c = pa_context_new_with_proplist(pa_mainloop_get_api(ml), PACKAGE_NAME, pl))) {
-+ g_debug("Failed to allocate pa_context.");
-+ goto fail;
-+ }
-+
-+ pa_proplist_free(pl);
-+ pl = NULL;
-+
-+ if (pa_context_connect(c, NULL, PA_CONTEXT_NOAUTOSPAWN, NULL) < 0) {
-+ g_debug("pa_context_connect(): %s", pa_strerror(pa_context_errno(c)));
-+ goto fail;
-+ }
-+
-+ /* Wait until the connection is established */
-+ while (pa_context_get_state(c) != PA_CONTEXT_READY) {
-+
-+ if (!PA_CONTEXT_IS_GOOD(pa_context_get_state(c))) {
-+ g_debug("Connection failed: %s", pa_strerror(pa_context_errno(c)));
-+ goto fail;
-+ }
-+
-+ if (pa_mainloop_iterate(ml, TRUE, NULL) < 0) {
-+ g_debug("pa_mainloop_iterate() failed.");
-+ goto fail;
-+ }
-+ }
-+
-+ /* Enumerate all cached samples */
-+ if (!(o = pa_context_get_sample_info_list(c, sample_info_cb, NULL))) {
-+ g_debug("pa_context_get_sample_info_list(): %s", pa_strerror(pa_context_errno(c)));
-+ goto fail;
-+ }
-+
-+ /* Wait until our operation is finished and there's nothing
-+ * more queued to send to the server */
-+ while (pa_operation_get_state(o) == PA_OPERATION_RUNNING || pa_context_is_pending(c)) {
-+
-+ if (!PA_CONTEXT_IS_GOOD(pa_context_get_state(c))) {
-+ g_debug("Connection failed: %s", pa_strerror(pa_context_errno(c)));
-+ goto fail;
-+ }
-+
-+ if (pa_mainloop_iterate(ml, TRUE, NULL) < 0) {
-+ g_debug("pa_mainloop_iterate() failed.");
-+ goto fail;
-+ }
-+ }
-+
-+ g_debug("Sample cache flushed.");
-+
-+fail:
-+ if (o) {
-+ pa_operation_cancel(o);
-+ pa_operation_unref(o);
-+ }
-+
-+ if (c) {
-+ pa_context_disconnect(c);
-+ pa_context_unref(c);
-+ }
-+
-+ if (pl)
-+ pa_proplist_free(pl);
-+
-+ if (ml)
-+ pa_mainloop_free(ml);
-+}
-+
-+static gboolean
-+flush_cb(GsdSoundSampleCacheManager *manager)
-+{
-+ flush_cache();
-+ manager->priv->timeout = 0;
-+ return FALSE;
-+}
-+
-+static void
-+trigger_flush(GsdSoundSampleCacheManager *manager)
-+{
-+
-+ if (manager->priv->timeout)
-+ g_source_remove(manager->priv->timeout);
-+
-+ /* We delay the flushing a bit so that we can coalesce
-+ * multiple changes into a single cache flush */
-+ manager->priv->timeout = g_timeout_add(500, (GSourceFunc) flush_cb, manager);
-+}
-+
-+static void
-+gconf_client_notify_cb(
-+ GConfClient *client,
-+ guint cnxn_id,
-+ GConfEntry *entry,
-+ GsdSoundSampleCacheManager *manager)
-+{
-+ g_debug("GConf dir changed");
-+ trigger_flush(manager);
-+}
-+
-+static gboolean
-+register_config_callback(
-+ GsdSoundSampleCacheManager *manager,
-+ GError **error)
-+{
-+ GConfClient *client;
-+
-+ client = gconf_client_get_default();
-+
-+ gconf_client_add_dir(client, GCONF_SOUND_DIR, GCONF_CLIENT_PRELOAD_NONE, error);
-+ g_return_val_if_fail(!error || !*error, FALSE);
-+
-+ manager->priv->gconf_notify = gconf_client_notify_add(client, GCONF_SOUND_DIR, (GConfClientNotifyFunc) gconf_client_notify_cb, manager, NULL, error);
-+ g_return_val_if_fail(!error || !*error, FALSE);
-+
-+ g_object_unref(client);
-+
-+ return TRUE;
-+}
-+
-+static void
-+file_monitor_changed_cb(
-+ GFileMonitor *monitor,
-+ GFile *file,
-+ GFile *other_file,
-+ GFileMonitorEvent event,
-+ GsdSoundSampleCacheManager *manager)
-+{
-+ g_debug("Theme dir changed");
-+ trigger_flush(manager);
-+}
-+
-+static gboolean
-+register_directory_callback(
-+ GsdSoundSampleCacheManager *manager,
-+ const char *path,
-+ GError **error)
-+{
-+
-+ GFile *f;
-+ GFileMonitor *m;
-+
-+ g_debug("registering directory monitor for %s", path);
-+
-+ f = g_file_new_for_path(path);
-+ g_return_val_if_fail(f, FALSE);
-+
-+ m = g_file_monitor_directory(f, 0, NULL, error);
-+ g_return_val_if_fail(m, FALSE);
-+
-+ g_signal_connect(m, "changed", G_CALLBACK(file_monitor_changed_cb), manager);
-+
-+ manager->priv->monitors = g_list_prepend(manager->priv->monitors, m);
-+
-+ g_object_unref(G_OBJECT(f));
-+
-+ return TRUE;
-+}
-+
-+#endif
-+
-+gboolean
-+gsd_sound_sample_cache_manager_start(
-+ GsdSoundSampleCacheManager *manager,
-+ GError **error)
-+{
-+
-+#ifdef HAVE_PULSE
-+ char *p, **ps, **k;
-+ const char *env, *dd;
-+#endif
-+
-+ g_debug("Starting sound sample cache manager");
-+ gnome_settings_profile_start(NULL);
-+
-+#ifdef HAVE_PULSE
-+
-+ /* We listen for change of the selected theme ... */
-+ register_config_callback(manager, NULL);
-+
-+ /* ... and we listen to changes of the theme base directories
-+ * in $HOME ...*/
-+
-+ if ((env = g_getenv("XDG_DATA_HOME")) && *env == '/')
-+ p = g_build_filename(env, "sounds", NULL);
-+ else if (((env = g_getenv("HOME")) && *env == '/') || (env = g_get_home_dir()))
-+ p = g_build_filename(env, ".local", "share", "sounds", NULL);
-+ else
-+ p = NULL;
-+
-+ if (p) {
-+ register_directory_callback(manager, p, NULL);
-+ g_free(p);
-+ }
-+
-+ /* ... and globally. */
-+ if (!(dd = g_getenv("XDG_DATA_DIRS")) || *dd == 0)
-+ dd = "/usr/local/share:/usr/share";
-+
-+ ps = g_strsplit(dd, ":", 0);
-+
-+ for (k = ps; *k; k++)
-+ register_directory_callback(manager, *k, NULL);
-+
-+ g_strfreev(ps);
-+#endif
-+
-+ return TRUE;
-+}
-+
-+void
-+gsd_sound_sample_cache_manager_stop(
-+ GsdSoundSampleCacheManager *manager)
-+{
-+ g_debug("Stopping sound sample cache manager");
-+
-+#ifdef HAVE_PULSE
-+ if (manager->priv->gconf_notify != 0) {
-+ GConfClient *client = gconf_client_get_default();
-+
-+ gconf_client_remove_dir(client, GCONF_SOUND_DIR, NULL);
-+
-+ gconf_client_notify_remove(client, manager->priv->gconf_notify);
-+ manager->priv->gconf_notify = 0;
-+
-+ g_object_unref(client);
-+ }
-+
-+ if (manager->priv->timeout) {
-+ g_source_remove(manager->priv->timeout);
-+ manager->priv->timeout = 0;
-+ }
-+
-+ while (manager->priv->monitors) {
-+ g_file_monitor_cancel(G_FILE_MONITOR(manager->priv->monitors->data));
-+ g_object_unref(G_OBJECT(manager->priv->monitors->data));
-+ manager->priv->monitors = g_list_delete_link(manager->priv->monitors, manager->priv->monitors);
-+ }
-+#endif
-+}
-+
-+static void
-+gsd_sound_sample_cache_manager_set_property(
-+ GObject *object,
-+ guint prop_id,
-+ const GValue *value,
-+ GParamSpec *pspec)
-+{
-+ GsdSoundSampleCacheManager *self;
-+
-+ self = GSD_SOUND_SAMPLE_CACHE_MANAGER(object);
-+
-+ switch (prop_id) {
-+ default:
-+ G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec);
-+ break;
-+ }
-+}
-+
-+static void
-+gsd_sound_sample_cache_manager_get_property(
-+ GObject *object,
-+ guint prop_id,
-+ GValue *value,
-+ GParamSpec *pspec)
-+{
-+ GsdSoundSampleCacheManager *self;
-+
-+ self = GSD_SOUND_SAMPLE_CACHE_MANAGER(object);
-+
-+ switch (prop_id) {
-+ default:
-+ G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec);
-+ break;
-+ }
-+}
-+
-+static GObject *
-+gsd_sound_sample_cache_manager_constructor(
-+ GType type,
-+ guint n_construct_properties,
-+ GObjectConstructParam *construct_properties)
-+{
-+ GsdSoundSampleCacheManager *m;
-+ GsdSoundSampleCacheManagerClass *klass;
-+
-+ klass = GSD_SOUND_SAMPLE_CACHE_MANAGER_CLASS(g_type_class_peek(GSD_TYPE_SOUND_SAMPLE_CACHE_MANAGER));
-+
-+ m = GSD_SOUND_SAMPLE_CACHE_MANAGER(G_OBJECT_CLASS(gsd_sound_sample_cache_manager_parent_class)->constructor(
-+ type,
-+ n_construct_properties,
-+ construct_properties));
-+
-+ return G_OBJECT(m);
-+}
-+
-+static void
-+gsd_sound_sample_cache_manager_dispose(GObject *object)
-+{
-+ GsdSoundSampleCacheManager *manager;
-+
-+ manager = GSD_SOUND_SAMPLE_CACHE_MANAGER(object);
-+
-+ gsd_sound_sample_cache_manager_stop(manager);
-+
-+ G_OBJECT_CLASS(gsd_sound_sample_cache_manager_parent_class)->dispose(object);
-+}
-+
-+static void
-+gsd_sound_sample_cache_manager_class_init(GsdSoundSampleCacheManagerClass *klass)
-+{
-+ GObjectClass *object_class = G_OBJECT_CLASS(klass);
-+
-+ object_class->get_property = gsd_sound_sample_cache_manager_get_property;
-+ object_class->set_property = gsd_sound_sample_cache_manager_set_property;
-+ object_class->constructor = gsd_sound_sample_cache_manager_constructor;
-+ object_class->dispose = gsd_sound_sample_cache_manager_dispose;
-+ object_class->finalize = gsd_sound_sample_cache_manager_finalize;
-+
-+ g_type_class_add_private(klass, sizeof(GsdSoundSampleCacheManagerPrivate));
-+}
-+
-+static void
-+gsd_sound_sample_cache_manager_init(GsdSoundSampleCacheManager *manager)
-+{
-+ manager->priv = GSD_SOUND_SAMPLE_CACHE_MANAGER_GET_PRIVATE(manager);
-+}
-+
-+static void
-+gsd_sound_sample_cache_manager_finalize(GObject *object)
-+{
-+ GsdSoundSampleCacheManager *sound_sample_cache_manager;
-+
-+ g_return_if_fail(object != NULL);
-+ g_return_if_fail(GSD_IS_SOUND_SAMPLE_CACHE_MANAGER(object));
-+
-+ sound_sample_cache_manager = GSD_SOUND_SAMPLE_CACHE_MANAGER(object);
-+
-+ g_return_if_fail(sound_sample_cache_manager->priv);
-+
-+ G_OBJECT_CLASS(gsd_sound_sample_cache_manager_parent_class)->finalize(object);
-+}
-+
-+GsdSoundSampleCacheManager *
-+gsd_sound_sample_cache_manager_new(void)
-+{
-+ if (manager_object) {
-+ g_object_ref(manager_object);
-+ } else {
-+ manager_object = g_object_new(GSD_TYPE_SOUND_SAMPLE_CACHE_MANAGER, NULL);
-+ g_object_add_weak_pointer(manager_object, (gpointer *) &manager_object);
-+ }
-+
-+ return GSD_SOUND_SAMPLE_CACHE_MANAGER(manager_object);
-+}
-diff -up /dev/null gnome-settings-daemon-2.25.1/plugins/sound-sample-cache/gsd-sound-sample-cache-manager.h
---- /dev/null 2008-11-12 15:48:32.607088093 -0500
-+++ gnome-settings-daemon-2.25.1/plugins/sound-sample-cache/gsd-sound-sample-cache-manager.h 2008-11-12 23:10:00.000000000 -0500
-@@ -0,0 +1,57 @@
-+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*-
-+ *
-+ * Copyright (C) 2008 Lennart Poettering
-+ *
-+ * 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.
-+ *
-+ */
-+
-+#ifndef __GSD_SOUND_SAMPLE_CACHE_MANAGER_H
-+#define __GSD_SOUND_SAMPLE_CACHE_MANAGER_H
-+
-+#include
-+#include
-+
-+G_BEGIN_DECLS
-+
-+#define GSD_TYPE_SOUND_SAMPLE_CACHE_MANAGER (gsd_sound_sample_cache_manager_get_type())
-+#define GSD_SOUND_SAMPLE_CACHE_MANAGER(o) (G_TYPE_CHECK_INSTANCE_CAST((o), GSD_TYPE_SOUND_SAMPLE_CACHE_MANAGER, GsdSoundSampleCacheManager))
-+#define GSD_SOUND_SAMPLE_CACHE_MANAGER_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), GSD_TYPE_SOUND_SAMPLE_CACHE_MANAGER, GsdSoundSampleCacheManagerClass))
-+#define GSD_IS_SOUND_SAMPLE_CACHE_MANAGER(o) (G_TYPE_CHECK_INSTANCE_TYPE((o), GSD_TYPE_SOUND_SAMPLE_CACHE_MANAGER))
-+#define GSD_IS_SOUND_SAMPLE_CACHE_MANAGER_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE((k), GSD_TYPE_SOUND_SAMPLE_CACHE_MANAGER))
-+#define GSD_SOUND_SAMPLE_CACHE_MANAGER_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS((o), GSD_TYPE_SOUND_SAMPLE_CACHE_MANAGER, GsdSoundSampleCacheManagerClass))
-+
-+typedef struct GsdSoundSampleCacheManagerPrivate GsdSoundSampleCacheManagerPrivate;
-+
-+typedef struct
-+{
-+ GObject parent;
-+ GsdSoundSampleCacheManagerPrivate *priv;
-+} GsdSoundSampleCacheManager;
-+
-+typedef struct
-+{
-+ GObjectClass parent_class;
-+} GsdSoundSampleCacheManagerClass;
-+
-+GType gsd_sound_sample_cache_manager_get_type(void) G_GNUC_CONST;
-+
-+GsdSoundSampleCacheManager *gsd_sound_sample_cache_manager_new(void);
-+gboolean gsd_sound_sample_cache_manager_start(GsdSoundSampleCacheManager *manager, GError **error);
-+void gsd_sound_sample_cache_manager_stop(GsdSoundSampleCacheManager *manager);
-+
-+G_END_DECLS
-+
-+#endif /* __GSD_SOUND_SAMPLE_CACHE_MANAGER_H */
-diff -up /dev/null gnome-settings-daemon-2.25.1/plugins/sound-sample-cache/gsd-sound-sample-cache-plugin.c
---- /dev/null 2008-11-12 15:48:32.607088093 -0500
-+++ gnome-settings-daemon-2.25.1/plugins/sound-sample-cache/gsd-sound-sample-cache-plugin.c 2008-11-12 23:10:00.000000000 -0500
-@@ -0,0 +1,100 @@
-+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*-
-+ *
-+ * Copyright (C) 2008 Lennart Poettering
-+ *
-+ * 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, 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.
-+ *
-+ */
-+
-+#include "config.h"
-+
-+#include
-+#include
-+
-+#include "gnome-settings-plugin.h"
-+#include "gsd-sound-sample-cache-plugin.h"
-+#include "gsd-sound-sample-cache-manager.h"
-+
-+struct GsdSoundSampleCachePluginPrivate {
-+ GsdSoundSampleCacheManager *manager;
-+};
-+
-+#define GSD_SOUND_SAMPLE_CACHE_PLUGIN_GET_PRIVATE(object) (G_TYPE_INSTANCE_GET_PRIVATE((object), GSD_TYPE_SOUND_SAMPLE_CACHE_PLUGIN, GsdSoundSampleCachePluginPrivate))
-+
-+GNOME_SETTINGS_PLUGIN_REGISTER(GsdSoundSampleCachePlugin, gsd_sound_sample_cache_plugin)
-+
-+static void
-+gsd_sound_sample_cache_plugin_init(GsdSoundSampleCachePlugin *plugin)
-+{
-+ plugin->priv = GSD_SOUND_SAMPLE_CACHE_PLUGIN_GET_PRIVATE(plugin);
-+
-+ g_debug("GsdSoundSampleCachePlugin initializing");
-+
-+ plugin->priv->manager = gsd_sound_sample_cache_manager_new();
-+}
-+
-+static void
-+gsd_sound_sample_cache_plugin_finalize(GObject *object)
-+{
-+ GsdSoundSampleCachePlugin *plugin;
-+
-+ g_return_if_fail(object != NULL);
-+ g_return_if_fail(GSD_IS_SOUND_SAMPLE_CACHE_PLUGIN(object));
-+
-+ g_debug("GsdSoundSampleCachePlugin finalizing");
-+
-+ plugin = GSD_SOUND_SAMPLE_CACHE_PLUGIN(object);
-+
-+ g_return_if_fail(plugin->priv != NULL);
-+
-+ if (plugin->priv->manager != NULL)
-+ g_object_unref(plugin->priv->manager);
-+
-+ G_OBJECT_CLASS(gsd_sound_sample_cache_plugin_parent_class)->finalize(object);
-+}
-+
-+static void
-+impl_activate(GnomeSettingsPlugin *plugin)
-+{
-+ GError *error = NULL;
-+
-+ g_debug("Activating sound_sample_cache plugin");
-+
-+ if (!gsd_sound_sample_cache_manager_start(GSD_SOUND_SAMPLE_CACHE_PLUGIN(plugin)->priv->manager, &error)) {
-+ g_warning("Unable to start sound sample cache manager: %s", error->message);
-+ g_error_free(error);
-+ }
-+}
-+
-+static void
-+impl_deactivate(GnomeSettingsPlugin *plugin)
-+{
-+ g_debug("Deactivating sound sample cache plugin");
-+ gsd_sound_sample_cache_manager_stop(GSD_SOUND_SAMPLE_CACHE_PLUGIN(plugin)->priv->manager);
-+}
-+
-+static void
-+gsd_sound_sample_cache_plugin_class_init(GsdSoundSampleCachePluginClass *klass)
-+{
-+ GObjectClass *object_class = G_OBJECT_CLASS(klass);
-+ GnomeSettingsPluginClass *plugin_class = GNOME_SETTINGS_PLUGIN_CLASS(klass);
-+
-+ object_class->finalize = gsd_sound_sample_cache_plugin_finalize;
-+
-+ plugin_class->activate = impl_activate;
-+ plugin_class->deactivate = impl_deactivate;
-+
-+ g_type_class_add_private(klass, sizeof(GsdSoundSampleCachePluginPrivate));
-+}
-diff -up /dev/null gnome-settings-daemon-2.25.1/plugins/sound-sample-cache/gsd-sound-sample-cache-plugin.h
---- /dev/null 2008-11-12 15:48:32.607088093 -0500
-+++ gnome-settings-daemon-2.25.1/plugins/sound-sample-cache/gsd-sound-sample-cache-plugin.h 2008-11-12 23:10:00.000000000 -0500
-@@ -0,0 +1,59 @@
-+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*-
-+ *
-+ * Copyright (C) 2008 Lennart Poettering
-+ *
-+ * 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, 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.
-+ *
-+ */
-+
-+#ifndef __GSD_SOUND_SAMPLE_CACHE_PLUGIN_H__
-+#define __GSD_SOUND_SAMPLE_CACHE_PLUGIN_H__
-+
-+#include
-+#include
-+#include
-+
-+#include "gnome-settings-plugin.h"
-+
-+G_BEGIN_DECLS
-+
-+#define GSD_TYPE_SOUND_SAMPLE_CACHE_PLUGIN (gsd_sound_sample_cache_plugin_get_type())
-+#define GSD_SOUND_SAMPLE_CACHE_PLUGIN(o) (G_TYPE_CHECK_INSTANCE_CAST((o), GSD_TYPE_SOUND_SAMPLE_CACHE_PLUGIN, GsdSoundSampleCachePlugin))
-+#define GSD_SOUND_SAMPLE_CACHE_PLUGIN_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), GSD_TYPE_SOUND_SAMPLE_CACHE_PLUGIN, GsdSoundSampleCachePluginClass))
-+#define GSD_IS_SOUND_SAMPLE_CACHE_PLUGIN(o) (G_TYPE_CHECK_INSTANCE_TYPE((o), GSD_TYPE_SOUND_SAMPLE_CACHE_PLUGIN))
-+#define GSD_IS_SOUND_SAMPLE_CACHE_PLUGIN_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE((k), GSD_TYPE_SOUND_SAMPLE_CACHE_PLUGIN))
-+#define GSD_SOUND_SAMPLE_CACHE_PLUGIN_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS((o), GSD_TYPE_SOUND_SAMPLE_CACHE_PLUGIN, GsdSoundSampleCachePluginClass))
-+
-+typedef struct GsdSoundSampleCachePluginPrivate GsdSoundSampleCachePluginPrivate;
-+
-+typedef struct
-+{
-+ GnomeSettingsPlugin parent;
-+ GsdSoundSampleCachePluginPrivate *priv;
-+} GsdSoundSampleCachePlugin;
-+
-+typedef struct
-+{
-+ GnomeSettingsPluginClass parent_class;
-+} GsdSoundSampleCachePluginClass;
-+
-+GType gsd_sound_sample_cache_plugin_get_type(void) G_GNUC_CONST;
-+
-+/* All the plugins must implement this function */
-+G_MODULE_EXPORT GType register_gnome_settings_plugin(GTypeModule *module);
-+
-+G_END_DECLS
-+
-+#endif /* __GSD_SOUND_SAMPLE_CACHE_PLUGIN_H__ */
-diff -up /dev/null gnome-settings-daemon-2.25.1/plugins/sound-sample-cache/Makefile.am
---- /dev/null 2008-11-12 15:48:32.607088093 -0500
-+++ gnome-settings-daemon-2.25.1/plugins/sound-sample-cache/Makefile.am 2008-11-12 23:10:00.000000000 -0500
-@@ -0,0 +1,42 @@
-+plugin_LTLIBRARIES = \
-+ libsound-sample-cache.la
-+
-+libsound_sample_cache_la_SOURCES = \
-+ gsd-sound-sample-cache-plugin.h \
-+ gsd-sound-sample-cache-plugin.c \
-+ gsd-sound-sample-cache-manager.h \
-+ gsd-sound-sample-cache-manager.c
-+
-+libsound_sample_cache_la_CPPFLAGS = \
-+ -I$(top_srcdir)/gnome-settings-daemon \
-+ -DGNOME_SETTINGS_LOCALEDIR=\""$(datadir)/locale"\" \
-+ $(AM_CPPFLAGS)
-+
-+libsound_sample_cache_la_CFLAGS = \
-+ $(SETTINGS_PLUGIN_CFLAGS) \
-+ $(GNOME_CFLAGS) \
-+ $(PULSE_CFLAGS) \
-+ $(AM_CFLAGS)
-+
-+libsound_sample_cache_la_LDFLAGS = \
-+ $(GSD_PLUGIN_LDFLAGS)
-+
-+libsound_sample_cache_la_LIBADD = \
-+ $(SETTINGS_PLUGIN_LIBS) \
-+ $(PULSE_LIBS)
-+
-+plugin_in_files = \
-+ sound-sample-cache.gnome-settings-plugin.in
-+
-+plugin_DATA = $(plugin_in_files:.gnome-settings-plugin.in=.gnome-settings-plugin)
-+
-+EXTRA_DIST = \
-+ $(plugin_in_files)
-+
-+CLEANFILES = \
-+ $(plugin_DATA)
-+
-+DISTCLEANFILES = \
-+ $(plugin_DATA)
-+
-+@GSD_INTLTOOL_PLUGIN_RULE@
-diff -up /dev/null gnome-settings-daemon-2.25.1/plugins/sound-sample-cache/sound-sample-cache.gnome-settings-plugin.in
---- /dev/null 2008-11-12 15:48:32.607088093 -0500
-+++ gnome-settings-daemon-2.25.1/plugins/sound-sample-cache/sound-sample-cache.gnome-settings-plugin.in 2008-11-12 23:10:00.000000000 -0500
-@@ -0,0 +1,8 @@
-+[GNOME Settings Plugin]
-+Module=sound-sample-cache
-+IAge=0
-+_Name=Sound Sample Cache
-+_Description=Sound Sample Cache plugin
-+Authors=Lennart Poettering
-+Copyright=Copyright © 2008
-+Website=
diff --git a/gnome-settings-daemon-2.25.2-fade.patch b/gnome-settings-daemon-2.25.2-fade.patch
deleted file mode 100644
index 5271029..0000000
--- a/gnome-settings-daemon-2.25.2-fade.patch
+++ /dev/null
@@ -1,93 +0,0 @@
-============================================================
- Don't draw_background immediately when nautilus is disabled
-
- gnome_bg_load_from_preferences forces a "changed" signal
-to get emitted which will queue a draw anyway
-
-diff --git a/plugins/background/gsd-background-manager.c b/plugins/background/gsd-background-manager.c
---- a/plugins/background/gsd-background-manager.c
-+++ b/plugins/background/gsd-background-manager.c
-@@ -277,7 +277,6 @@ gsd_background_manager_start (GsdBackgroundManager *manager,
-
- if (!nautilus_show_desktop) {
- setup_bg (manager);
-- draw_background (manager);
- } else {
- /* even when nautilus is supposedly handling the
- * background, apply the settings eventually to make
-
-============================================================
- Add crossfade transition when switching bgs
-
- This uses the new gnome-desktop api for doing
-crossfades between backgrounds. This only
-matters if nautilus isn't running, since
-otherwise, it would manage the crossfade.
-
-diff --git a/plugins/background/gsd-background-manager.c b/plugins/background/gsd-background-manager.c
---- a/plugins/background/gsd-background-manager.c
-+++ b/plugins/background/gsd-background-manager.c
-@@ -155,7 +155,8 @@ nautilus_is_running (void)
- }
-
- static void
--draw_background (GsdBackgroundManager *manager)
-+draw_background (GsdBackgroundManager *manager,
-+ gboolean use_crossfade)
- {
- GdkDisplay *display;
- int n_screens;
-@@ -185,7 +186,15 @@ draw_background (GsdBackgroundManager *manager)
- gdk_screen_get_height (screen),
- TRUE);
-
-- gnome_bg_set_pixmap_as_root (screen, pixmap);
-+ if (use_crossfade) {
-+ GnomeBGCrossfade *fade;
-+
-+ fade = gnome_bg_set_pixmap_as_root_with_crossfade (screen, pixmap);
-+ g_signal_connect (fade, "finished",
-+ G_CALLBACK (g_object_unref), NULL);
-+ } else {
-+ gnome_bg_set_pixmap_as_root (screen, pixmap);
-+ }
-
- g_object_unref (pixmap);
- }
-@@ -197,7 +206,14 @@ static void
- on_bg_changed (GnomeBG *bg,
- GsdBackgroundManager *manager)
- {
-- draw_background (manager);
-+ draw_background (manager, TRUE);
-+}
-+
-+static void
-+on_bg_transitioned (GnomeBG *bg,
-+ GsdBackgroundManager *manager)
-+{
-+ draw_background (manager, FALSE);
- }
-
- static void
-@@ -239,6 +255,11 @@ setup_bg (GsdBackgroundManager *manager)
- G_CALLBACK (on_bg_changed),
- manager);
-
-+ g_signal_connect (manager->priv->bg,
-+ "transitioned",
-+ G_CALLBACK (on_bg_transitioned),
-+ manager);
-+
- watch_bg_preferences (manager);
- gnome_bg_load_from_preferences (manager->priv->bg,
- manager->priv->client);
-@@ -249,7 +270,7 @@ queue_draw_background (GsdBackgroundManager *manager)
- {
- manager->priv->timeout_id = 0;
- setup_bg (manager);
-- draw_background (manager);
-+ draw_background (manager, FALSE);
- return FALSE;
- }
-
diff --git a/gnome-settings-daemon.spec b/gnome-settings-daemon.spec
index 4a76e8d..309a8f5 100644
--- a/gnome-settings-daemon.spec
+++ b/gnome-settings-daemon.spec
@@ -1,6 +1,6 @@
Name: gnome-settings-daemon
-Version: 2.25.3
-Release: 4%{?dist}
+Version: 2.25.90
+Release: 1%{?dist}
Summary: The daemon sharing settings from GNOME to GTK+/KDE applications
Group: System Environment/Daemons
@@ -12,6 +12,7 @@ BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
Requires(pre): GConf2 >= 2.14
Requires(preun): GConf2 >= 2.14
Requires(post): GConf2 >= 2.14
+Requires: control-center-filesystem
BuildRequires: dbus-glib-devel
BuildRequires: GConf2-devel
@@ -28,16 +29,9 @@ BuildRequires: pulseaudio-libs-devel
BuildRequires: libgnomekbd-devel
BuildRequires: libnotify-devel
BuildRequires: gettext
-BuildRequires: perl(XML::Parser)
BuildRequires: autoconf, automake, libtool, intltool
BuildRequires: fontconfig-devel
-# http://bugzilla.gnome.org/show_bug.cgi?id=545386
-Patch6: gnome-settings-daemon-2.25.1-drop-sample-cache.patch
-
-# http://bugzilla.gnome.org/show_bug.cgi?id=552857
-Patch8: gnome-settings-daemon-2.25.2-fade.patch
-
# http://bugzilla.redhat.com/474758
Patch10: gnome-settings-daemon-2.24.0-catch-deviceadded.patch
@@ -62,18 +56,13 @@ developing applications that use %{name}.
%prep
%setup -q
-%patch6 -p1 -b .drop-sample-cache
-%patch8 -p1 -b .fade
%patch10 -p1 -b .catch-deviceadded
# This one is buggy, stop using for now
#%patch11 -p1 -b .fix-touchpad
-%build
-aclocal
-automake
-libtoolize --force --copy
-autoconf
+autoreconf -i -f
+%build
%configure --enable-static=no --enable-profiling --disable-esd
make %{?_smp_mflags}
@@ -160,6 +149,7 @@ fi
%{_libdir}/gnome-settings-daemon-2.0
%{_libexecdir}/gnome-settings-daemon
%{_datadir}/gnome-settings-daemon/
+%{_datadir}/gnome-control-center/keybindings/50-accessibility.xml
%{_datadir}/dbus-1/services/org.gnome.SettingsDaemon.service
%{_sysconfdir}/xdg/autostart/gnome-settings-daemon.desktop
%{_datadir}/icons/hicolor/*/apps/gsd-xrandr.*
@@ -170,6 +160,9 @@ fi
%{_libdir}/pkgconfig/gnome-settings-daemon.pc
%changelog
+* Wed Feb 4 2009 Matthias Clasen - 2.25.90-1
+- Update to 2.25.90
+
* Mon Jan 19 2009 - Ray Strode - 2.25.3-4
- Update fade patch for new gnome-desktop release
diff --git a/sources b/sources
index 48f2737..cee79d1 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-b2fc1504df3d224562dc6625f5f7dc1b gnome-settings-daemon-2.25.3.tar.bz2
+e50852ecd22ef956ac5ec5650683f2dd gnome-settings-daemon-2.25.90.tar.bz2