--- gnome-settings-daemon-2.30.2.orig/debian/gnome-settings-daemon.links +++ gnome-settings-daemon-2.30.2/debian/gnome-settings-daemon.links @@ -0,0 +1 @@ +usr/lib/gnome-settings-daemon/gnome-settings-daemon usr/bin/gnome-settings-daemon --- gnome-settings-daemon-2.30.2.orig/debian/copyright +++ gnome-settings-daemon-2.30.2/debian/copyright @@ -0,0 +1,72 @@ +This package was debianized by Sebastien Bacher on +Wed, 16 Jan 2008 11:12:19 +0100. + +It was downloaded from http://ftp.acc.umu.se/pub/GNOME/sources/gnome-settings-daemon + +Upstream Authors: + + Jonathan Blandford + William Jon McCann + +Copyright: + + Copyright © 2001 Ximian, Inc. + Copyright (C) 2007 William Jon McCann + Copyright (C) 2000 Helix Code, Inc + Copyright © 2007 Matthias Clasen + Copyright (C) 2007 Rodrigo Moya + Copyright (C) 2007 Anders Carlsson + Copyright © 2004 Red Hat, Inc. + Copyright 2002 Sun Microsystems, Inc. + Copyright © 2005,2006 Novell, Inc. + Copyright © 2007 The GNOME Foundation + Copyright (C) 2002-2005 - Paolo Maggi + Copyright (C) 2002 Red Hat, Inc. + Copyright 1998, 2001 Tim Janik + Copyright � 2001 Udaltsoft + Copyright (C) 2001, 2002, 2003 Bastien Nocera + Copyright (C) 2003 Ross Burton + Copyright © 2001 Jonathan Blandford + +License: + + This package 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 package 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 package; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + +On Debian systems, the complete text of the GNU General +Public License can be found in `/usr/share/common-licenses/GPL'. + +eggaccelerators.h, eggaccelerators.c + +License: + + This package is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This package 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 + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this package; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + +On Debian systems, the complete text of the GNU Lesser General +Public License can be found in `/usr/share/common-licenses/LGPL'. + +The Debian packaging is (C) 2008, Sebastien Bacher and +is licensed under the GPL, see above. --- gnome-settings-daemon-2.30.2.orig/debian/gnome-settings-daemon.postinst +++ gnome-settings-daemon-2.30.2/debian/gnome-settings-daemon.postinst @@ -0,0 +1,13 @@ +#! /bin/sh +set -e + +# Remove obsolete conffiles + +case "$1" in +configure) + if dpkg --compare-versions "$2" lt-nl "2.24.1"; then + rm -rf /etc/gnome/config/xrdb + fi +esac + +#DEBHELPER# --- gnome-settings-daemon-2.30.2.orig/debian/watch +++ gnome-settings-daemon-2.30.2/debian/watch @@ -0,0 +1,3 @@ +version=2 +http://ftp.gnome.org/pub/GNOME/sources/gnome-settings-daemon/([\d\.]+)\d/ \ +gnome-settings-daemon-([\d\.]+)\.tar\.gz --- gnome-settings-daemon-2.30.2.orig/debian/gnome-update-wallpaper-cache.c +++ gnome-settings-daemon-2.30.2/debian/gnome-update-wallpaper-cache.c @@ -0,0 +1,69 @@ +/* + * Copyright (C) 2010 Canonical, Ltd. + * + * 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 3 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 version 3.0 for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + * Authored by Didier Roche + * + * Bug: https://bugs.launchpad.net/bugs/530024 + */ + +#include +#include +#include +#define GNOME_DESKTOP_USE_UNSTABLE_API +#include + +static GOptionEntry entries[] = +{ + { NULL } +}; + +main (int argc, char *argv[]) +{ + GOptionContext *context = NULL; + GError *error = NULL; + + GdkScreen *screen; + GdkRectangle rect; + GnomeBG *bg; + GConfClient *client; + GdkPixbuf *pixbuf; + + gdk_init (&argc, &argv); + + context = g_option_context_new ("- refresh wallpaper cache"); + g_option_context_add_main_entries (context, entries, NULL); + if (!g_option_context_parse (context, &argc, &argv, &error)) { + g_printerr ("option parsing failed: %s\n", error->message); + g_option_context_free(context); + g_error_free (error); + return (1); + } + if (context) + g_option_context_free (context); + + /* cache only the first monitor */ + screen = gdk_screen_get_default (); + gdk_screen_get_monitor_geometry (screen, 0, &rect); + + bg = gnome_bg_new (); + client = gconf_client_get_default (); + gnome_bg_load_from_preferences (bg, client); + + pixbuf = gdk_pixbuf_new (GDK_COLORSPACE_RGB, FALSE, 8, rect.width, rect.height); + gnome_bg_draw (bg, pixbuf, screen, FALSE); + + return (0); +} --- gnome-settings-daemon-2.30.2.orig/debian/control +++ gnome-settings-daemon-2.30.2/debian/control @@ -0,0 +1,83 @@ +# This file is autogenerated. DO NOT EDIT! +# +# Modifications should be made to debian/control.in instead. +# This file is regenerated automatically in the clean target. + +Source: gnome-settings-daemon +Section: gnome +Priority: optional +Maintainer: Ubuntu Desktop Team +XSBC-Original-Maintainer: Debian GNOME Maintainers +Uploaders: Debian GNOME Maintainers , Emilio Pozuelo Monfort , Josselin Mouette +Build-Depends: cdbs, + quilt, + debhelper (>= 5), + dpkg-dev (>= 1.13.19), + gnome-common, + autotools-dev, + intltool (>= 0.37.1), + libdbus-glib-1-dev (>= 0.74), + libglib2.0-dev (>= 2.17.3), + libgtk2.0-dev (>= 2.16.0), + libgconf2-dev (>= 2.6.1), + libgnome-desktop-dev (>= 2.29.92), + libnotify-dev (>= 0.4.3), + libxt-dev, + libxi-dev, + libfontconfig1-dev, + libxext-dev, + libx11-dev, + libgnomekbd-dev (>= 2.29.5), + libxklavier-dev (>= 5.0), + libgstreamer0.10-dev (>= 0.10.1.2), + libgstreamer-plugins-base0.10-dev (>= 0.10.1.2), + gnome-pkg-tools, + libpulse-dev (>= 0.9.15), + libcanberra-gtk-dev, + libappindicator-dev +Standards-Version: 3.8.3 +Vcs-Bzr: https://code.launchpad.net/~ubuntu-desktop/gnome-settings-daemon/ubuntu + +Package: gnome-settings-daemon +Architecture: any +Depends: ${shlibs:Depends}, + ${misc:Depends}, + libgnome2-common +Recommends: pulseaudio +Replaces: capplets-data (<< 1:2.21.5), + gnome-control-center (<< 1:2.21.5) +Conflicts: rhythmbox (<< 0.11.5), + banshee (<< 0.13.2+dfsg-7), + totem (<< 2.22.0), + gnome-control-center (<< 1:2.21.5) +Breaks: gnome-session (<< 2.24), + gnome-screensaver (<< 2.28.0) +Suggests: x11-xserver-utils, + gnome-screensaver, + metacity | x-window-manager +Description: daemon handling the GNOME session settings + This package contains the daemon which is responsible for setting the + various parameters of a GNOME session and the applications that run + under it. It handles the following kinds of settings: + . + * Keyboard: layout, accessibility options, shortcuts, media keys + * Clipboard management + * Theming: background, icons, GTK+ applications + * Cleanup of unused files + * Mouse: cursors, speed, accessibility options + * Startup of other daemons: screensaver, sound daemon + * Typing break + . + It also sets various application settings through X resources and + freedesktop.org XSETTINGS. + +Package: gnome-settings-daemon-dev +Architecture: any +Depends: ${shlibs:Depends}, + ${misc:Depends}, + libdbus-glib-1-dev (>= 0.74), + libglib2.0-dev (>= 2.17.3) +Replaces: libgnome-settings-daemon-dev +Description: Headers for building applications communicating with gnome-settings-daemon + This package contains header files required to build applications that + communicate with the GNOME settings daemon over D-Bus. --- gnome-settings-daemon-2.30.2.orig/debian/gnome-settings-daemon.install +++ gnome-settings-daemon-2.30.2/debian/gnome-settings-daemon.install @@ -0,0 +1,9 @@ +debian/tmp/etc/gconf +debian/tmp/etc/xdg/autostart +debian/tmp/usr/lib/gnome-settings-daemon* +debian/tmp/usr/share/icons +debian/tmp/usr/share/locale +debian/tmp/usr/share/gnome-settings-daemon/*.ui +debian/tmp/usr/share/gnome-settings-daemon/xrdb/* /etc/gnome/config +debian/tmp/usr/share/gnome-control-center +debian/tmp/usr/share/dbus-1/services --- gnome-settings-daemon-2.30.2.orig/debian/gnome-settings-daemon.gconf-defaults +++ gnome-settings-daemon-2.30.2/debian/gnome-settings-daemon.gconf-defaults @@ -0,0 +1,6 @@ +/desktop/gnome/font_rendering/antialiasing rgba +/desktop/gnome/font_rendering/hinting slight +/desktop/gnome/peripherals/touchpad/config_migration_needed true +/desktop/gnome/peripherals/touchpad/disable_while_typing true +/desktop/gnome/peripherals/touchpad/tap_to_click true + --- gnome-settings-daemon-2.30.2.orig/debian/rules +++ gnome-settings-daemon-2.30.2/debian/rules @@ -0,0 +1,31 @@ +#!/usr/bin/make -f + +include /usr/share/cdbs/1/rules/debhelper.mk +include /usr/share/cdbs/1/rules/patchsys-quilt.mk +include /usr/share/cdbs/1/rules/utils.mk +include /usr/share/cdbs/1/class/gnome.mk +include /usr/share/gnome-pkg-tools/1/rules/uploaders.mk +-include /usr/share/gnome-pkg-tools/1/rules/gnome-get-source.mk + +DEB_AUTO_UPDATE_LIBTOOL=pre +DEB_AUTO_UPDATE_ACLOCAL=1.11 +DEB_AUTO_UPDATE_AUTOCONF=1 +DEB_AUTO_UPDATE_AUTOHEADER=1 +DEB_AUTO_UPDATE_AUTOMAKE=1.11 + +LDFLAGS += -Wl,-O1 -Wl,-z,defs -Wl,--warn-unresolved-symbols -Wl,--as-needed + +DEB_DH_MAKESHLIBS_ARGS_ALL += --no-act + +build/gnome-settings-daemon:: + gcc -o gnome-settings-daemon/gnome-update-wallpaper-cache `pkg-config --cflags --libs glib-2.0 gdk-2.0 gconf-2.0 gnome-desktop-2.0` debian/gnome-update-wallpaper-cache.c + +install/gnome-settings-daemon:: + /usr/bin/install -c gnome-settings-daemon/gnome-update-wallpaper-cache 'debian/tmp/usr/lib/gnome-settings-daemon' + +binary-install/gnome-settings-daemon:: + find debian -name '*.a' -delete + find debian -name '*.la' -delete + +clean:: + rm -f gnome-settings-daemon/gnome-update-wallpaper-cache --- gnome-settings-daemon-2.30.2.orig/debian/gnome-settings-daemon-dev.install +++ gnome-settings-daemon-2.30.2/debian/gnome-settings-daemon-dev.install @@ -0,0 +1,2 @@ +debian/tmp/usr/include +debian/tmp/usr/lib/pkgconfig --- gnome-settings-daemon-2.30.2.orig/debian/changelog +++ gnome-settings-daemon-2.30.2/debian/changelog @@ -0,0 +1,294 @@ +gnome-settings-daemon (2.30.2-0ubuntu1) maverick; urgency=low + + * New upstream release + * debian/patches/30_pkgconfig-path.patch: + - Fixed for latest upstream + + -- Rodrigo Moya Tue, 22 Jun 2010 12:08:23 +0200 + +gnome-settings-daemon (2.30.1-1ubuntu2) maverick; urgency=low + + * debian/control.in: + - Build-depend on gnome-common for autotools + + -- Robert Ancell Thu, 10 Jun 2010 13:26:51 +1000 + +gnome-settings-daemon (2.30.1-1ubuntu1) maverick; urgency=low + + * Merge with Debian unstable, remaining Ubuntu changes: + * debian/control.in: + - Drop libxrandr-dev and libxrender-dev build-deps + - Build-depend on libpulse and libcanberra + - Build-depend on libappindicator-dev + - Add Vcs-Bzr link + - Recommend pulseaudio + * debian/rules: + - Run autotools on build + - Don't disable the pulseaudio use + - Build and install gnome-update-wallpaper-cache + * debian/gnome-settings-daemon.gconf-defaults: + - Enable tap_on_click and disable_while_typing on by default, + it's the less confusing behaviour for user and was the consensus + during the discussion on the lists + - Ensure that touchpad settings are migrated to the new + config where appropriate + - Use subpixel rendering and slight hinting as the default + * debian/gnome-settings-daemon.install: + - Don't move the autostart to a non standard directory as debian + - Install dbus service + debian/gnome-settings-daemon.postinst: + - Don't move the autostart to a non standard directory as debian + * debian/gnome-update-cache-wallpaper.c: + - enable creating a cached wallpaper even when g-s-d or nautilus isn't + running. Used in ubiquity in install mode + * debian/patches/02_fix_randr.patch: + - Correctly apply the xrandr settings. + * debian/patches/05_disable_corner_tapping.patch: + - Disable corner tapping when disabling tap to click + * debian/patches/06_use_application_indicator.patch: + - Use the new application indicator system + * debian/patches/07_dont_display_autostart.patch: + - Don't show the gnome-settings-daemon autostart in the session capplet, + the description is confusing and it's a required component + * debian/patches/10_fn-F7.patch: + - Fix handling of fn-F7 (xrandr) when xev timestamp is later than server + timestamp + * debian/patches/16_use_synchronous_notifications.patch: + - Use synchronous notifications when they are supported + * debian/patches/20_gstreamer.patch: + - Don't use this debian change but rather the upstream code version + * debian/patches/40_xres_lcddefault.patch: + - OpenOffice.org subpixel font rendering broken with new cairo + * debian/patches/70_migrate_touchpad_config.patch: + - Ensure that touchpad settings are migrated to the new + config where appropriate + * debian/patches/70_relibtoolize.patch: + - Not required, now run autotools on build + * debian/patches/71_fix_ldsm_notification_crash.patch: + - Don't access free'd memory if a volume is unmounted whilst the + dialog is displayed + * debian/patches/91_bugzilla_update_touchpad_icons.patch: + - Use correct touchpad svg icons + * debian/patches/91_update_gvc_source.patch: + - Update gvc copy using the current gnome-media version to fix a leak issue + * debian/watch: + - Watch unstable series + + -- Robert Ancell Thu, 10 Jun 2010 12:49:47 +1000 + +gnome-settings-daemon (2.30.1-1) unstable; urgency=low + + * New upstream release. + * Bump build-dependencies. + * 11_sleepkey.patch, 40_xklavier_5.0.patch: dropped, obsolete. + * 20_gstreamer.patch, 30_pkgconfig-path.patch, 70_relibtoolize.patch: + updated for the new version. + + -- Josselin Mouette Tue, 27 Apr 2010 20:00:27 +0200 + +gnome-settings-daemon (2.28.1-3) unstable; urgency=low + + * Depend on libgnome2-common for the GConf schemas. + * 40_xklavier_5.0.patch: new patch. Get 2.28 version to work with + libxklavier 5.0. + * Require said version to build. + + -- Josselin Mouette Fri, 09 Apr 2010 00:17:00 +0200 + +gnome-settings-daemon (2.28.1-2) unstable; urgency=low + + * Drop libxxf86misc-dev build-dependency. This extension is only used + as a fallback to XKB. Closes: #559690. + * 12_monitor_network_fs.patch: new patch. Don’t monitor remote + filesystems for their free size. Closes: #563592. + + -- Josselin Mouette Sat, 09 Jan 2010 10:59:14 +0100 + +gnome-settings-daemon (2.28.1-1) unstable; urgency=low + + * New upstream release. + - debian/patches/70_relibtoolize.patch: + + Updated. + * debian/rules: remove check-dist.mk to upload to unstable. + + -- Emilio Pozuelo Monfort Thu, 22 Oct 2009 06:08:36 +0200 + +gnome-settings-daemon (2.28.0-1) experimental; urgency=low + + * Add a watch file. + * Add a manpage for gnome-settings-daemon, thanks Joshua Cummings! + Closes: #494370. + * debian/control.in: remove trailing whitespaces. + * Standards-Version is 3.8.2, no changes needed. + * New upstream release. + - debian/control.in: + + Bump libgtk2.0-dev and libgnome-desktop-dev build dependencies. + + Remove libglade2-dev build dependency, no longer needed. + + Build depend on libxklavier-dev >= 4.0 instead of libxklavier12-dev. + + Break gnome-screensaver << 2.28 since g-s-d doesn't start it anymore, + relaying on the autostart file in g-s 2.28. + - debian/patches/20_gstreamer.patch, + debian/patches/70_relibtoolize.patch: + + Updated to apply again. + - debian/gnome-settings-daemon.install: + + Install *.ui rather than *.glade. + + Don't install *.png, the icon is not shipped anymore. + * Standards-Version is 3.8.3, no changes needed. + * debian/rules: + - Don't touch every file anymore, it was done because of a broken tarball. + - Include check-dist.mk to avoid uploads to unstable. + + -- Emilio Pozuelo Monfort Fri, 09 Oct 2009 17:26:43 +0200 + +gnome-settings-daemon (2.26.1-2) unstable; urgency=low + + * 03_maintainer_mode.patch: new patch, add AM_MAINTAINER_MODE. Fixes + FTBFS. + * Regenerate 70_relibtoolize.patch. + + -- Josselin Mouette Fri, 29 May 2009 16:19:52 +0200 + +gnome-settings-daemon (2.26.1-1) unstable; urgency=low + + * New upstream release. + + 20_gstreamer.patch: install the plugin although pulse is disabled. + + Refresh 70_relibtoolize.patch. + * Move the autostart file to /usr/share/gnome/autostart. + * gnome-settings-daemon.postinst: + + Remove the old autostart file if needed. + + Only remove the xrdb stuff upon upgrades from pre-2.24.1. + + -- Josselin Mouette Fri, 29 May 2009 11:25:35 +0200 + +gnome-settings-daemon (2.26.0-2) experimental; urgency=low + + * 20_gstreamer.patch: Initialize Gerror * variables to NULL before + usage. Fixes a crasher when using media keys (Closes: #524165) + + -- Sjoerd Simons Sat, 18 Apr 2009 11:00:25 +0100 + +gnome-settings-daemon (2.26.0-1) experimental; urgency=low + + * New upstream release. + * Update build-dependencies. + * Install the autostart file and the keybindings XML file. + + Break gnome-session < 2.24 which would attempt to start it twice + with the autostart file. + * 11_sleepkey.patch: updated for the new version. + * 20_gstreamer.patch: new patch from Romain Périer, adds back support + for GStreamer with a selection at compile time. + * 70_relibtoolize.patch: regenerated. + * Refresh other patches. + * Pass --disable-pulse to configure, to use the GStreamer code + instead. + + -- Josselin Mouette Sat, 11 Apr 2009 11:31:52 +0200 + +gnome-settings-daemon (2.24.1-2) unstable; urgency=low + + [ Josselin Mouette ] + * Improve package descriptions. Mention XSETTINGS. Closes: #511905. + * Upload to unstable. + + [ Loic Minier ] + * Suggest x11-xserver-utils as gnome-settings-daemon attempts to run xrdb by + default and logs a warning when that fails. + * Suggest gnome-screensaver as gnome-settings-daemon attempts to start it by + default and logs a warning when that fails. + * Suggest metacity | x-window-manager as gnome-settings-daemon attemts to + start a window manager and logs a warning when that fails. + + -- Josselin Mouette Tue, 07 Apr 2009 08:48:36 +0200 + +gnome-settings-daemon (2.24.1-1) experimental; urgency=low + + * New upstream release. + + Cleans up thumbnail cache automatically. Closes: #235067. + * Update build-dependencies and -dev dependencies. + * Standards version is 3.8.0. + * Switch to quilt for patch management; build-depend on quilt. + * 02_missing_libs.patch: explicitly add X11 libraries to + SETTINGS_PLUGINS since plugins are actually relying on them being + available. + * 70_relibtoolize.patch: new patch, relibtoolize the source. + * 99_ltmain_as-needed.patch: new patch, make --as-needed work. + * Pass -O1 -z defs --as-needed to the linker. + + Only warn on undefined symbols as plugins need a symbol from the + daemon. + * Add some comments in the patches. + * Pass --no-act to dh_makeshlibs. + * gnome-settings-daemon.postinst: remove /etc/gnome/config/xrdb. + * Install .ad files in /etc/gnome/config to replace the ones from + capplets-data which are still used. + * Do not install the autostart file since we still use gnome-session + 2.22 which will start g-s-d by hand. + + -- Josselin Mouette Sat, 27 Dec 2008 11:29:41 +0100 + +gnome-settings-daemon (2.22.2.1-2) unstable; urgency=low + + * 08_extra_touchpad_options.patch: removed broken patch from Ubuntu. + Closes: #481191. + * 11_sleepkey.patch: use gnome-power-cmd to suspend the computer + instead of the nonexistent gdm-signal. + + -- Josselin Mouette Tue, 11 Nov 2008 16:08:08 +0100 + +gnome-settings-daemon (2.22.2.1-1) unstable; urgency=low + + [ Josselin Mouette ] + * Fix priority. + + [ Sebastian Dröge ] + * New upstream bugfix release: + + debian/rules: + - Run touch on every file to fix up timestamps. + + -- Sebastian Dröge Thu, 29 May 2008 10:31:39 +0200 + +gnome-settings-daemon (2.22.1-2) unstable; urgency=high + + * Conflict against gnome-control-center < 2.21.5. Closes: #476802. + + -- Josselin Mouette Sat, 19 Apr 2008 22:17:49 +0200 + +gnome-settings-daemon (2.22.1-1) unstable; urgency=low + + * New upstream bugfix release: + + debian/patches/09_locate_pointer.patch: + - Dropped, fixed upstream. + + -- Sebastian Dröge Mon, 07 Apr 2008 14:44:12 +0200 + +gnome-settings-daemon (2.22.0-4) unstable; urgency=low + + * debian/control.in: + + Also conflict with totem (<< 2.22.0) for the same reason. + * debian/gnome-settings-daemon.install: + + Install xrdb files into /etc/gnome/config again. + + -- Sebastian Dröge Sat, 22 Mar 2008 14:56:12 +0100 + +gnome-settings-daemon (2.22.0-3) unstable; urgency=low + + * Upload to unstable. + * debian/control.in: + + Add conflicts with rhythmbox (<< 0.11.5) and banshee (<< 0.13.2+dfsg-7) + as the multimedia keys DBus interface changed. + + -- Sebastian Dröge Wed, 19 Mar 2008 01:47:15 +0100 + +gnome-settings-daemon (2.22.0-2) experimental; urgency=low + + * debian/rules: + + Don't install the dbus service file. This is not meant to be autostarted + but should be started by gnome-session. + + -- Sebastian Dröge Sun, 16 Mar 2008 17:39:52 +0100 + +gnome-settings-daemon (2.22.0-1) experimental; urgency=low + + * New package, based on the Ubuntu packaging. + + -- Sebastian Dröge Wed, 12 Mar 2008 15:17:19 +0100 + --- gnome-settings-daemon-2.30.2.orig/debian/control.in +++ gnome-settings-daemon-2.30.2/debian/control.in @@ -0,0 +1,78 @@ +Source: gnome-settings-daemon +Section: gnome +Priority: optional +Maintainer: Ubuntu Desktop Team +XSBC-Original-Maintainer: Debian GNOME Maintainers +Uploaders: @GNOME_TEAM@ +Build-Depends: cdbs, + quilt, + debhelper (>= 5), + dpkg-dev (>= 1.13.19), + gnome-common, + autotools-dev, + intltool (>= 0.37.1), + libdbus-glib-1-dev (>= 0.74), + libglib2.0-dev (>= 2.17.3), + libgtk2.0-dev (>= 2.16.0), + libgconf2-dev (>= 2.6.1), + libgnome-desktop-dev (>= 2.29.92), + libnotify-dev (>= 0.4.3), + libxt-dev, + libxi-dev, + libfontconfig1-dev, + libxext-dev, + libx11-dev, + libgnomekbd-dev (>= 2.29.5), + libxklavier-dev (>= 5.0), + libgstreamer0.10-dev (>= 0.10.1.2), + libgstreamer-plugins-base0.10-dev (>= 0.10.1.2), + gnome-pkg-tools, + libpulse-dev (>= 0.9.15), + libcanberra-gtk-dev, + libappindicator-dev +Standards-Version: 3.8.3 +Vcs-Bzr: https://code.launchpad.net/~ubuntu-desktop/gnome-settings-daemon/ubuntu + +Package: gnome-settings-daemon +Architecture: any +Depends: ${shlibs:Depends}, + ${misc:Depends}, + libgnome2-common +Recommends: pulseaudio +Replaces: capplets-data (<< 1:2.21.5), + gnome-control-center (<< 1:2.21.5) +Conflicts: rhythmbox (<< 0.11.5), + banshee (<< 0.13.2+dfsg-7), + totem (<< 2.22.0), + gnome-control-center (<< 1:2.21.5) +Breaks: gnome-session (<< 2.24), + gnome-screensaver (<< 2.28.0) +Suggests: x11-xserver-utils, + gnome-screensaver, + metacity | x-window-manager +Description: daemon handling the GNOME session settings + This package contains the daemon which is responsible for setting the + various parameters of a GNOME session and the applications that run + under it. It handles the following kinds of settings: + . + * Keyboard: layout, accessibility options, shortcuts, media keys + * Clipboard management + * Theming: background, icons, GTK+ applications + * Cleanup of unused files + * Mouse: cursors, speed, accessibility options + * Startup of other daemons: screensaver, sound daemon + * Typing break + . + It also sets various application settings through X resources and + freedesktop.org XSETTINGS. + +Package: gnome-settings-daemon-dev +Architecture: any +Depends: ${shlibs:Depends}, + ${misc:Depends}, + libdbus-glib-1-dev (>= 0.74), + libglib2.0-dev (>= 2.17.3) +Replaces: libgnome-settings-daemon-dev +Description: Headers for building applications communicating with gnome-settings-daemon + This package contains header files required to build applications that + communicate with the GNOME settings daemon over D-Bus. --- gnome-settings-daemon-2.30.2.orig/debian/gnome-settings-daemon.manpages +++ gnome-settings-daemon-2.30.2/debian/gnome-settings-daemon.manpages @@ -0,0 +1 @@ +debian/gnome-settings-daemon.1 --- gnome-settings-daemon-2.30.2.orig/debian/compat +++ gnome-settings-daemon-2.30.2/debian/compat @@ -0,0 +1 @@ +5 --- gnome-settings-daemon-2.30.2.orig/debian/gnome-settings-daemon.1 +++ gnome-settings-daemon-2.30.2/debian/gnome-settings-daemon.1 @@ -0,0 +1,39 @@ +.\" +.\" gnome₋settings-daemon manual page +.\" Copyright (c) 2009 Joshua Cummings +.\" +.TH GNOME-SETTINGS-DAEMON 1 "June 25 2009" "" +.SH NAME +gnome-settings-daemon \- Handles the GNOME session settings +.SH SYNOPSIS +\fBgnome-settings-daemon\fR [\fB\-\-debug\fR] [\fB\-\-no-daemon\fR] +[\fB\-\-gconf-prefix\fR] [\fB\-\-display\fR=\fIDISPLAY\fR] +.SH DESCRIPTION +\fIgnome-settings-daemon\fR is responsible for setting the various preference +parameters of a GNOME session and the applications that run under it. +.SH OPTIONS +.PP +Help options +.TP +\-?, \fB\-\-help\fR +Show this help message +.PP +Application options +.TP +\fB\-\^\-debug\fR +Enable debugging code +.TP +\fB\-\^\-no-daemon\fR +Do not detach the daemon process from its controlling terminal +.TP +\fB\-\^\-gconf-prefix\fR +Specify a custom GConf settings prefix for settings manager plugins +.TP +\fB\-\^\-display\fR=\fIDISPLAY\fR +X display to use +.PP +.SH AUTHOR +\fBgnome-settings-daemon\fR was written by Jonathan Blandford +and William Jon McCann . +.PP +This manual page was originally written by Joshua Cummings . --- gnome-settings-daemon-2.30.2.orig/debian/patches/91_update_gvc_source.patch +++ gnome-settings-daemon-2.30.2/debian/patches/91_update_gvc_source.patch @@ -0,0 +1,16 @@ +Descrption: Update gvc copy using the current gnome-media version to fix a leak issue +Bug: https://bugs.launchpad.net/bugs/485923 + +diff -Nur gnome-settings-daemon-2.29.92/plugins/media-keys/cut-n-paste/gvc-mixer-stream.c gnome-settings-daemon-2.29.92.ubuntu/plugins/media-keys/cut-n-paste/gvc-mixer-stream.c +--- gnome-settings-daemon-2.29.92/plugins/media-keys/cut-n-paste/gvc-mixer-stream.c 2009-08-24 12:20:18.000000000 +0200 ++++ gnome-settings-daemon-2.29.92.ubuntu/plugins/media-keys/cut-n-paste/gvc-mixer-stream.c 2010-03-09 10:20:33.000000000 +0100 +@@ -844,6 +844,9 @@ + + g_return_if_fail (mixer_stream->priv != NULL); + ++ g_object_unref (mixer_stream->priv->channel_map); ++ mixer_stream->priv->channel_map = NULL; ++ + g_free (mixer_stream->priv->name); + mixer_stream->priv->name = NULL; + --- gnome-settings-daemon-2.30.2.orig/debian/patches/03_maintainer_mode.patch +++ gnome-settings-daemon-2.30.2/debian/patches/03_maintainer_mode.patch @@ -0,0 +1,12 @@ +Index: gnome-settings-daemon-2.26.1/configure.ac +=================================================================== +--- gnome-settings-daemon-2.26.1.orig/configure.ac 2009-05-29 16:19:04.081105324 +0200 ++++ gnome-settings-daemon-2.26.1/configure.ac 2009-05-29 16:19:32.437481894 +0200 +@@ -11,6 +11,7 @@ AC_INIT([gnome-settings-daemon], + AC_CONFIG_SRCDIR([gnome-settings-daemon/gnome-settings-manager.c]) + + AM_INIT_AUTOMAKE([1.9 no-dist-gzip dist-bzip2 tar-ustar]) ++AM_MAINTAINER_MODE + + AC_STDC_HEADERS + AC_PROG_CXX --- gnome-settings-daemon-2.30.2.orig/debian/patches/12_monitor_network_fs.patch +++ gnome-settings-daemon-2.30.2/debian/patches/12_monitor_network_fs.patch @@ -0,0 +1,42 @@ +Debian #563592 +GNOME #606421 + +Index: gnome-settings-daemon-2.30.1/plugins/housekeeping/gsd-disk-space.c +=================================================================== +--- gnome-settings-daemon-2.30.1.orig/plugins/housekeeping/gsd-disk-space.c 2010-01-12 16:51:57.000000000 +0100 ++++ gnome-settings-daemon-2.30.1/plugins/housekeeping/gsd-disk-space.c 2010-04-27 19:32:30.509534907 +0200 +@@ -302,10 +302,13 @@ ldsm_mount_should_ignore (GUnixMountEntr + * expose this in a way that allows it to be used for this + * purpose + */ ++ ++ /* We also ignore network filesystems. */ + + const gchar *ignore_fs[] = { + "auto", + "autofs", ++ "autofs4", + "devfs", + "devpts", + "ecryptfs", +@@ -322,6 +325,20 @@ ldsm_mount_should_ignore (GUnixMountEntr + "nfsd", + "rpc_pipefs", + "zfs", ++ ++ "adfs", ++ "afs", ++ "cifs", ++ "cxfs", ++ "gfs", ++ "gfs2", ++ "lustre", ++ "lustre_lite", ++ "ncpfs", ++ "nfs", ++ "nfs4", ++ "ocfs2", ++ "smbfs", + NULL + }; + const gchar *ignore_devices[] = { --- gnome-settings-daemon-2.30.2.orig/debian/patches/70_migrate_touchpad_config.patch +++ gnome-settings-daemon-2.30.2/debian/patches/70_migrate_touchpad_config.patch @@ -0,0 +1,91 @@ +Description: Ensure that touchpad settings are migrated to the new config where appropriate +Author: ? + +Index: gnome-settings-daemon-2.30.1/plugins/mouse/gsd-mouse-manager.c +=================================================================== +--- gnome-settings-daemon-2.30.1.orig/plugins/mouse/gsd-mouse-manager.c 2010-06-10 12:53:34.823995974 +1000 ++++ gnome-settings-daemon-2.30.1/plugins/mouse/gsd-mouse-manager.c 2010-06-10 12:53:45.206505133 +1000 +@@ -70,6 +70,10 @@ + #define KEY_TOUCHPAD_ENABLED GCONF_TOUCHPAD_DIR "/touchpad_enabled" + #endif + ++#define KEY_TOUCHPAD_MIGRATION_NEEDED GCONF_TOUCHPAD_DIR "/config_migration_needed" ++#define KEY_OLD_PAD_HORIZ_SCROLL GCONF_MOUSE_DIR "/pad_horiz_scroll" ++#define KEY_OLD_PAD_VERT_SCROLL GCONF_MOUSE_DIR "/pad_vert_scroll" ++ + struct GsdMouseManagerPrivate + { + guint notify; +@@ -996,6 +1000,63 @@ + manager->priv = GSD_MOUSE_MANAGER_GET_PRIVATE (manager); + } + ++static void ++migrate_touchpad_config (GConfClient *client) ++{ ++ GConfValue *old_pad_horiz_scroll_val, *old_pad_vert_scroll_val; ++ gboolean old_pad_horiz_scroll = FALSE; /* This was the old default setting */ ++ gboolean old_pad_vert_scroll = TRUE; /* This was the old default setting */ ++ ++ /* Here we migrate some settings. ++ * ++ * The tap_to_click setting doesn't need to be migrated. It was ON by ++ * default in the old version and OFF by default now. If the user disabled ++ * it in the old version, then it will still be disabled now. ++ * ++ * The touchpad_enabled setting from the old config has now been deprecated, so ++ * doesn't need to be migrated. ++ * ++ * There is now a disable_while_typing preference which was not present before, so there's ++ * nothing to migrate this from. ++ */ ++ ++ if (gconf_client_get_bool (client, KEY_TOUCHPAD_MIGRATION_NEEDED, NULL)) { ++ /* Migrate the touchpad scrolling settings */ ++ old_pad_horiz_scroll_val = gconf_client_get (client, KEY_OLD_PAD_HORIZ_SCROLL, NULL); ++ old_pad_vert_scroll_val = gconf_client_get (client, KEY_OLD_PAD_VERT_SCROLL, NULL); ++ if (old_pad_horiz_scroll_val != NULL) { ++ /* Read the old user setting, if it exists in the GConf database */ ++ old_pad_horiz_scroll = gconf_value_get_bool (old_pad_horiz_scroll_val); ++ gconf_value_free (old_pad_horiz_scroll_val); ++ } ++ if (old_pad_vert_scroll_val != NULL) { ++ /* Read the old user setting, if it exists in the GConf database */ ++ old_pad_vert_scroll = gconf_value_get_bool (old_pad_vert_scroll_val); ++ gconf_value_free (old_pad_vert_scroll_val); ++ } ++ ++ if (!old_pad_vert_scroll && !old_pad_horiz_scroll) { ++ /* The user had disabled vertical scrolling and left the horizontal settings ++ * as default (off). In this case, we disable scrolling in the new config. ++ * If the user explicitly enabled horizontal scrolling, ++ * then we leave scrolling enabled. It's not possible to have horizontal scrolling ++ * without vertical scrolling with the new settings. ++ */ ++ gconf_client_set_int (client, KEY_SCROLL_METHOD, 0, NULL); ++ } ++ ++ if (old_pad_horiz_scroll) { ++ /* The user explicitly enabled horizontal scrolling, so ++ * copy this to the new config. ++ */ ++ gconf_client_set_bool (client, KEY_PAD_HORIZ_SCROLL, TRUE, NULL); ++ } ++ ++ /* Make sure we record that we've migrated the config */ ++ gconf_client_set_bool (client, KEY_TOUCHPAD_MIGRATION_NEEDED, FALSE, NULL); ++ } ++} ++ + static gboolean + gsd_mouse_manager_idle_cb (GsdMouseManager *manager) + { +@@ -1021,6 +1082,8 @@ + GCONF_TOUCHPAD_DIR, + (GConfClientNotifyFunc) mouse_callback); + manager->priv->syndaemon_spawned = FALSE; ++ ++ migrate_touchpad_config (client); + + #ifdef HAVE_X11_EXTENSIONS_XINPUT_H + set_devicepresence_handler (manager); --- gnome-settings-daemon-2.30.2.orig/debian/patches/30_pkgconfig-path.patch +++ gnome-settings-daemon-2.30.2/debian/patches/30_pkgconfig-path.patch @@ -0,0 +1,12 @@ +Index: gnome-settings-daemon-2.30.1/data/gnome-settings-daemon.pc.in +=================================================================== +--- gnome-settings-daemon-2.30.1.orig/data/gnome-settings-daemon.pc.in 2010-03-10 12:58:29.000000000 +0100 ++++ gnome-settings-daemon-2.30.1/data/gnome-settings-daemon.pc.in 2010-04-27 19:54:02.974028223 +0200 +@@ -3,6 +3,7 @@ exec_prefix=@exec_prefix@ + includedir=@includedir@ + libexecdir=@libexecdir@ + plugindir=@plugindir@ ++binary=${libexecdir}/gnome-settings-daemon + + Name: gnome-settings-daemon + Description: Utility library for accessing gnome-settings-daemon over DBUS --- gnome-settings-daemon-2.30.2.orig/debian/patches/series +++ gnome-settings-daemon-2.30.2/debian/patches/series @@ -0,0 +1,17 @@ +01_xrdb.patch +02_fix_randr.patch +02_missing_libs.patch +03_maintainer_mode.patch +05_disable_corner_tapping.patch +06_use_application_indicator.patch +07_dont_display_autostart.patch +10_fn-F7.patch +12_monitor_network_fs.patch +16_use_synchronous_notifications.patch +30_pkgconfig-path.patch +40_xres_lcddefault.patch +70_migrate_touchpad_config.patch +71_fix_ldsm_notification_crash.patch +91_bugzilla_update_touchpad_icons.patch +91_update_gvc_source.patch +99_ltmain_as-needed.patch --- gnome-settings-daemon-2.30.2.orig/debian/patches/06_use_application_indicator.patch +++ gnome-settings-daemon-2.30.2/debian/patches/06_use_application_indicator.patch @@ -0,0 +1,465 @@ +Description: Use the new application indicator system +Bug: https://bugzilla.gnome.org/show_bug.cgi?id=610867 +Bug-Ubuntu: https://bugs.launchpad.net/ubuntu/+source/gnome-settings-daemon/+bug/497875 + +Index: gnome-settings-daemon-2.30.1/configure.ac +=================================================================== +--- gnome-settings-daemon-2.30.1.orig/configure.ac 2010-06-10 12:53:34.133995013 +1000 ++++ gnome-settings-daemon-2.30.1/configure.ac 2010-06-10 12:53:36.293994954 +1000 +@@ -52,6 +52,7 @@ + GIO_REQUIRED_VERSION=2.17.3 + GNOME_DESKTOP_REQUIRED_VERSION=2.29.92 + LIBNOTIFY_REQUIRED_VERSION=0.4.3 ++APPINDICATOR_REQUIRED_VERSION=0.0.13 + + EXTRA_COMPILE_WARNINGS(yes) + +@@ -108,6 +109,32 @@ + AC_SUBST(LIBNOTIFY_CFLAGS) + AC_SUBST(LIBNOTIFY_LIBS) + ++dnl --------------------------------- ++dnl - Application indicator ++dnl --------------------------------- ++ ++AC_ARG_ENABLE([appindicator], ++ AS_HELP_STRING([--enable-appindicator[=@<:@no/auto/yes@:>@]],[Build support for application indicators]), ++ [enable_appindicator=$enableval], ++ [enable_appindicator="auto"]) ++ ++ ++if test x$enable_appindicator = xauto ; then ++ PKG_CHECK_EXISTS(appindicator-0.1 >= $APPINDICATOR_REQUIRED_VERSION, ++ [enable_appindicator="yes"], ++ [enable_appindicator="no"]) ++fi ++ ++if test x$enable_appindicator = xyes ; then ++ PKG_CHECK_MODULES(APPINDICATOR, ++ [appindicator-0.1 >= $APPINDICATOR_REQUIRED_VERSION], ++ [AC_DEFINE(HAVE_APPINDICATOR, 1, [Have AppIndicator])]) ++fi ++ ++AM_CONDITIONAL(HAVE_APPINDICATOR, test x$enable_appindicator = xyes) ++AC_SUBST(APPINDICATOR_CFLAGS) ++AC_SUBST(APPINDICATOR_LIBS) ++ + dnl --------------------------------------------------------------------------- + dnl - Check for D-Bus + dnl --------------------------------------------------------------------------- +@@ -392,6 +419,7 @@ + dbus-1 system.d dir: ${DBUS_SYS_DIR} + + Libnotify support: ${have_libnotify} ++ App indicatpr support: ${enable_appindicator} + PulseAudio support: ${have_pulse} + Profiling support: ${enable_profiling} + " +Index: gnome-settings-daemon-2.30.1/plugins/a11y-keyboard/Makefile.am +=================================================================== +--- gnome-settings-daemon-2.30.1.orig/plugins/a11y-keyboard/Makefile.am 2009-07-28 07:37:28.000000000 +1000 ++++ gnome-settings-daemon-2.30.1/plugins/a11y-keyboard/Makefile.am 2010-06-10 12:53:36.293994954 +1000 +@@ -53,6 +53,7 @@ + liba11y_keyboard_la_CFLAGS = \ + $(SETTINGS_PLUGIN_CFLAGS) \ + $(LIBNOTIFY_CFLAGS) \ ++ $(APPINDICATOR_CFLAGS) \ + $(AM_CFLAGS) + + liba11y_keyboard_la_LDFLAGS = \ +@@ -63,6 +64,7 @@ + $(SETTINGS_PLUGIN_LIBS) \ + $(XF86MISC_LIBS) \ + $(LIBNOTIFY_LIBS) \ ++ $(APPINDICATOR_LIBS) \ + $(NULL) + + plugin_in_files = \ +Index: gnome-settings-daemon-2.30.1/plugins/a11y-keyboard/gsd-a11y-keyboard-manager.c +=================================================================== +--- gnome-settings-daemon-2.30.1.orig/plugins/a11y-keyboard/gsd-a11y-keyboard-manager.c 2009-05-04 04:15:30.000000000 +1000 ++++ gnome-settings-daemon-2.30.1/plugins/a11y-keyboard/gsd-a11y-keyboard-manager.c 2010-06-10 12:53:36.293994954 +1000 +@@ -45,6 +45,10 @@ + #include + #endif /* HAVE_LIBNOTIFY */ + ++#ifdef HAVE_APPINDICATOR ++#include ++#endif ++ + #include "gnome-settings-profile.h" + #include "gsd-a11y-keyboard-manager.h" + #include "gsd-a11y-preferences-dialog.h" +@@ -62,7 +66,11 @@ + GtkWidget *stickykeys_alert; + GtkWidget *slowkeys_alert; + GtkWidget *preferences_dialog; ++#ifdef HAVE_APPINDICATOR ++ AppIndicator *app_indicator; ++#else + GtkStatusIcon *status_icon; ++#endif + XkbDescRec *original_xkb_desc; + + guint gconf_notify; +@@ -435,11 +443,24 @@ + show = gconf_client_get_bool (client, CONFIG_ROOT "/enable", NULL); + g_object_unref (client); + ++#ifdef HAVE_APPINDICATOR ++ if (!show && manager->priv->app_indicator == NULL) ++ return; ++ ++ gsd_a11y_keyboard_manager_ensure_status_icon (manager); ++ if (show) ++ app_indicator_set_status (manager->priv->app_indicator, ++ APP_INDICATOR_STATUS_ACTIVE); ++ else ++ app_indicator_set_status (manager->priv->app_indicator, ++ APP_INDICATOR_STATUS_PASSIVE); ++#else + if (!show && manager->priv->status_icon == NULL) + return; + + gsd_a11y_keyboard_manager_ensure_status_icon (manager); + gtk_status_icon_set_visible (manager->priv->status_icon, show); ++#endif + } + + #ifdef HAVE_LIBNOTIFY +@@ -521,9 +542,11 @@ + message = _("You just held down the Shift key for 8 seconds. This is the shortcut " + "for the Slow Keys feature, which affects the way your keyboard works."); + ++#ifndef HAVE_APPINDICATOR + if (manager->priv->status_icon == NULL || ! gtk_status_icon_is_embedded (manager->priv->status_icon)) { + return FALSE; + } ++#endif + + if (manager->priv->slowkeys_alert != NULL) { + gtk_widget_destroy (manager->priv->slowkeys_alert); +@@ -538,7 +561,9 @@ + message, + "preferences-desktop-accessibility", + NULL); ++#ifndef HAVE_APPINDICATOR + notify_notification_attach_to_status_icon (manager->priv->notification, manager->priv->status_icon); ++#endif + notify_notification_set_timeout (manager->priv->notification, NOTIFICATION_TIMEOUT * 1000); + + notify_notification_add_action (manager->priv->notification, +@@ -660,9 +685,11 @@ + _("You just pressed two keys at once, or pressed the Shift key 5 times in a row. " + "This turns off the Sticky Keys feature, which affects the way your keyboard works."); + ++#ifndef HAVE_APPINDICATOR + if (manager->priv->status_icon == NULL || ! gtk_status_icon_is_embedded (manager->priv->status_icon)) { + return FALSE; + } ++#endif + + if (manager->priv->slowkeys_alert != NULL) { + gtk_widget_destroy (manager->priv->slowkeys_alert); +@@ -677,7 +704,9 @@ + message, + "preferences-desktop-accessibility", + NULL); ++#ifndef HAVE_APPINDICATOR + notify_notification_attach_to_status_icon (manager->priv->notification, manager->priv->status_icon); ++#endif + notify_notification_set_timeout (manager->priv->notification, NOTIFICATION_TIMEOUT * 1000); + + notify_notification_add_action (manager->priv->notification, +@@ -1072,8 +1101,14 @@ + + g_debug ("Stopping a11y_keyboard manager"); + ++#ifdef HAVE_APPINDICATOR ++ if (p->app_indicator) ++ app_indicator_set_status (p->app_indicator, ++ APP_INDICATOR_STATUS_PASSIVE); ++#else + if (p->status_icon) + gtk_status_icon_set_visible (p->status_icon, FALSE); ++#endif + + if (p->gconf_notify != 0) { + GConfClient *client = gconf_client_get_default (); +@@ -1190,8 +1225,13 @@ + } + + static void ++#ifdef HAVE_APPINDICATOR ++on_status_icon_activate (GtkMenuItem *item, ++ GsdA11yKeyboardManager *manager) ++#else + on_status_icon_activate (GtkStatusIcon *status_icon, + GsdA11yKeyboardManager *manager) ++#endif + { + if (manager->priv->preferences_dialog == NULL) { + manager->priv->preferences_dialog = gsd_a11y_preferences_dialog_new (); +@@ -1215,6 +1255,26 @@ + { + gnome_settings_profile_start (NULL); + ++#ifdef HAVE_APPINDICATOR ++ if (!manager->priv->app_indicator) { ++ GtkWidget *menu = gtk_menu_new (); ++ GtkWidget *item = gtk_menu_item_new_with_label (_("Universal Access Preferences")); ++ ++ g_signal_connect (item, ++ "activate", ++ G_CALLBACK (on_status_icon_activate), ++ manager); ++ ++ gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); ++ gtk_widget_show_all (menu); ++ ++ manager->priv->app_indicator = app_indicator_new ("gsd-a11y-keyboard", ++ "preferences-desktop-accessibility", ++ APP_INDICATOR_CATEGORY_OTHER); ++ app_indicator_set_menu (manager->priv->app_indicator, ++ GTK_MENU (menu)); ++ } ++#else + if (!manager->priv->status_icon) { + + manager->priv->status_icon = gtk_status_icon_new_from_icon_name ("preferences-desktop-accessibility"); +@@ -1223,6 +1283,7 @@ + G_CALLBACK (on_status_icon_activate), + manager); + } ++#endif + + gnome_settings_profile_end (NULL); + } +Index: gnome-settings-daemon-2.30.1/plugins/xrandr/Makefile.am +=================================================================== +--- gnome-settings-daemon-2.30.1.orig/plugins/xrandr/Makefile.am 2010-04-26 22:18:50.000000000 +1000 ++++ gnome-settings-daemon-2.30.1/plugins/xrandr/Makefile.am 2010-06-10 12:53:36.293994954 +1000 +@@ -54,6 +54,7 @@ + libxrandr_la_CFLAGS = \ + $(SETTINGS_PLUGIN_CFLAGS) \ + $(LIBNOTIFY_CFLAGS) \ ++ $(APPINDICATOR_CFLAGS) \ + $(AM_CFLAGS) + + libxrandr_la_LDFLAGS = \ +@@ -61,7 +62,8 @@ + + libxrandr_la_LIBADD = \ + $(SETTINGS_PLUGIN_LIBS) \ +- $(LIBNOTIFY_LIBS) ++ $(LIBNOTIFY_LIBS) \ ++ $(APPINDICATOR_LIBS) + + plugin_in_files = \ + xrandr.gnome-settings-plugin.in +Index: gnome-settings-daemon-2.30.1/plugins/xrandr/gsd-xrandr-manager.c +=================================================================== +--- gnome-settings-daemon-2.30.1.orig/plugins/xrandr/gsd-xrandr-manager.c 2010-06-10 12:53:28.456494521 +1000 ++++ gnome-settings-daemon-2.30.1/plugins/xrandr/gsd-xrandr-manager.c 2010-06-10 12:53:36.293994954 +1000 +@@ -49,6 +49,10 @@ + #include + #endif + ++#ifdef HAVE_APPINDICATOR ++#include ++#endif ++ + #include "gnome-settings-profile.h" + #include "gsd-xrandr-manager.h" + +@@ -93,7 +97,11 @@ + GnomeRRScreen *rw_screen; + gboolean running; + ++#ifdef HAVE_APPINDICATOR ++ AppIndicator *app_indicator; ++#else + GtkStatusIcon *status_icon; ++#endif + GtkWidget *popup_menu; + GnomeRRConfig *configuration; + GnomeRRLabeler *labeler; +@@ -908,17 +916,21 @@ + error_message (GsdXrandrManager *mgr, const char *primary_text, GError *error_to_display, const char *secondary_text) + { + #ifdef HAVE_LIBNOTIFY ++#ifndef HAVE_APPINDICATOR + GsdXrandrManagerPrivate *priv = mgr->priv; ++#endif + NotifyNotification *notification; + + g_assert (error_to_display == NULL || secondary_text == NULL); + ++#ifndef HAVE_APPINDICATOR + if (priv->status_icon) + notification = notify_notification_new_with_status_icon (primary_text, + error_to_display ? error_to_display->message : secondary_text, + GSD_XRANDR_ICON_NAME, + priv->status_icon); + else ++#endif + notification = notify_notification_new (primary_text, + error_to_display ? error_to_display->message : secondary_text, + GSD_XRANDR_ICON_NAME, +@@ -1150,6 +1162,11 @@ + gtk_menu_shell_cancel (GTK_MENU_SHELL (priv->popup_menu)); /* status_icon_popup_menu_selection_done_cb() will free everything */ + status_icon_popup_menu (manager, 0, timestamp); + } ++#if 0 ++ else { ++ status_icon_popup_menu (manager, 0, GDK_CURRENT_TIME); ++ } ++#endif + } + + static void +@@ -1464,6 +1481,8 @@ + priv->configuration = NULL; + } + ++#ifndef HAVE_APPINDICATOR ++ + #define OUTPUT_TITLE_ITEM_BORDER 2 + #define OUTPUT_TITLE_ITEM_PADDING 4 + +@@ -1539,6 +1558,8 @@ + return FALSE; + } + ++#endif ++ + static void + title_item_size_allocate_cb (GtkWidget *widget, GtkAllocation *allocation, gpointer data) + { +@@ -1596,6 +1617,7 @@ + gtk_label_set_markup (GTK_LABEL (label), str); + g_free (str); + ++#ifndef HAVE_APPINDICATOR + /* Make the label explicitly black. We don't want it to follow the + * theme's colors, since the label is always shown against a light + * pastel background. See bgo#556050 +@@ -1607,6 +1629,7 @@ + gtk_misc_set_padding (GTK_MISC (label), + OUTPUT_TITLE_ITEM_BORDER + OUTPUT_TITLE_ITEM_PADDING, + OUTPUT_TITLE_ITEM_BORDER + OUTPUT_TITLE_ITEM_PADDING); ++#endif + + gtk_container_add (GTK_CONTAINER (item), label); + +@@ -1614,10 +1637,12 @@ + * to its expose-event signal. See the comment in *** to see why need to connect + * to the label both 'before' and 'after'. + */ ++#ifndef HAVE_APPINDICATOR + g_signal_connect (label, "expose-event", + G_CALLBACK (output_title_label_expose_event_cb), manager); + g_signal_connect_after (label, "expose-event", + G_CALLBACK (output_title_label_after_expose_event_cb), manager); ++#endif + + g_object_set_data (G_OBJECT (label), "output", output); + +@@ -1856,6 +1881,13 @@ + struct GsdXrandrManagerPrivate *priv = manager->priv; + GtkWidget *item; + ++#ifdef HAVE_APPINDICATOR ++ if (!priv->configuration) ++ priv->configuration = gnome_rr_config_new_current (priv->rw_screen); ++ ++ if (priv->popup_menu) ++ gtk_widget_destroy (priv->popup_menu); ++#else + g_assert (priv->configuration == NULL); + priv->configuration = gnome_rr_config_new_current (priv->rw_screen); + +@@ -1863,6 +1895,7 @@ + priv->labeler = gnome_rr_labeler_new (priv->configuration); + + g_assert (priv->popup_menu == NULL); ++#endif + priv->popup_menu = gtk_menu_new (); + + add_menu_items_for_outputs (manager); +@@ -1877,14 +1910,20 @@ + gtk_widget_show (item); + gtk_menu_shell_append (GTK_MENU_SHELL (priv->popup_menu), item); + ++#ifdef HAVE_APPINDICATOR ++ app_indicator_set_menu (priv->app_indicator, ++ GTK_MENU (priv->popup_menu)); ++#else + g_signal_connect (priv->popup_menu, "selection-done", + G_CALLBACK (status_icon_popup_menu_selection_done_cb), manager); + + gtk_menu_popup (GTK_MENU (priv->popup_menu), NULL, NULL, + gtk_status_icon_position_menu, + priv->status_icon, button, timestamp); ++#endif + } + ++#ifndef HAVE_APPINDICATOR + static void + status_icon_activate_cb (GtkStatusIcon *status_icon, gpointer data) + { +@@ -1901,12 +1940,23 @@ + + status_icon_popup_menu (manager, button, timestamp); + } ++#endif + + static void + status_icon_start (GsdXrandrManager *manager) + { + struct GsdXrandrManagerPrivate *priv = manager->priv; + ++#ifdef HAVE_APPINDICATOR ++ if (!priv->app_indicator) { ++ priv->app_indicator = app_indicator_new ("gsd-xrandr", ++ GSD_XRANDR_ICON_NAME, ++ APP_INDICATOR_CATEGORY_HARDWARE); ++ app_indicator_set_status (priv->app_indicator, ++ APP_INDICATOR_STATUS_ACTIVE); ++ status_icon_popup_menu (manager, 0, 0); ++ } ++#else + /* Ideally, we should detect if we are on a tablet and only display + * the icon in that case. + */ +@@ -1919,6 +1969,7 @@ + g_signal_connect (priv->status_icon, "popup-menu", + G_CALLBACK (status_icon_popup_menu_cb), manager); + } ++#endif + } + + static void +@@ -1926,6 +1977,14 @@ + { + struct GsdXrandrManagerPrivate *priv = manager->priv; + ++#ifdef HAVE_APPINDICATOR ++ if (priv->app_indicator) { ++ app_indicator_set_status (priv->app_indicator, ++ APP_INDICATOR_STATUS_PASSIVE); ++ g_object_unref (priv->app_indicator); ++ priv->app_indicator = NULL; ++ } ++#else + if (priv->status_icon) { + g_signal_handlers_disconnect_by_func ( + priv->status_icon, G_CALLBACK (status_icon_activate_cb), manager); +@@ -1938,6 +1997,7 @@ + g_object_unref (priv->status_icon); + priv->status_icon = NULL; + } ++#endif + } + + static void --- gnome-settings-daemon-2.30.2.orig/debian/patches/40_xres_lcddefault.patch +++ gnome-settings-daemon-2.30.2/debian/patches/40_xres_lcddefault.patch @@ -0,0 +1,66 @@ +Description: OpenOffice.org subpixel font rendering broken with new cairo +Bug: https://bugs.launchpad.net/bugs/271283 + +Index: gnome-settings-daemon-2.29.5/plugins/xsettings/gsd-xsettings-manager.c +=================================================================== +--- gnome-settings-daemon-2.29.5.orig/plugins/xsettings/gsd-xsettings-manager.c 2010-01-21 23:54:11.000000000 +0100 ++++ gnome-settings-daemon-2.29.5/plugins/xsettings/gsd-xsettings-manager.c 2010-01-21 23:54:50.000000000 +0100 +@@ -295,6 +295,9 @@ + int dpi; + const char *rgba; + const char *hintstyle; ++ ++ /* priv helper for OOO lcdfilter */ ++ gboolean use_rgba; + } GnomeXftSettings; + + static const char *rgba_types[] = { "rgb", "bgr", "vbgr", "vrgb" }; +@@ -321,6 +324,7 @@ + settings->hintstyle = "hintfull"; + settings->dpi = dpi * 1024; /* Xft wants 1/1024ths of an inch */ + settings->rgba = "rgb"; ++ settings->use_rgba = FALSE; + + if (rgba_order) { + int i; +@@ -359,7 +363,6 @@ + } + + if (antialiasing) { +- gboolean use_rgba = FALSE; + + if (strcmp (antialiasing, "none") == 0) { + settings->antialias = 0; +@@ -367,13 +370,13 @@ + settings->antialias = 1; + } else if (strcmp (antialiasing, "rgba") == 0) { + settings->antialias = 1; +- use_rgba = TRUE; ++ settings->use_rgba = TRUE; + } else { + g_warning ("Invalid value for " FONT_ANTIALIASING_KEY " : '%s'", + antialiasing); + } + +- if (!use_rgba) { ++ if (!settings->use_rgba) { + settings->rgba = "none"; + } + } +@@ -397,6 +400,7 @@ + xsettings_manager_set_string (manager->priv->managers [i], "Xft/HintStyle", settings->hintstyle); + xsettings_manager_set_int (manager->priv->managers [i], "Xft/DPI", settings->dpi); + xsettings_manager_set_string (manager->priv->managers [i], "Xft/RGBA", settings->rgba); ++ xsettings_manager_set_string (manager->priv->managers [i], "Xft/lcdfilter", settings->use_rgba ? "lcddefault" : "none"); + } + gnome_settings_profile_end (NULL); + } +@@ -456,6 +460,8 @@ + settings->hintstyle); + update_property (add_string, "Xft.rgba", + settings->rgba); ++ update_property (add_string, "Xft.lcdfilter", ++ settings->use_rgba ? "lcddefault" : "none"); + + g_debug("xft_settings_set_xresources: new res '%s'", add_string->str); + --- gnome-settings-daemon-2.30.2.orig/debian/patches/02_missing_libs.patch +++ gnome-settings-daemon-2.30.2/debian/patches/02_missing_libs.patch @@ -0,0 +1,13 @@ +Index: gnome-settings-daemon-2.30.1/configure.ac +=================================================================== +--- gnome-settings-daemon-2.30.1.orig/configure.ac 2010-04-26 14:19:03.000000000 +0200 ++++ gnome-settings-daemon-2.30.1/configure.ac 2010-04-27 19:30:51.998031911 +0200 +@@ -69,6 +69,8 @@ PKG_CHECK_MODULES(SETTINGS_PLUGIN, + gnome-desktop-2.0 >= $GNOME_DESKTOP_REQUIRED_VERSION + gio-2.0 >= $GIO_REQUIRED_VERSION + dbus-glib-1 >= $DBUS_GLIB_REQUIRED_VERSION ++ xext ++ x11 + ) + + GSD_PLUGIN_LDFLAGS="-export_dynamic -module -avoid-version -no-undefined" --- gnome-settings-daemon-2.30.2.orig/debian/patches/10_fn-F7.patch +++ gnome-settings-daemon-2.30.2/debian/patches/10_fn-F7.patch @@ -0,0 +1,51 @@ +From 22990893be444374a642d73f5b7c054fb41602ed Mon Sep 17 00:00:00 2001 +From: Chase Douglas +Date: Fri, 2 Apr 2010 01:37:44 +0000 +Subject: [PATCH] Ensure fn-F7 event timestamps are valid +Bug-Ubuntu: https://launchpad.net/bugs/484186 + +The X randr extension requires timestamps to be valid for configurations +to be made. The xrandr plugin uses the timestamps from the input events +from the kernel, but input events can be sent by the kernel out of +order and/or have a timestamp previous to the latest g-s-d +autoconfiguration. In such cases, the X randr extension errors out due +to timestamp warping. + +In deference to the fact that all input events should be handled, this +change fixes up the timestamps so they are always later than or equal to +the value used in the server. + +Signed-off-by: Chase Douglas +--- + plugins/xrandr/gsd-xrandr-manager.c | 11 +++++++++++ + 1 files changed, 11 insertions(+), 0 deletions(-) + +Index: gnome-settings-daemon-2.30.1/plugins/xrandr/gsd-xrandr-manager.c +=================================================================== +--- gnome-settings-daemon-2.30.1.orig/plugins/xrandr/gsd-xrandr-manager.c 2010-06-10 12:53:36.293994954 +1000 ++++ gnome-settings-daemon-2.30.1/plugins/xrandr/gsd-xrandr-manager.c 2010-06-10 12:53:40.486504615 +1000 +@@ -957,6 +957,7 @@ + GnomeRRScreen *screen = priv->rw_screen; + GnomeRRConfig *current; + GError *error; ++ guint32 server_timestamp; + + /* Theory of fn-F7 operation + * +@@ -1011,6 +1012,16 @@ + + g_debug ("applying"); + ++ /* The X server will error out if the timestamp provided is ++ * older than a previous change configuration timestamp. We ++ * assume here that we do want this event to go through still, ++ * since kernel timestamps may be skewed wrt the X server. ++ */ ++ gnome_rr_screen_get_timestamps (screen, NULL, &server_timestamp); ++ if ((gint32) timestamp - (gint32) server_timestamp < 0) { ++ timestamp = server_timestamp; ++ } ++ + apply_configuration_and_display_error (mgr, priv->fn_f7_configs[mgr->priv->current_fn_f7_config], timestamp); + } + else { --- gnome-settings-daemon-2.30.2.orig/debian/patches/16_use_synchronous_notifications.patch +++ gnome-settings-daemon-2.30.2/debian/patches/16_use_synchronous_notifications.patch @@ -0,0 +1,632 @@ +Description: Use synchronous notifications when they are supported +Author: ? + +Index: gnome-settings-daemon-2.30.0/plugins/common/gsd-osd-notification.c +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ gnome-settings-daemon-2.30.0/plugins/common/gsd-osd-notification.c 2010-04-23 17:05:08.862133020 +0100 +@@ -0,0 +1,296 @@ ++/* -*- Mode: C; indent-tabs-mode: nil; c-basic-offset: 8; tab-width: 8 -*- */ ++/* ++ * gsd-osd-notification.c ++ * Copyright (C) 2010 Chris Coulson ++ * Copyright (C) 2009 Canonical Ltd ++ * ++ * gsd-osd-notification.c 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 3 of the License, or ++ * (at your option) any later version. ++ * ++ * gsd-osd-notification.c 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, see . ++ */ ++ ++#include ++#include "gsd-osd-notification.h" ++ ++struct _GsdOsdNotificationPrivate ++{ ++ NotifyNotification *notification; ++ char **icon_names; ++ char *hint; ++ guint icon_array_size; ++}; ++ ++#define GSD_OSD_NOTIFICATION_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), GSD_TYPE_OSD_NOTIFICATION, GsdOsdNotificationPrivate)) ++ ++enum ++{ ++ PROP_0, ++ PROP_ICON_NAMES, ++ PROP_HINT ++}; ++ ++static NotifyNotification *icon_only_notification = NULL; ++static gulong handler_id; ++ ++#define NOTIFY_CAP_PRIVATE_SYNCHRONOUS "x-canonical-private-synchronous" ++#define NOTIFY_CAP_PRIVATE_ICON_ONLY "x-canonical-private-icon-only" ++#define NOTIFY_HINT_TRUE "true" ++ ++G_DEFINE_TYPE (GsdOsdNotification, gsd_osd_notification, G_TYPE_OBJECT); ++ ++static const char* ++_calculate_icon (GsdOsdNotification *notifier, guint value, gboolean muted) ++{ ++ guint s; ++ ++ s = (notifier->priv->icon_array_size -1) * value / 100 + 1; ++ s = MAX (s, 1); ++ s = MIN (s, notifier->priv->icon_array_size -1); ++ if (value <= 0) ++ s = 0; ++ ++ return muted ? notifier->priv->icon_names[0] : notifier->priv->icon_names[s]; ++} ++ ++void ++gsd_osd_notification_set_icon_array (GsdOsdNotification *notifier, const char **icon_names) ++{ ++ g_return_if_fail (GSD_IS_OSD_NOTIFICATION (notifier)); ++ ++ g_strfreev (notifier->priv->icon_names); ++ notifier->priv->icon_names = g_strdupv ((gchar **) icon_names); ++ ++ notifier->priv->icon_array_size = g_strv_length ((gchar **) icon_names); ++} ++ ++void ++gsd_osd_notification_set_hint (GsdOsdNotification *notifier, const char *hint) ++{ ++ g_return_if_fail (GSD_IS_OSD_NOTIFICATION (notifier)); ++ ++ g_free (notifier->priv->hint); ++ notifier->priv->hint = g_strdup (hint); ++} ++ ++gboolean ++gsd_osd_notification_is_supported (void) ++{ ++ GList *caps; ++ gboolean has_cap; ++ ++ caps = notify_get_server_caps (); ++ has_cap = (g_list_find_custom (caps, NOTIFY_CAP_PRIVATE_SYNCHRONOUS, (GCompareFunc) g_strcmp0) != NULL); ++ g_list_foreach (caps, (GFunc) g_free, NULL); ++ g_list_free (caps); ++ ++ return has_cap; ++} ++ ++static void ++notification_closed_cb (NotifyNotification *notification, ++ gpointer data) ++{ ++ g_signal_handler_disconnect (icon_only_notification, handler_id); ++ g_object_unref (icon_only_notification); ++ icon_only_notification = NULL; ++} ++ ++gboolean ++gsd_osd_notification_show_icon_only (const char *icon, const char *hint) ++{ ++ g_return_val_if_fail (icon != NULL, FALSE); ++ g_return_val_if_fail (hint != NULL, FALSE); ++ ++ if (!gsd_osd_notification_is_supported ()) ++ return FALSE; ++ ++ if (icon_only_notification == NULL) { ++ icon_only_notification = notify_notification_new (" ", "", icon, NULL); ++ notify_notification_set_hint_string (icon_only_notification, NOTIFY_CAP_PRIVATE_SYNCHRONOUS, hint); ++ notify_notification_set_hint_string (icon_only_notification, NOTIFY_CAP_PRIVATE_ICON_ONLY, NOTIFY_HINT_TRUE); ++ handler_id = g_signal_connect (icon_only_notification, "closed", G_CALLBACK (notification_closed_cb), NULL); ++ } else { ++ notify_notification_set_hint_string (icon_only_notification, NOTIFY_CAP_PRIVATE_SYNCHRONOUS, hint); ++ notify_notification_update (icon_only_notification, " ", "", icon); ++ } ++ ++ if (!notify_notification_show (icon_only_notification, NULL)) { ++ g_signal_handler_disconnect (icon_only_notification, handler_id); ++ g_object_unref (icon_only_notification); ++ icon_only_notification = NULL; ++ return FALSE; ++ } ++ ++ return TRUE; ++} ++ ++gboolean ++gsd_osd_notification_show_value (GsdOsdNotification *notifier, gint value, gboolean muted) ++{ ++ const char *icon; ++ ++ g_return_val_if_fail (GSD_IS_OSD_NOTIFICATION (notifier), FALSE); ++ g_return_val_if_fail (notifier->priv->icon_names != NULL, FALSE); ++ g_return_val_if_fail (notifier->priv->hint != NULL, FALSE); ++ ++ if (!gsd_osd_notification_is_supported ()) ++ return FALSE; ++ ++ if (notifier->priv->notification == NULL) { ++ notifier->priv->notification = notify_notification_new (" ", "", NULL, NULL); ++ notify_notification_set_hint_string (notifier->priv->notification, NOTIFY_CAP_PRIVATE_SYNCHRONOUS, notifier->priv->hint); ++} ++ if (notifier->priv->notification != NULL) { ++ value = MIN (value, 101); ++ value = MAX (value, -1); ++ icon = _calculate_icon (notifier, value, muted); ++ notify_notification_set_hint_int32(notifier->priv->notification, "value", (muted && value > 0) ? 0 : value); ++ notify_notification_update (notifier->priv->notification, " ", "", icon); ++ } else { ++ return FALSE; ++ } ++ ++ if (!notify_notification_show (notifier->priv->notification, NULL)) ++ return FALSE; ++ ++ return TRUE; ++} ++ ++gboolean ++gsd_osd_notification_show_overshoot (GsdOsdNotification *notifier, GsdOsdNotifierOvershootType type) ++{ ++ gint value; ++ gboolean muted; ++ ++ g_return_val_if_fail (type == GSD_OSD_NOTIFICATION_UNDERSHOOT || type == GSD_OSD_NOTIFICATION_OVERSHOOT, FALSE); ++ ++ switch (type) ++ { ++ case GSD_OSD_NOTIFICATION_UNDERSHOOT: ++ value = -1; ++ muted = TRUE; ++ break; ++ case GSD_OSD_NOTIFICATION_OVERSHOOT: ++ value = 101; ++ muted = FALSE; ++ break; ++ default: ++ g_assert_not_reached (); ++ break; ++ } ++ ++ return gsd_osd_notification_show_value (notifier, value, muted); ++} ++ ++GsdOsdNotification* ++gsd_osd_notification_new (const char **icon_names, const char *hint) ++{ ++ return (GsdOsdNotification *) g_object_new (GSD_TYPE_OSD_NOTIFICATION, ++ "icon-names", icon_names, ++ "hint", hint, ++ NULL); ++} ++ ++static void ++gsd_osd_notification_init (GsdOsdNotification *object) ++{ ++ object->priv = GSD_OSD_NOTIFICATION_PRIVATE (object); ++ ++ if (!notify_is_initted ()) ++ notify_init (g_get_application_name ()); ++ ++ object->priv->hint = NULL; ++ object->priv->icon_names = NULL; ++ object->priv->notification = NULL; ++} ++ ++static void ++gsd_osd_notification_finalize (GObject *object) ++{ ++ GsdOsdNotification *notifier = GSD_OSD_NOTIFICATION (object); ++ ++ g_strfreev (notifier->priv->icon_names); ++ g_free (notifier->priv->hint); ++ ++ if (notifier->priv->notification) ++ g_object_unref (notifier->priv->notification); ++ ++ G_OBJECT_CLASS (gsd_osd_notification_parent_class)->finalize (object); ++} ++ ++static void ++gsd_osd_notification_set_property (GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec) ++{ ++ g_return_if_fail (GSD_IS_OSD_NOTIFICATION (object)); ++ GsdOsdNotification *notifier = GSD_OSD_NOTIFICATION (object); ++ ++ switch (prop_id) ++ { ++ case PROP_ICON_NAMES: ++ gsd_osd_notification_set_icon_array (notifier, (const char**) g_value_get_boxed (value)); ++ break; ++ case PROP_HINT: ++ gsd_osd_notification_set_hint (notifier, g_value_get_string (value)); ++ break; ++ default: ++ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); ++ break; ++ } ++} ++ ++static void ++gsd_osd_notification_get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) ++{ ++ g_return_if_fail (GSD_IS_OSD_NOTIFICATION (object)); ++ GsdOsdNotification *notifier = GSD_OSD_NOTIFICATION (object); ++ ++ switch (prop_id) ++ { ++ case PROP_ICON_NAMES: ++ g_value_set_boxed (value, notifier->priv->icon_names); ++ break; ++ case PROP_HINT: ++ g_value_set_string (value, notifier->priv->hint); ++ break; ++ default: ++ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); ++ break; ++ } ++} ++ ++static void ++gsd_osd_notification_class_init (GsdOsdNotificationClass *klass) ++{ ++ GObjectClass* object_class = G_OBJECT_CLASS (klass); ++ ++ object_class->finalize = gsd_osd_notification_finalize; ++ object_class->set_property = gsd_osd_notification_set_property; ++ object_class->get_property = gsd_osd_notification_get_property; ++ ++ g_object_class_install_property (object_class, ++ PROP_ICON_NAMES, ++ g_param_spec_boxed ("icon-names", ++ "Icon name array", ++ "An array of icon names for the notification", ++ G_TYPE_STRV, ++ G_PARAM_WRITABLE | G_PARAM_CONSTRUCT)); ++ ++ g_object_class_install_property (object_class, ++ PROP_HINT, ++ g_param_spec_string ("hint", ++ "Notification hint", ++ "Hint for the notification", ++ NULL, ++ G_PARAM_WRITABLE | G_PARAM_CONSTRUCT)); ++ ++ g_type_class_add_private (klass, sizeof (GsdOsdNotificationPrivate)); ++} +Index: gnome-settings-daemon-2.30.0/plugins/common/gsd-osd-notification.h +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ gnome-settings-daemon-2.30.0/plugins/common/gsd-osd-notification.h 2010-04-23 17:05:08.862133020 +0100 +@@ -0,0 +1,75 @@ ++/* -*- Mode: C; indent-tabs-mode: nil; c-basic-offset: 8; tab-width: 8 -*- */ ++/* ++ * gsd-osd-notification.c ++ * Copyright (C) 2010 Chris Coulson ++ * Copyright (C) 2009 Canonical Ltd ++ * ++ * gsd-osd-notification.c 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 3 of the License, or ++ * (at your option) any later version. ++ * ++ * gsd-osd-notification.c 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, see . ++ */ ++ ++#ifndef _GSD_OSD_NOTIFICATION_H_ ++#define _GSD_OSD_NOTIFICATION_H_ ++ ++#include ++ ++G_BEGIN_DECLS ++ ++#define GSD_TYPE_OSD_NOTIFICATION (gsd_osd_notification_get_type ()) ++#define GSD_OSD_NOTIFICATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GSD_TYPE_OSD_NOTIFICATION, GsdOsdNotification)) ++#define GSD_OSD_NOTIFICATION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GSD_TYPE_OSD_NOTIFICATION, GsdOsdNotificationClass)) ++#define GSD_IS_OSD_NOTIFICATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GSD_TYPE_OSD_NOTIFICATION)) ++#define GSD_IS_OSD_NOTIFICATION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GSD_TYPE_OSD_NOTIFICATION)) ++#define GSD_OSD_NOTIFICATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GSD_TYPE_OSD_NOTIFICATION, GsdOsdNotificationClass)) ++ ++typedef struct _GsdOsdNotificationClass GsdOsdNotificationClass; ++typedef struct _GsdOsdNotification GsdOsdNotification; ++typedef struct _GsdOsdNotificationPrivate GsdOsdNotificationPrivate; ++ ++struct _GsdOsdNotificationClass ++{ ++ GObjectClass parent_class; ++}; ++ ++struct _GsdOsdNotification ++{ ++ GObject parent_instance; ++ ++ GsdOsdNotificationPrivate *priv; ++}; ++ ++typedef enum { ++ GSD_OSD_NOTIFICATION_NO_OVERSHOOT = 0, ++ GSD_OSD_NOTIFICATION_UNDERSHOOT, ++ GSD_OSD_NOTIFICATION_OVERSHOOT, ++} GsdOsdNotifierOvershootType; ++ ++GType gsd_osd_notification_get_type (void) G_GNUC_CONST; ++GsdOsdNotification* gsd_osd_notification_new (const char **icon_names, ++ const char *hint); ++void gsd_osd_notification_set_icon_array (GsdOsdNotification *notifier, ++ const char **icon_names); ++void gsd_osd_notification_set_hint (GsdOsdNotification *notifier, ++ const char *hint); ++gboolean gsd_osd_notification_is_supported (void); ++gboolean gsd_osd_notification_show_value (GsdOsdNotification *notifier, ++ gint value, ++ gboolean muted); ++gboolean gsd_osd_notification_show_overshoot (GsdOsdNotification *notifier, ++ GsdOsdNotifierOvershootType type); ++gboolean gsd_osd_notification_show_icon_only (const char *icon, ++ const char *hint); ++ ++G_END_DECLS ++ ++#endif /* _GSD_OSD_NOTIFICATION_H_ */ +Index: gnome-settings-daemon-2.30.0/plugins/media-keys/gsd-media-keys-manager.c +=================================================================== +--- gnome-settings-daemon-2.30.0.orig/plugins/media-keys/gsd-media-keys-manager.c 2010-03-29 09:15:04.000000000 +0100 ++++ gnome-settings-daemon-2.30.0/plugins/media-keys/gsd-media-keys-manager.c 2010-04-23 17:05:08.862133020 +0100 +@@ -49,6 +49,7 @@ + #include "eggaccelerators.h" + #include "acme.h" + #include "gsd-media-keys-window.h" ++#include "gsd-osd-notification.h" + + #ifdef HAVE_PULSE + #include +@@ -82,6 +83,7 @@ + GtkWidget *dialog; + GConfClient *conf_client; + GVolumeMonitor *volume_monitor; ++ GsdOsdNotification *notifier; + + /* Multihead stuff */ + GdkScreen *current_screen; +@@ -108,6 +110,13 @@ + + static gpointer manager_object = NULL; + ++static const char *volume_icons[] = { ++ "notification-audio-volume-muted", ++ "notification-audio-volume-low", ++ "notification-audio-volume-medium", ++ "notification-audio-volume-high", ++ NULL ++}; + + static void + init_screens (GsdMediaKeysManager *manager) +@@ -612,11 +621,13 @@ + } + + /* Show the dialogue */ +- dialog_init (manager); +- gsd_media_keys_window_set_action_custom (GSD_MEDIA_KEYS_WINDOW (manager->priv->dialog), +- "media-eject", +- FALSE); +- dialog_show (manager); ++ if (!gsd_osd_notification_show_icon_only ("notification-device-eject", "Eject")) { ++ dialog_init (manager); ++ gsd_media_keys_window_set_action_custom (GSD_MEDIA_KEYS_WINDOW (manager->priv->dialog), ++ "media-eject", ++ FALSE); ++ dialog_show (manager); ++ } + + /* Clean up the drive selection and exit if no suitable + * drives are found */ +@@ -641,23 +652,44 @@ + GConfClient *client = manager->priv->conf_client; + gboolean state = gconf_client_get_bool (client, TOUCHPAD_ENABLED_KEY, NULL); + +- dialog_init (manager); +- gsd_media_keys_window_set_action_custom (GSD_MEDIA_KEYS_WINDOW (manager->priv->dialog), +- (!state) ? "touchpad-enabled" : "touchpad-disabled", +- FALSE); +- dialog_show (manager); ++ if (!gsd_osd_notification_show_icon_only ((!state) ? "touchpad-enabled" : "touchpad-disabled", "Touchpad")) { ++ dialog_init (manager); ++ gsd_media_keys_window_set_action_custom (GSD_MEDIA_KEYS_WINDOW (manager->priv->dialog), ++ (!state) ? "touchpad-enabled" : "touchpad-disabled", ++ FALSE); ++ dialog_show (manager); ++ } + + gconf_client_set_bool (client, TOUCHPAD_ENABLED_KEY, !state, NULL); + } + + #ifdef HAVE_PULSE ++play_volume_event_sound (GtkWidget *widget) ++{ ++ ca_gtk_play_for_widget (widget, 0, ++ CA_PROP_EVENT_ID, "audio-volume-change", ++ CA_PROP_EVENT_DESCRIPTION, "volume changed hrough key press", ++ CA_PROP_APPLICATION_ID, "org.gnome.VolumeControl", ++ NULL); ++} ++ + static void + update_dialog (GsdMediaKeysManager *manager, + guint vol, + gboolean muted, +- gboolean sound_changed) ++ gboolean sound_changed, ++ GsdOsdNotifierOvershootType overshoot) + { ++ GtkWidget *window; ++ + vol = (int) (100 * (double) vol / PA_VOLUME_NORM); ++ if (overshoot != GSD_OSD_NOTIFICATION_NO_OVERSHOOT) { ++ if (gsd_osd_notification_show_overshoot (manager->priv->notifier, overshoot)) ++ goto done; ++ } else { ++ if (gsd_osd_notification_show_value (manager->priv->notifier, vol, muted)) ++ goto done; ++ } + vol = CLAMP (vol, 0, 100); + + dialog_init (manager); +@@ -668,12 +700,18 @@ + GSD_MEDIA_KEYS_WINDOW_ACTION_VOLUME); + dialog_show (manager); + +- if (sound_changed != FALSE && muted == FALSE) +- ca_gtk_play_for_widget (manager->priv->dialog, 0, +- CA_PROP_EVENT_ID, "audio-volume-change", +- CA_PROP_EVENT_DESCRIPTION, "volume changed through key press", +- CA_PROP_APPLICATION_ID, "org.gnome.VolumeControl", +- NULL); ++done: ++ if (sound_changed != FALSE && muted == FALSE) { ++ if (manager->priv->dialog == NULL) { ++ window = gtk_window_new (GTK_WINDOW_TOPLEVEL); ++ gtk_window_set_screen (GTK_WINDOW (window), manager->priv->current_screen); ++ gtk_widget_realize (window); ++ play_volume_event_sound (window); ++ gtk_widget_destroy (window); ++ } else { ++ play_volume_event_sound (manager->priv->dialog); ++ } ++ } + } + + static void +@@ -683,6 +721,7 @@ + gboolean muted; + guint vol, norm_vol_step; + int vol_step; ++ GsdOsdNotifierOvershootType overshoot = GSD_OSD_NOTIFICATION_NO_OVERSHOOT; + gboolean sound_changed; + + if (manager->priv->stream == NULL) +@@ -722,7 +761,10 @@ + if (gvc_mixer_stream_set_volume (manager->priv->stream, vol) != FALSE) { + gvc_mixer_stream_push_volume (manager->priv->stream); + sound_changed = TRUE; ++ gvc_mixer_stream_push_volume (manager->priv->stream); + } ++ } else { ++ overshoot = GSD_OSD_NOTIFICATION_UNDERSHOOT; + } + break; + case VOLUME_UP_KEY: +@@ -750,12 +792,14 @@ + gvc_mixer_stream_push_volume (manager->priv->stream); + sound_changed = TRUE; + } ++ } else { ++ overshoot = GSD_OSD_NOTIFICATION_OVERSHOOT; + } + } + break; + } + +- update_dialog (manager, vol, muted, sound_changed); ++ update_dialog (manager, vol, muted, sound_changed, overshoot); + } + + static void +@@ -900,8 +944,11 @@ + + static gboolean + do_multimedia_player_action (GsdMediaKeysManager *manager, ++ const char *icon, + const char *key) + { ++ if (icon != NULL) ++ gsd_osd_notification_show_icon_only (icon, key); + return gsd_media_player_key_pressed (manager, key); + } + +@@ -972,19 +1019,19 @@ + execute (manager, "gcalctool", FALSE, FALSE); + break; + case PLAY_KEY: +- return do_multimedia_player_action (manager, "Play"); ++ return do_multimedia_player_action (manager, NULL, "Play"); + break; + case PAUSE_KEY: +- return do_multimedia_player_action (manager, "Pause"); ++ return do_multimedia_player_action (manager, NULL, "Pause"); + break; + case STOP_KEY: +- return do_multimedia_player_action (manager, "Stop"); ++ return do_multimedia_player_action (manager, NULL, "Stop"); + break; + case PREVIOUS_KEY: +- return do_multimedia_player_action (manager, "Previous"); ++ return do_multimedia_player_action (manager, NULL, "Previous"); + break; + case NEXT_KEY: +- return do_multimedia_player_action (manager, "Next"); ++ return do_multimedia_player_action (manager, NULL, "Next"); + break; + default: + g_assert_not_reached (); +@@ -1121,6 +1168,8 @@ + + gvc_mixer_control_open (manager->priv->volume); + ++ manager->priv->notifier = gsd_osd_notification_new (volume_icons, "volume"); ++ + gnome_settings_profile_end ("gvc_mixer_control_new"); + #endif /* HAVE_PULSE */ + g_idle_add ((GSourceFunc) start_media_keys_idle_cb, manager); +@@ -1218,6 +1267,9 @@ + } + g_list_free (priv->media_players); + priv->media_players = NULL; ++ ++ if (manager->priv->notifier != NULL) ++ g_object_unref (manager->priv->notifier); + } + + static void +Index: gnome-settings-daemon-2.30.0/plugins/common/Makefile.am +=================================================================== +--- gnome-settings-daemon-2.30.0.orig/plugins/common/Makefile.am 2010-03-10 11:59:38.000000000 +0000 ++++ gnome-settings-daemon-2.30.0/plugins/common/Makefile.am 2010-04-23 17:10:43.209632216 +0100 +@@ -7,17 +7,21 @@ + gsd-keygrab.c \ + gsd-keygrab.h \ + gsd-osd-window.c \ +- gsd-osd-window.h ++ gsd-osd-window.h \ ++ gsd-osd-notification.c \ ++ gsd-osd-notification.h + + libcommon_la_CPPFLAGS = \ + $(AM_CPPFLAGS) + + libcommon_la_CFLAGS = \ + $(SETTINGS_PLUGIN_CFLAGS) \ ++ $(LIBNOTIFY_CFLAGS) \ + $(AM_CFLAGS) + + libcommon_la_LDFLAGS = \ + $(GSD_PLUGIN_LDFLAGS) $(X11_LIBS) + + libcommon_la_LIBADD = \ +- $(SETTINGS_PLUGIN_LIBS) ++ $(SETTINGS_PLUGIN_LIBS) \ ++ $(LIBNOTIFY_LIBS) --- gnome-settings-daemon-2.30.2.orig/debian/patches/07_dont_display_autostart.patch +++ gnome-settings-daemon-2.30.2/debian/patches/07_dont_display_autostart.patch @@ -0,0 +1,14 @@ +Description: Don't show the gnome-settings-daemon autostart in the session capplet, the description is confusing and it's a required component +Bug: https://launchpad.net/bugs/146918 + +diff -Nur gnome-settings-daemon-2.29.92/data/gnome-settings-daemon.desktop.in.in gnome-settings-daemon-2.29.92.ubuntu/data/gnome-settings-daemon.desktop.in.in +--- gnome-settings-daemon-2.29.92/data/gnome-settings-daemon.desktop.in.in 2009-05-03 20:15:30.000000000 +0200 ++++ gnome-settings-daemon-2.29.92.ubuntu/data/gnome-settings-daemon.desktop.in.in 2010-03-10 00:28:52.000000000 +0100 +@@ -3,6 +3,7 @@ + _Name=GNOME Settings Daemon + Exec=@LIBEXECDIR@/gnome-settings-daemon + OnlyShowIn=GNOME; ++NoDisplay=true + X-GNOME-Autostart-Phase=Initialization + X-GNOME-Autostart-Notify=true + X-GNOME-AutoRestart=true --- gnome-settings-daemon-2.30.2.orig/debian/patches/99_ltmain_as-needed.patch +++ gnome-settings-daemon-2.30.2/debian/patches/99_ltmain_as-needed.patch @@ -0,0 +1,32 @@ +Index: gnome-settings-daemon-2.26.0/ltmain.sh +=================================================================== +--- gnome-settings-daemon-2.26.0.orig/ltmain.sh 2009-04-11 14:20:24.674052484 +0200 ++++ gnome-settings-daemon-2.26.0/ltmain.sh 2009-04-11 14:20:26.794050975 +0200 +@@ -4716,6 +4716,11 @@ func_mode_link () + arg=$func_stripname_result + ;; + ++ -Wl,--as-needed) ++ deplibs="$deplibs $arg" ++ continue ++ ;; ++ + -Wl,*) + func_stripname '-Wl,' '' "$arg" + args=$func_stripname_result +@@ -5070,6 +5075,15 @@ func_mode_link () + lib= + found=no + case $deplib in ++ -Wl,--as-needed) ++ if test "$linkmode,$pass" = "prog,link"; then ++ compile_deplibs="$deplib $compile_deplibs" ++ finalize_deplibs="$deplib $finalize_deplibs" ++ else ++ deplibs="$deplib $deplibs" ++ fi ++ continue ++ ;; + -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads) + if test "$linkmode,$pass" = "prog,link"; then + compile_deplibs="$deplib $compile_deplibs" --- gnome-settings-daemon-2.30.2.orig/debian/patches/02_fix_randr.patch +++ gnome-settings-daemon-2.30.2/debian/patches/02_fix_randr.patch @@ -0,0 +1,24 @@ +Description: Fix application of ~/.config/monitors.xml +Bug: http://bugzilla.gnome.org/show_bug.cgi?id=572876 +Bug-Ubuntu: https://launchpad.net/bugs/329410 + +Index: gnome-settings-daemon-2.30.1/plugins/xrandr/gsd-xrandr-manager.c +=================================================================== +--- gnome-settings-daemon-2.30.1.orig/plugins/xrandr/gsd-xrandr-manager.c 2010-04-26 22:18:50.000000000 +1000 ++++ gnome-settings-daemon-2.30.1/plugins/xrandr/gsd-xrandr-manager.c 2010-06-10 12:53:28.456494521 +1000 +@@ -2013,7 +2013,6 @@ + */ + + unlink (backup_filename); +- goto out; + } + + /* 2. There was no backup configuration! This means we are +@@ -2021,6 +2020,7 @@ + */ + + apply_intended_configuration (manager, intended_filename, timestamp); ++ goto out; + + out: + --- gnome-settings-daemon-2.30.2.orig/debian/patches/05_disable_corner_tapping.patch +++ gnome-settings-daemon-2.30.2/debian/patches/05_disable_corner_tapping.patch @@ -0,0 +1,18 @@ +Description: Disable corner tapping when disabling tap to click +Bug: https://bugzilla.gnome.org/show_bug.cgi?id=607474 +Bug-Ubuntu: https://bugs.launchpad.net/bugs/509724 + +Index: gnome-settings-daemon-2.30.1/plugins/mouse/gsd-mouse-manager.c +=================================================================== +--- gnome-settings-daemon-2.30.1.orig/plugins/mouse/gsd-mouse-manager.c 2010-03-10 22:59:38.000000000 +1100 ++++ gnome-settings-daemon-2.30.1/plugins/mouse/gsd-mouse-manager.c 2010-06-10 12:53:34.823995974 +1000 +@@ -614,6 +614,9 @@ + + if (rc == Success && type == XA_INTEGER && format == 8 && nitems >= 7) + { ++ /* Set MR mapping for corner tapping on the right side*/ ++ data[0] = (state) ? 2 : 0; ++ data[1] = (state) ? 3 : 0; + /* Set RLM mapping for 1/2/3 fingers*/ + data[4] = (state) ? ((left_handed) ? 3 : 1) : 0; + data[5] = (state) ? ((left_handed) ? 1 : 3) : 0; --- gnome-settings-daemon-2.30.2.orig/debian/patches/01_xrdb.patch +++ gnome-settings-daemon-2.30.2/debian/patches/01_xrdb.patch @@ -0,0 +1,15 @@ +Change the directory for xrdb data. + +Index: gnome-settings-daemon-2.26.0/plugins/xrdb/gsd-xrdb-manager.c +=================================================================== +--- gnome-settings-daemon-2.26.0.orig/plugins/xrdb/gsd-xrdb-manager.c 2009-01-05 17:26:26.000000000 +0100 ++++ gnome-settings-daemon-2.26.0/plugins/xrdb/gsd-xrdb-manager.c 2009-04-11 13:36:54.898047572 +0200 +@@ -42,7 +42,7 @@ + + #define GSD_XRDB_MANAGER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), GSD_TYPE_XRDB_MANAGER, GsdXrdbManagerPrivate)) + +-#define SYSTEM_AD_DIR DATADIR "/xrdb" ++#define SYSTEM_AD_DIR "/etc/gnome/config" + #define GENERAL_AD SYSTEM_AD_DIR "/General.ad" + #define USER_AD_DIR ".gnome2/xrdb" + #define USER_X_RESOURCES ".Xresources" --- gnome-settings-daemon-2.30.2.orig/debian/patches/71_fix_ldsm_notification_crash.patch +++ gnome-settings-daemon-2.30.2/debian/patches/71_fix_ldsm_notification_crash.patch @@ -0,0 +1,42 @@ +Description: Don't access free'd memory if a volume is unmounted whilst the dialog is displayed +Author: ? + +diff -Nur -x '*.orig' -x '*~' gnome-settings-daemon-2.28.1/plugins/housekeeping/gsd-disk-space.c gnome-settings-daemon-2.28.1.new/plugins/housekeeping/gsd-disk-space.c +--- gnome-settings-daemon-2.28.1/plugins/housekeeping/gsd-disk-space.c 2009-08-12 10:15:00.000000000 +0100 ++++ gnome-settings-daemon-2.28.1.new/plugins/housekeeping/gsd-disk-space.c 2009-11-04 00:09:42.505236169 +0000 +@@ -181,7 +181,7 @@ + gint response; + gboolean has_trash; + gboolean retval = TRUE; +- const gchar *path; ++ gchar *path; + + /* Don't show a dialog if one is already displayed */ + if (dialog) +@@ -190,7 +190,7 @@ + name = g_unix_mount_guess_name (mount->mount); + free_space = (gint64) mount->buf.f_frsize * (gint64) mount->buf.f_bavail; + has_trash = ldsm_mount_has_trash (mount); +- path = g_unix_mount_get_mount_path (mount->mount); ++ path = g_strdup (g_unix_mount_get_mount_path (mount->mount)); + + dialog = gsd_ldsm_dialog_new (other_usable_volumes, + multiple_volumes, +@@ -214,7 +214,7 @@ + break; + case GSD_LDSM_DIALOG_RESPONSE_ANALYZE: + retval = FALSE; +- ldsm_analyze_path (g_unix_mount_get_mount_path (mount->mount)); ++ ldsm_analyze_path (path); + break; + case GSD_LDSM_DIALOG_RESPONSE_EMPTY_TRASH: + retval = TRUE; +@@ -228,6 +228,8 @@ + g_assert_not_reached (); + } + ++ g_free (path); ++ + return retval; + } + --- gnome-settings-daemon-2.30.2.orig/debian/patches/91_bugzilla_update_touchpad_icons.patch +++ gnome-settings-daemon-2.30.2/debian/patches/91_bugzilla_update_touchpad_icons.patch @@ -0,0 +1,2407 @@ +Description: Use correct touchpad svg icons +Bug: https://bugzilla.gnome.org/show_bug.cgi?id=611348 +Bug-Ubuntu: https://bugs.launchpad.net/gnome-settings-daemon/+bug/539025 + +diff -Nur gnome-settings-daemon-2.30.0/plugins/media-keys/touchpad-disabled.svg gnome-settings-daemon-2.30.0.ubuntu/plugins/media-keys/touchpad-disabled.svg +--- gnome-settings-daemon-2.30.0/plugins/media-keys/touchpad-disabled.svg 2010-03-10 12:58:29.000000000 +0100 ++++ gnome-settings-daemon-2.30.0.ubuntu/plugins/media-keys/touchpad-disabled.svg 2010-03-31 11:57:34.000000000 +0200 +@@ -1,37 +1,12 @@ + + +- +- +- Touchpad +- ++ ++ Touchpad ++ + +- ++ + image/svg+xml +- ++ + Touchpad + + +@@ -40,1133 +15,166 @@ + + + +- ++ + + +- +- ++ ++ + +- ++ + + + + +- +- +- +- +- +- +- ++ ++ ++ ++ ++ ++ ++ + +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ + +- +- ++ +\ Pas de fin de ligne à la fin du fichier. +diff -Nur gnome-settings-daemon-2.30.0/plugins/media-keys/touchpad-enabled.svg gnome-settings-daemon-2.30.0.ubuntu/plugins/media-keys/touchpad-enabled.svg +--- gnome-settings-daemon-2.30.0/plugins/media-keys/touchpad-enabled.svg 2010-03-10 12:58:29.000000000 +0100 ++++ gnome-settings-daemon-2.30.0.ubuntu/plugins/media-keys/touchpad-enabled.svg 2010-03-31 11:57:34.000000000 +0200 +@@ -1,37 +1,12 @@ + + +- +- +- Touchpad +- ++ ++ Touchpad ++ + +- ++ + image/svg+xml +- ++ + Touchpad + + +@@ -40,897 +15,149 @@ + + + +- ++ + + +- +- ++ ++ + +- ++ + + + + +- +- ++ ++ + +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ + +- +- ++ +\ Pas de fin de ligne à la fin du fichier.