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