Hello community, here is the log from the commit of package gnome-control-center for openSUSE:Factory checked in at Mon Feb 21 17:00:36 CET 2011. -------- --- GNOME/gnome-control-center/gnome-control-center.changes 2011-02-13 17:22:34.000000000 +0100 +++ /mounts/work_src_done/STABLE/gnome-control-center/gnome-control-center.changes 2011-02-21 15:33:50.000000000 +0100 @@ -1,0 +2,9 @@ +Mon Feb 21 13:53:37 CET 2011 - vuntz@opensuse.org + +- Add gnome-control-center-symlinked-background.patch: if the + configured background is not known by the backgrourd capplet, but + it's a symlink to another background which is known, then we only + want to display this background once. This is useful in openSUSE, + since the default configured background is such a symlink. + +------------------------------------------------------------------- calling whatdependson for head-i586 New: ---- gnome-control-center-symlinked-background.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ gnome-control-center.spec ++++++ --- /var/tmp/diff_new_pack.siuWOa/_old 2011-02-21 16:59:00.000000000 +0100 +++ /var/tmp/diff_new_pack.siuWOa/_new 2011-02-21 16:59:00.000000000 +0100 @@ -52,7 +52,7 @@ Obsoletes: fontilus themus acme Provides: fontilus themus acme Version: 2.32.1 -Release: 3 +Release: 9 Summary: The GNOME Control Center Source: %{name}-%{version}.tar.bz2 # PATCH-FEATURE-OPENSUSE gnome-control-center-shell-common-tasks-i18n.patch vuntz@opensuse.org -- Translate favorite capplets in the code. This is needed for our gconf2-branding to really work for this setting, so keep in sync with gconf2-branding. @@ -61,6 +61,8 @@ Patch1: gnome-control-center-bnc427745-force-dpi.patch # PATCH-FIX-UPSTREAM gnome-control-center-mime-scheme-handler.patch vuntz@opensuse.org -- Use x-scheme-handler/* mime types to set default web browser and mailer. Cherry-picked to gonme-2-32 branch from master/3.0 branch Patch2: gnome-control-center-mime-scheme-handler.patch +# PATCH-FIX-OPENSUSE gnome-control-center-symlinked-background.patch vuntz@opensuse.org -- Do not show twice the configured background, if it is a symlink to a known background. This only applies to 2.32.x, and is not needed on 3.0, so there's no need to send it upstream +Patch3: gnome-control-center-symlinked-background.patch # PATCH-NEEDS-REBASE gnome-control-center-system-proxy-configuration.patch -- this needs to be reimplemented to be more distro-generic before submitting upstream - docs at http://en.opensuse.org/GNOME/Proxy_configuration (was PATCH-FEATURE-OPENSUSE) Patch14: gnome-control-center-system-proxy-configuration.patch # PATCH-FEATURE-OPENSUSE gnome-control-center-use-settings-menu.patch @@ -119,6 +121,7 @@ %patch0 -p1 %patch1 -p1 %patch2 -p1 +%patch3 -p1 #NEEDS-REBASE #%patch14 -p1 %patch28 ++++++ gnome-control-center-symlinked-background.patch ++++++ Index: gnome-control-center-2.32.1/capplets/appearance/appearance-desktop.c =================================================================== --- gnome-control-center-2.32.1.orig/capplets/appearance/appearance-desktop.c +++ gnome-control-center-2.32.1/capplets/appearance/appearance-desktop.c @@ -48,6 +48,50 @@ static const GtkTargetEntry drag_types[] static void wp_update_preview (GtkFileChooser *chooser, AppearanceData *data); +static GnomeWPItem * +lookup_with_symlink (AppearanceData *data, + const char *path, + char **real_path) +{ + GnomeWPItem *item; + gchar *readlink; + + if (real_path) + *real_path = NULL; + + if (!path) + return NULL; + + item = g_hash_table_lookup (data->wp_hash, path); + if (item) + return item; + + /* if the current background is not in the hash of known backgrounds, + * see if it's a symlink and if the file it points to is in the hash */ + + readlink = g_strdup (path); + + while (readlink && + g_file_test (readlink, G_FILE_TEST_IS_SYMLINK) && + item == NULL) { + gchar *new; + + new = g_file_read_link (readlink, NULL); + g_free (readlink); + readlink = new; + + if (readlink) + item = g_hash_table_lookup (data->wp_hash, readlink); + } + + if (item != NULL && real_path) + *real_path = readlink; + else + g_free (readlink); + + return item; +} + static void select_item (AppearanceData *data, GnomeWPItem * item, @@ -418,11 +462,16 @@ wp_uri_changed (const gchar *uri, AppearanceData *data) { GnomeWPItem *item, *selected; + gchar *realuri; + + realuri = NULL; + item = lookup_with_symlink (data, uri, &realuri); + if (!realuri) + realuri = g_strdup (uri); - item = g_hash_table_lookup (data->wp_hash, uri); selected = get_selected_item (data, NULL); - if (selected != NULL && strcmp (selected->filename, uri) != 0) + if (selected != NULL && strcmp (selected->filename, realuri) != 0) { if (item == NULL) item = wp_add_image (data, uri); @@ -430,6 +479,8 @@ wp_uri_changed (const gchar *uri, if (item) select_item (data, item, TRUE); } + + g_free (realuri); } static void @@ -936,6 +987,7 @@ wp_load_stuffs (void *user_data) AppearanceData *data; gchar *imagepath, *uri, *style; GnomeWPItem *item; + gchar *realpath; data = (AppearanceData *) user_data; @@ -971,7 +1023,12 @@ wp_load_stuffs (void *user_data) g_free (uri); - item = g_hash_table_lookup (data->wp_hash, imagepath); + realpath = NULL; + item = lookup_with_symlink (data, imagepath, &realpath); + if (realpath) { + g_free (imagepath); + imagepath = realpath; + } if (item != NULL) { @@ -986,7 +1043,9 @@ wp_load_stuffs (void *user_data) wp_props_load_wallpaper (item->filename, item, data); } + data->wp_update_gconf = FALSE; select_item (data, item, FALSE); + data->wp_update_gconf = TRUE; } } else if (strcmp (style, "none") != 0) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Remember to have fun... -- To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-commit+help@opensuse.org