Hello community, here is the log from the commit of package gnome-panel for openSUSE:Factory checked in at Tue Sep 7 01:28:14 CEST 2010. -------- --- GNOME/gnome-panel/gnome-panel.changes 2010-08-19 15:13:01.000000000 +0200 +++ gnome-panel/gnome-panel.changes 2010-09-07 00:10:57.000000000 +0200 @@ -1,0 +2,27 @@ +Mon Sep 6 19:26:51 CEST 2010 - vuntz@opensuse.org + +- Add gnome-panel-fix-hidden-panel-and-applets.patch to fix several + issues, with fixes I just pushed to git: + + panel is hidden on first boot (bnc#637180) + + newly created panels are hidden + + main menu not on default panel (bnc#637130, bnc#637229) +- Remove 2.x references in summaries and descriptions: the panel + will still be an option in GNOME 3. + +------------------------------------------------------------------- +Thu Sep 2 10:28:05 CEST 2010 - vuntz@opensuse.org + +- Update to version 2.31.91: + + Fix build with missing dbus-glib-1 dependency. + + Notification Area Applet: + - Fix bugs related to GSEALing effort. + + Updated translations. +- Remove hack to fix the build by setting CFLAGS. + +------------------------------------------------------------------- +Wed Sep 1 15:19:28 CEST 2010 - vuntz@opensuse.org + +- Fix workaround that fixes the build by adding the dbus-glib-1 + flags: we also need the path to headers. + +------------------------------------------------------------------- calling whatdependson for head-i586 Old: ---- gnome-panel-2.31.90.tar.bz2 New: ---- gnome-panel-2.31.91.tar.bz2 gnome-panel-fix-hidden-panel-and-applets.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ gnome-panel.spec ++++++ --- /var/tmp/diff_new_pack.ACfJED/_old 2010-09-07 01:26:13.000000000 +0200 +++ /var/tmp/diff_new_pack.ACfJED/_new 2010-09-07 01:26:13.000000000 +0200 @@ -1,5 +1,5 @@ # -# spec file for package gnome-panel (Version 2.31.90) +# spec file for package gnome-panel (Version 2.31.91) # # Copyright (c) 2010 SUSE LINUX Products GmbH, Nuernberg, Germany. # @@ -18,15 +18,16 @@ Name: gnome-panel -Version: 2.31.90 +Version: 2.31.91 Release: 1 -# FIXME: remove workaround in %build that sets CFLAGS (instead of SUSE_ASNEEDED=1) once fixed (was introduced in 2.31.6) License: GPLv2+ -Summary: The GNOME 2.x Desktop Panel +Summary: The GNOME Desktop Panel Url: http://www.gnome.org Group: System/GUI/GNOME Source: ftp://ftp.gnome.org/pub/gnome/sources/gnome-panel/2.24/%{name}-%{version}.tar.bz2 Source99: baselibs.conf +# PATCH-FIX-UPSTREAM gnome-panel-fix-hidden-panel-and-applets.patch vuntz@opensuse.org -- Fixes from git to not have initially hidden panel and applets +Patch0: gnome-panel-fix-hidden-panel-and-applets.patch # PATCH-FIX-UPSTREAM gnome-panel-recent-check-exists.patch -- Show an error when clicking on a recent item that doesn't exist anymore Patch25: gnome-panel-recent-check-exists.patch # PATCH-FIX-UPSTREAM gnome-panel-beagle-search.patch bgo336726 -- Use nautilus search instead of gnome-search-tool @@ -84,7 +85,7 @@ %gconf_schemas_prereq %description -This package contains the GNOME 2.x Desktop Panel. The panel is an +This package contains the GNOME Desktop Panel. The panel is an easy-to-use and functional interface to manage your desktop, start programs, and organize access to your data. @@ -99,7 +100,7 @@ %glib2_gio_module_requires %description bonobo-support -This package contains the GNOME 2.x Desktop Panel. The panel is an +This package contains the GNOME Desktop Panel. The panel is an easy-to-use and functional interface to manage your desktop, start programs, and organize access to your data. @@ -112,7 +113,7 @@ Group: System/GUI/GNOME %description -n libpanel-applet-2-0 -This package contains the GNOME 2.x Desktop Panel. The panel is an +This package contains the GNOME Desktop Panel. The panel is an easy-to-use and functional interface to manage your desktop, start programs, and organize access to your data. @@ -125,7 +126,7 @@ Group: System/GUI/GNOME %description -n libpanel-applet-3-0 -This package contains the GNOME 2.x Desktop Panel. The panel is an +This package contains the GNOME Desktop Panel. The panel is an easy-to-use and functional interface to manage your desktop, start programs, and organize access to your data. @@ -144,7 +145,7 @@ %gconf_schemas_prereq %description extras -This package contains the GNOME 2.x Desktop Panel. The panel is an +This package contains the GNOME Desktop Panel. The panel is an easy-to-use and functional interface to manage your desktop, start programs, and organize access to your data. @@ -165,7 +166,7 @@ Obsoletes: gnome-panel-nld-devel <= 2.12.3 %description devel -This package contains the GNOME 2.x Desktop Panel. The panel is an +This package contains the GNOME Desktop Panel. The panel is an easy-to-use and functional interface to manage your desktop, start programs, and organize access to your data. @@ -182,7 +183,7 @@ Obsoletes: gnome-panel-nld-doc <= 2.12.3 %description doc -This package contains the GNOME 2.x Desktop Panel. The panel is an +This package contains the GNOME Desktop Panel. The panel is an easy-to-use and functional interface to manage your desktop, start programs, and organize access to your data. @@ -194,6 +195,7 @@ %setup -q translation-update-upstream gnome-patch-translation-prepare +%patch0 -p1 %patch25 -p0 %patch34 %patch35 -p0 @@ -206,9 +208,6 @@ gnome-patch-translation-update %build -#export SUSE_ASNEEDED=1 -# This is a workaround due to dbus port not completed yet. -export CFLAGS="%{optflags} -ldbus-glib-1" %configure --with-pic \ --libexecdir=%{_libexecdir}/gnome-panel \ --disable-static \ ++++++ gnome-panel-2.31.90.tar.bz2 -> gnome-panel-2.31.91.tar.bz2 ++++++ ++++ 27102 lines of diff (skipped) ++++++ gnome-panel-fix-hidden-panel-and-applets.patch ++++++ diff --git a/bonobo/panel-module/panel-applets-manager-bonobo.c b/bonobo/panel-module/panel-applets-manager-bonobo.c index c101fbe..f8ab020 100644 --- a/bonobo/panel-module/panel-applets-manager-bonobo.c +++ b/bonobo/panel-module/panel-applets-manager-bonobo.c @@ -164,7 +164,9 @@ static PanelAppletInfo * panel_applets_manager_bonobo_get_applet_info_from_old_id (PanelAppletsManager *manager, const gchar *iid) { - return NULL; + PanelAppletsManagerBonobo *bonobo_manager = PANEL_APPLETS_MANAGER_BONOBO (manager); + + return g_hash_table_lookup (bonobo_manager->priv->applets, iid); } static gboolean diff --git a/gnome-panel/applet.c b/gnome-panel/applet.c index 26b6490..0bc522e 100644 --- a/gnome-panel/applet.c +++ b/gnome-panel/applet.c @@ -841,6 +841,11 @@ panel_applet_on_load_queue (const char *id) if (strcmp (applet->id, id) == 0) return TRUE; } + for (li = panel_applets_loading; li != NULL; li = li->next) { + PanelAppletToLoad *applet = li->data; + if (strcmp (applet->id, id) == 0) + return TRUE; + } return FALSE; } @@ -908,7 +913,7 @@ panel_applet_load_idle_handler (gpointer dummy) } if (!l) { - /* All the rest of the applets don't have a panel */ + /* All the remaining applets don't have a panel */ for (l = panel_applets_to_load; l; l = l->next) free_applet_to_load (l->data); g_slist_free (panel_applets_to_load); @@ -1063,7 +1068,7 @@ panel_applet_load_queued_applets (gboolean initial_load) return; } - if (initial_load && panel_applets_to_load) { + if (panel_applets_to_load && panel_applet_unhide_toplevels_timeout == 0) { /* Install a timeout to make sure we don't block the * unhiding because of an applet that doesn't load */ panel_applet_unhide_toplevels_timeout = diff --git a/gnome-panel/panel-action-button.c b/gnome-panel/panel-action-button.c index 07f4027..c6434d1 100644 --- a/gnome-panel/panel-action-button.c +++ b/gnome-panel/panel-action-button.c @@ -792,8 +792,8 @@ panel_action_button_load_from_gconf (PanelWidget *panel, /* compatibility: migrate from GNOME < 2.13.90 */ if (type == PANEL_ACTION_SCREENSHOT) - panel_compatiblity_migrate_screenshot_action (panel_gconf_get_client (), - id); + panel_compatibility_migrate_screenshot_action (panel_gconf_get_client (), + id); else panel_action_button_load (type, panel, locked, position, exactpos, id, FALSE); diff --git a/gnome-panel/panel-applet-frame.c b/gnome-panel/panel-applet-frame.c index 5452eb8..a411bf0 100644 --- a/gnome-panel/panel-applet-frame.c +++ b/gnome-panel/panel-applet-frame.c @@ -936,11 +936,15 @@ panel_applet_frame_load (const gchar *iid, g_return_if_fail (id != NULL); if (g_slist_find_custom (no_reload_applets, id, - (GCompareFunc) strcmp)) + (GCompareFunc) strcmp)) { + panel_applet_stop_loading (id); return; + } - if (panel_lockdown_is_applet_disabled (iid)) + if (panel_lockdown_is_applet_disabled (iid)) { + panel_applet_stop_loading (id); return; + } frame_act = g_slice_new0 (PanelAppletFrameActivating); frame_act->locked = locked; @@ -966,9 +970,11 @@ panel_applet_frame_load_from_gconf (PanelWidget *panel_widget, g_return_if_fail (panel_widget != NULL); g_return_if_fail (id != NULL); - applet_iid = panel_compatiblity_get_applet_iid (id); - if (!applet_iid) + applet_iid = panel_compatibility_get_applet_iid (id); + if (!applet_iid) { + panel_applet_stop_loading (id); return; + } panel_applet_frame_load (applet_iid, panel_widget, locked, position, TRUE, id); diff --git a/gnome-panel/panel-compatibility.c b/gnome-panel/panel-compatibility.c index 5071ffd..128143d 100644 --- a/gnome-panel/panel-compatibility.c +++ b/gnome-panel/panel-compatibility.c @@ -1081,7 +1081,7 @@ panel_compatibility_migrate_applications_scheme (GConfClient *client, } void -panel_compatiblity_migrate_screenshot_action (GConfClient *client, +panel_compatibility_migrate_screenshot_action (GConfClient *client, const char *id) { const char *key; @@ -1102,31 +1102,66 @@ panel_compatiblity_migrate_screenshot_action (GConfClient *client, } gchar * -panel_compatiblity_get_applet_iid (const gchar *id) +panel_compatibility_get_applet_iid (const gchar *id) { GConfClient *client = panel_gconf_get_client (); PanelAppletInfo *info; const char *key; - const char *iid; gchar *applet_iid; + gboolean needs_migration; + const char *iid; + + /* + * There are two compatibility steps here: + * + * 1) we need to migrate from bonobo_iid to applet_iid if there's no + * value in the applet_iid key. Always. + * + * 2) we need to try to migrate the iid to a new iid. We can't assume + * that the fact that the applet_iid key was used mean anything + * since the value there could well be a bonobo iid. + * The reason we really have to try to migrate first is this case: + * if an applet was added with the bonobo iid but gets ported later + * to dbus, then the reference to the bonobo iid will only be valid + * as an old reference. + * And if migration fails, we just use the iid as it is. + */ + + needs_migration = FALSE; key = panel_gconf_full_key (PANEL_GCONF_APPLETS, id, "applet_iid"); applet_iid = gconf_client_get_string (client, key, NULL); - if (applet_iid && applet_iid[0]) - return applet_iid; - key = panel_gconf_full_key (PANEL_GCONF_APPLETS, id, "bonobo_iid"); - applet_iid = gconf_client_get_string (client, key, NULL); - if (!applet_iid || !applet_iid[0]) - return NULL; + if (!applet_iid || !applet_iid[0]) { + needs_migration = TRUE; + + key = panel_gconf_full_key (PANEL_GCONF_APPLETS, id, "bonobo_iid"); + applet_iid = gconf_client_get_string (client, key, NULL); + + if (!applet_iid || !applet_iid[0]) + return NULL; + } info = panel_applets_manager_get_applet_info_from_old_id (applet_iid); if (!info) + info = panel_applets_manager_get_applet_info (applet_iid); + + if (!info) return NULL; iid = panel_applet_info_get_iid (info); - key = panel_gconf_full_key (PANEL_GCONF_APPLETS, id, "applet_iid"); - gconf_client_set_string (client, key, iid, NULL); + + /* migrate if the iid in the configuration is different than the real + * iid that will get used */ + if (!g_str_equal (iid, applet_iid)) + needs_migration = TRUE; + + g_free (applet_iid); + + if (needs_migration) { + key = panel_gconf_full_key (PANEL_GCONF_APPLETS, id, "applet_iid"); + gconf_client_set_string (client, key, iid, NULL); + } return g_strdup (iid); } diff --git a/gnome-panel/panel-compatibility.h b/gnome-panel/panel-compatibility.h index f4fcc07..c338a58 100644 --- a/gnome-panel/panel-compatibility.h +++ b/gnome-panel/panel-compatibility.h @@ -34,10 +34,10 @@ void panel_compatibility_migrate_panel_id_list (GConfClient *client); void panel_compatibility_maybe_copy_old_config (GConfClient *client); void panel_compatibility_migrate_applications_scheme (GConfClient *client, const char *key); -void panel_compatiblity_migrate_screenshot_action (GConfClient *client, +void panel_compatibility_migrate_screenshot_action (GConfClient *client, const char *id); -gchar *panel_compatiblity_get_applet_iid (const gchar *id); +gchar *panel_compatibility_get_applet_iid (const gchar *id); G_END_DECLS ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Remember to have fun... -- To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-commit+help@opensuse.org