rebranded SUNWgnome-panel s11express-2010-11
authorGuido Berhoerster <guido+openindiana@berhoerster.name>
Fri, 17 Sep 2010 11:16:53 +0200
branchs11express-2010-11
changeset 22069 af54b3ee55b3
parent 22068 0f285a67d627
child 22070 2ac761dc4a0e
rebranded SUNWgnome-panel
base-specs/gnome-desktop.spec
base-specs/gnome-panel.spec
patches/gnome-desktop-01-jds-about-branding-openindiana.diff
patches/gnome-panel-08-launch-menu-openindiana.diff
--- a/base-specs/gnome-desktop.spec	Tue Sep 07 17:55:43 2010 +0200
+++ b/base-specs/gnome-desktop.spec	Fri Sep 17 11:16:53 2010 +0200
@@ -30,8 +30,12 @@
 %if %build_l10n
 Source8:                 l10n-configure.sh
 %endif
+%if %option_with_openindiana_branding
+Patch1:       gnome-desktop-01-jds-about-branding-openindiana.diff
+%else
 # date:2004-03-22 type:branding owner:gman
 Patch1:       gnome-desktop-01-jds-about-branding.diff
+%endif
 # date:2008-10-03 type:bug owner:dkenny bugster:6754036
 Patch2:       gnome-desktop-02-xrandr-probing.diff
 # date:2006-06-30 type:feature owner:stephen
@@ -136,7 +140,11 @@
 	    --sysconfdir=%{_sysconfdir} \
 	    --localstatedir=/var/lib \
 	    --mandir=%{_mandir} \
+%if %option_with_openindiana_branding
+	    --with-gnome-distributor="The OpenIndiana Project" \
+%else
 	    --with-gnome-distributor="Oracle Corporation" \
+%endif
 	    --with-gnome-distributor-version="$release_version" \
 	    --disable-scrollkeeper
 make -j $CPUS
--- a/base-specs/gnome-panel.spec	Tue Sep 07 17:55:43 2010 +0200
+++ b/base-specs/gnome-panel.spec	Fri Sep 17 11:16:53 2010 +0200
@@ -28,7 +28,11 @@
 Source4:	%{name}-po-sun-%{po_sun_version}.tar.bz2
 Source5:	l10n-configure.sh
 Source6:	top-panel-image.png
+%if %option_with_openindiana_branding
+Source7:	bottom-panel-image-openindiana.png
+%else
 Source7:	bottom-panel-image.png
+%endif
 %if %build_l10n
 Source8:                 l10n-configure.sh
 %endif
@@ -40,6 +44,10 @@
 # date:2007-10-24 type:branding owner:gman
 Patch1:		gnome-panel-01-default-setup-indiana.diff
 %endif
+%if %option_with_openindiana_branding
+# date:2007-10-24 type:branding owner:gman
+Patch1:		gnome-panel-01-default-setup-indiana.diff
+%endif
 # date:2004-09-30 type:branding owner:mattman 
 Patch2:		gnome-panel-02-fish-applet.diff
 # date:2004-10-18 type:feature bugster:4984097 owner:mattman 
@@ -54,6 +62,9 @@
 # date:2006-05-03 type:branding owner:gman
 Patch8:         gnome-panel-08-launch-menu-indiana.diff
 %endif
+%if %option_with_openindiana_branding
+Patch8:         gnome-panel-08-launch-menu-openindiana.diff
+%endif
 %if %option_with_sun_branding
 # date:2006-05-03 type:branding owner:gman
 Patch8:         gnome-panel-08-launch-menu.diff
@@ -137,6 +148,9 @@
 %if %option_with_indiana_branding
 %patch1 -p1
 %endif
+%if %option_with_openindiana_branding
+%patch1 -p1
+%endif
 %patch2 -p1
 %patch3 -p1
 %patch5 -p1
@@ -145,6 +159,9 @@
 %if %option_with_indiana_branding
 %patch8 -p1
 %endif
+%if %option_with_openindiana_branding
+%patch8 -p1
+%endif
 %if %option_with_sun_branding
 %patch8 -p1
 %patch9 -p1
@@ -159,7 +176,7 @@
 
 cp %SOURCE3 icons
 cp %SOURCE6 icons
-cp %SOURCE7 icons
+cp %SOURCE7 icons/bottom-panel-image.png
 %if %option_with_sun_branding
 cp %SOURCE1 icons/gnome-main-menu.png
 %endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/patches/gnome-desktop-01-jds-about-branding-openindiana.diff	Fri Sep 17 11:16:53 2010 +0200
@@ -0,0 +1,351 @@
+diff -uprN gnome-desktop-2.30.2.orig/configure.in gnome-desktop-2.30.2/configure.in
+--- gnome-desktop-2.30.2.orig/configure.in	2010-06-22 03:41:19.000000000 +0200
++++ gnome-desktop-2.30.2/configure.in	2010-09-03 22:08:57.000000000 +0200
+@@ -50,12 +50,17 @@ GNOME_MICRO=gnome_micro
+ GNOME_DISTRIBUTOR="GNOME.Org"
+ GNOME_DATE=`date +"%Y-%m-%d"`
+ 
+-AC_ARG_WITH(gnome_distributor, [  --with-gnome-distributor=DISTRIBUTOR  Specify name of GNOME distributor])
+-
++AC_ARG_WITH(gnome_distributor_version, [  --with-gnome-distributor-version=DISTRIBUTOR  Specify version of GNOME distributor
++])
++ 
+ if test "x$with_gnome_distributor" != x ; then
+   GNOME_DISTRIBUTOR=$with_gnome_distributor
+ fi
+ 
++if test "x$with_gnome_distributor_version" != x ; then
++  GNOME_DISTRIBUTOR_VERSION=$with_gnome_distributor_version
++fi
++
+ AC_ARG_ENABLE([date-in-gnome-version],
+ 	[AS_HELP_STRING([--disable-date-in-gnome-version],[do not put the build date in gnome-version.xml])],
+ 	[],[enable_date_in_gnome_version=yes])
+@@ -72,6 +77,7 @@ AC_SUBST(GNOME_PLATFORM)
+ AC_SUBST(GNOME_MINOR)
+ AC_SUBST(GNOME_MICRO)
+ AC_SUBST(GNOME_DISTRIBUTOR)
++AC_SUBST(GNOME_DISTRIBUTOR_VERSION)
+ AC_SUBST(GNOME_DATE)
+ AC_SUBST(GNOME_DATE_COMMENT_START)
+ AC_SUBST(GNOME_DATE_COMMENT_END)
+diff -uprN gnome-desktop-2.30.2.orig/gnome-about/contributors.list gnome-desktop-2.30.2/gnome-about/contributors.list
+--- gnome-desktop-2.30.2.orig/gnome-about/contributors.list	2010-02-09 13:25:23.000000000 +0100
++++ gnome-desktop-2.30.2/gnome-about/contributors.list	2010-09-03 22:08:57.000000000 +0200
+@@ -555,3 +555,96 @@ Simon Zheng
+ Sascha Ziemann
+ Michael Zucchi
+ Jason van Zyl
++Alfred Peng
++Alvaro Lopez Ortega
++Amith Yamasani
++Anand Subramanian
++Antonio Xu 
++Archana Shah
++Ashish Mukharji
++Balamurali Viswanathan
++Biswa Lal
++Bolian Yin
++Brian Lu
++Brian Nitz
++Calvin Liu
++Carl Gadener
++Chandrashekhar BK
++Curtis Sasaki
++Dan Baigent
++Darren Kenny
++Dave Lin
++Deirdre Williams
++Derek Rafter
++Dermot McCluskey
++Dinoop Thomas
++Dirk Grobler
++Ervin Yan
++Evan Yan
++Gary Little
++Geoff Baysinger
++Ghee Teo
++Ginn Chen
++Girish Kulkarni
++Halton Huo
++Hema Seetharamaiah
++Henry Jia
++Ii Gyoung Park
++Jack Jia
++Jedy Wang
++Jeff McMeekin
++Jerry Tan
++Jessie Li
++Jijun Yu
++John Fischer
++John Rice
++Joshua Xia
++Kalpesh Shah
++Kaveri Murthy
++Kyle Yuan
++Lalith Kumar
++Laszlo Kovacs
++Laszlo Peter
++Leena Gunda
++Leo Binchy
++Leon Sha
++Leon Zhang
++Louie Zhao
++Louise Siu
++Luke Shi
++Mark Duggan
++Mark Yang
++Martin Damboldt
++Michael Krivoruchko
++Michael Twomey
++Michal Pryc
++Mike Lei
++Muktha Narayan
++Nancy Lee
++Narayana Pattipati
++Neo Liu
++Niall Power
++Olaf Felka
++Oliver Braun
++Partha Pratim
++Patrick Gu
++Pete Zha
++Rick Ju
++Robert Kinsella
++Robert O'Dea
++Robin Lu
++Simford Dong
++Sowmya Adiga
++Srirama Sharma
++Suresh Chandrasekharan
++Susan Jefferies
++Takao Fujiwara
++Terry Ponce
++Thorsten Laux
++Vijay Anand
++Vijaykumar Patwari
++Vinay M R
++Vishnu Kumar
++Yan Dong Yao
++Yogeesh MB
++Young J. Song
+diff -uprN gnome-desktop-2.30.2.orig/gnome-about/gnome-about.desktop.in.in gnome-desktop-2.30.2/gnome-about/gnome-about.desktop.in.in
+--- gnome-desktop-2.30.2.orig/gnome-about/gnome-about.desktop.in.in	2010-03-27 12:34:40.000000000 +0100
++++ gnome-desktop-2.30.2/gnome-about/gnome-about.desktop.in.in	2010-09-03 22:08:57.000000000 +0200
+@@ -1,6 +1,7 @@
+ [Desktop Entry]
+ _Name=About GNOME
+-_Comment=Learn more about GNOME
++# SUN_BRANDING
++_Comment=GNOME version, licence and useful links
+ Exec=gnome-about
+ Icon=gnome-logo-icon-transparent
+ Terminal=false
+diff -uprN gnome-desktop-2.30.2.orig/gnome-about/gnome-about.in gnome-desktop-2.30.2/gnome-about/gnome-about.in
+--- gnome-desktop-2.30.2.orig/gnome-about/gnome-about.in	2010-02-09 13:25:23.000000000 +0100
++++ gnome-desktop-2.30.2/gnome-about/gnome-about.in	2010-09-03 22:12:39.000000000 +0200
+@@ -33,11 +33,12 @@ pygtk.require ('2.0')
+ import gobject
+ from gobject.option import OptionParser, make_option
+ import gtk
++import gnome
+ 
+ import cairo
+ from math import pi
+ 
+-import os, sys, random, time, gettext, locale
++import os, sys, random, time, gettext, locale, string
+ 
+ import xml.dom.minidom
+ 
+@@ -57,11 +58,14 @@ LOGO_FILE        = "gnome-64.png"
+ gettext.install (GETTEXT_PACKAGE, LOCALEDIR, unicode = True)
+ 
+ header_links = [
+-    (_("About GNOME"), "http://www.gnome.org/about/"),
+-    (_("News"), "http://news.gnome.org/"),
+-    (_("GNOME Library"), "http://library.gnome.org/"),
+-    (_("Friends of GNOME"), "http://www.gnome.org/friends/"),
+-    (_("Contact"), "http://www.gnome.org/contact/"),
++    # SUN_BRANDING #
++    (_("About OpenIndiana"), "http://www.openindiana.org/", True),
++    # SUN_BRANDING #
++    (_("About GNOME"), "http://www.gnome.org/about/", True),
++    # SUN_BRANDING #
++    (_("GNOME Library"), "http://library.gnome.org/", True),
++    # SUN_BRANDING #
++    (_("Contact"), "http://www.openindiana.org/contact/", True),
+ ]
+ 
+ translated_contributors = [
+@@ -81,6 +85,12 @@ def locate_file (file):
+             return filename
+     return False
+ 
++def locate_program (program):
++    for dir in string.split(os.environ['PATH'], os.pathsep):
++        if os.access(os.path.join(dir, program), os.X_OK):
++            return os.path.join(dir, program)
++    return None
++
+ def cleanup_date (date):
+     '''Parse a date as found in gnome-version.xml and nicely format it'''
+     try:
+@@ -535,14 +545,16 @@ class HyperLink (WindowedLabel):
+     url       = ""
+     menu      = None
+     selection = None
++    is_link   = False
+ 
+-    def __init__ (self, label, url):
++    def __init__ (self, label, url, is_link):
+         '''Initialize object'''
+         super (HyperLink, self).__init__ ()
+         markup = "<b><u>%s</u></b>" % label
+         self.set_markup (markup)
+         self.set_selectable (True)
+         self.url = url
++        self.is_link = is_link
+         self.create_menu ()
+         link_color = self.style_get_property ("link-color") 
+         if not link_color:
+@@ -551,10 +563,16 @@ class HyperLink (WindowedLabel):
+ 
+     def open_url (self, *args):
+         '''Use GNOME API to open the url'''
+-        try:
+-            gtk.show_uri (self.get_screen(), self.url, 0)
+-        except Exception, e:
+-            print '''Warning: could not open "%s": %s''' % (self.url, e)
++        if self.is_link != False:
++            try:
++                gnome.url_show (self.url)
++            except Exception, e:
++                print '''Warning: could not open "%s": %s''' % (self.url, e)
++        else:
++            try:
++                os.system (self.url)
++            except Exception, e:
++                print '''Warning: could not launch "%s": %s''' % (self.url, e)
+ 
+     def copy_url (self, *args):
+         '''Copy URL to Clipboard'''
+@@ -722,22 +740,33 @@ class GnomeAboutHeader (gtk.Layout):
+ 
+         def make_link_widget (link):
+             '''Helper function which makes an HyperLink and shows it'''
+-            label = HyperLink (link[0], link[1])
+-            label.show_all ()
+-            return label
++            '''if link[2] is False, then a program, so check if on path'''
++            if link[2] == True:
++                label = HyperLink (link[0], link[1], link[2])
++                label.show_all ()
++                return label
++            else:
++                path = locate_program(link[1])
++                if path:
++                    label = HyperLink (link[0], link[1], link[2])
++                    label.show_all ()
++                    return label
++                else:
++                    return None
+ 
+         widgets = map (make_link_widget, self.links)
+         put_widgets = 0
+         for widget in widgets:
+-            if put_widgets > 0:
+-                if dot:
+-                    image = gtk.Image ()
+-                    image.set_from_pixmap (dot, None)
+-                    self.put (image, current_x + 5, base_y + 6)
+-                current_x += 16
+-            self.put (widget, current_x, base_y)
+-            current_x += widget.size_request ()[0]
+-            put_widgets += 1
++            if widget:
++                if put_widgets > 0:
++                    if dot:
++                        image = gtk.Image ()
++                        image.set_from_pixmap (dot, None)
++                        self.put (image, current_x + 5, base_y + 6)
++                    current_x += 16
++                self.put (widget, current_x, base_y)
++                current_x += widget.size_request ()[0]
++                put_widgets += 1
+ 
+         self.width = current_x + 10
+         self.height = current_y
+@@ -874,7 +903,7 @@ class GnomeAbout (gtk.Dialog):
+         main_box.pack_start (welcome_label)
+ 
+         descriptions_label = VertAnimatedLabel (self.description_messages,
+-                                                300, 120,
++                                                402, 184,
+                                                 DESCRIPTION_DELAY, "%s")
+         welcome_label.connect ("button-press-event",
+                                descriptions_label.on_button_press)
+@@ -948,6 +977,7 @@ contributors list) correctly positionned
+                     "minor" : "",
+                     "micro" : "",
+                     "distributor" : "",
++                    "distributor-version" : "",
+                     "date" : ""
+                 }
+ 
+@@ -958,15 +988,19 @@ contributors list) correctly positionned
+                 self.load_description_messages (node)
+ 
+         '''Format version'''
+-        if not len (infos["platform"]):
+-            version = ""
+-        elif not len (infos["minor"]):
+-            version = infos["platform"]
+-        elif not len (infos["micro"]):
+-            version = "%s.%s" % (infos["platform"], infos["minor"])
++        if infos["distributor-version"]:
++            '''Use Distributor's version over gnome version'''
++            version = infos["distributor-version"]
+         else:
+-            version = "%s.%s.%s" % (infos["platform"], infos["minor"],
+-                                    infos["micro"])
++            if not len (infos["platform"]):
++                version = ""
++            elif not len (infos["minor"]):
++                version = infos["platform"]
++            elif not len (infos["micro"]):
++                version = "%s.%s" % (infos["platform"], infos["minor"])
++            else:
++                version = "%s.%s.%s" % (infos["platform"], infos["minor"],
++                                        infos["micro"])
+ 
+         date = cleanup_date (infos["date"])
+ 
+diff -uprN gnome-desktop-2.30.2.orig/Makefile.am gnome-desktop-2.30.2/Makefile.am
+--- gnome-desktop-2.30.2.orig/Makefile.am	2010-02-09 13:25:23.000000000 +0100
++++ gnome-desktop-2.30.2/Makefile.am	2010-09-03 22:08:57.000000000 +0200
+@@ -9,17 +9,21 @@ SUBDIRS =			\
+ 	docs			\
+ 	man
+ 
++XML_IN_FILES=gnome-version.xml.in
++XML_FILES=$(XML_IN_FILES:.xml.in=.xml)
++versiondir=$(datadir)/gnome-about
++version_DATA=$(XML_FILES)
++
+ EXTRA_DIST =			\
+ 	MAINTAINERS		\
+ 	ChangeLog.pre-git	\
+-	gnome-version.xml.in.in	\
++	$(XML_IN_FILES)		\
++	$(XML_FILES)		\
+ 	gnome-version.xml	\
+ 	COPYING-DOCS		\
+ 	HACKING			\
+ 	gnome-doc-utils.make
+ 
+-versiondir=$(datadir)/gnome-about
+-version_DATA=gnome-version.xml
+ @INTLTOOL_XML_RULE@
+ 
+ DISTCHECK_CONFIGURE_FLAGS = --enable-gtk-doc --disable-scrollkeeper
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/patches/gnome-panel-08-launch-menu-openindiana.diff	Fri Sep 17 11:16:53 2010 +0200
@@ -0,0 +1,138 @@
+/jds/bin/diff -uprN gnome-panel-2.27.92.old/gnome-panel/menu.c gnome-panel-2.27.92/gnome-panel/menu.c
+--- gnome-panel-2.27.92.old/gnome-panel/menu.c	2009-09-14 13:54:27.541171000 +0100
++++ gnome-panel-2.27.92/gnome-panel/menu.c	2009-09-14 13:55:13.776722000 +0100
+@@ -1821,6 +1821,53 @@ main_menu_append (GtkWidget *main_menu,
+ 	panel_menu_items_append_lock_logout (main_menu);
+ }
+ 
++void
++run_applications (GtkWidget *widget, gpointer user_data)
++{
++	if (!panel_lockdown_get_restrict_application_launching() &&
++			!panel_lockdown_get_disable_command_line()) {
++		panel_run_dialog_present (gtk_widget_get_screen (widget),
++				gtk_get_current_event_time ());
++	}
++}
++
++void
++applications_menu_append (GtkWidget   *main_menu)
++{
++	GtkWidget *item;
++	GtkWidget *accel_label;
++	GtkWidget *image;
++
++	if (panel_lockdown_get_disable_command_line())
++		return;
++
++	if (!g_object_get_data (G_OBJECT (main_menu),
++				"panel-menu-needs-appending"))
++		return;
++
++	g_object_set_data (G_OBJECT (main_menu),
++			"panel-menu-needs-appending", NULL);
++
++	add_menu_separator (main_menu);
++
++	item = gtk_image_menu_item_new ();
++
++	accel_label = gtk_accel_label_new (_("Run Application..."));
++	gtk_misc_set_alignment (GTK_MISC (accel_label), 0.0, 0.5);
++
++	gtk_container_add (GTK_CONTAINER (item), accel_label);
++	gtk_accel_label_set_accel_widget (GTK_ACCEL_LABEL (accel_label),
++			GTK_WIDGET (item));
++	gtk_widget_show (accel_label);
++
++	image = gtk_image_new_from_icon_name (PANEL_ICON_RUN, panel_menu_icon_get_size ());
++	gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (item), image);
++
++	g_signal_connect (item, "activate", G_CALLBACK (run_applications), NULL);
++	gtk_menu_shell_append (GTK_MENU_SHELL (main_menu), item);
++	gtk_widget_show (item);
++}
++
+ GtkWidget *
+ create_main_menu (PanelWidget *panel)
+ {
+/jds/bin/diff -uprN gnome-panel-2.27.92.old/gnome-panel/menu.h gnome-panel-2.27.92/gnome-panel/menu.h
+--- gnome-panel-2.27.92.old/gnome-panel/menu.h	2009-09-14 13:54:27.545416000 +0100
++++ gnome-panel-2.27.92/gnome-panel/menu.h	2009-09-14 13:55:13.778639000 +0100
+@@ -69,6 +69,8 @@ GtkWidget      *add_menu_separator   (Gt
+ 
+ gboolean menu_dummy_button_press_event (GtkWidget      *menuitem,
+ 					GdkEventButton *event);
++void run_applications (GtkWidget *widget, gpointer user_data);
++void applications_menu_append (GtkWidget *main_menu);
+ 
+ 
+ G_END_DECLS
+/jds/bin/diff -uprN gnome-panel-2.27.92.old/gnome-panel/panel-menu-items.c gnome-panel-2.27.92/gnome-panel/panel-menu-items.c
+--- gnome-panel-2.27.92.old/gnome-panel/panel-menu-items.c	2009-09-14 13:54:27.547045000 +0100
++++ gnome-panel-2.27.92/gnome-panel/panel-menu-items.c	2009-09-14 13:55:13.788961000 +0100
+@@ -1173,6 +1173,7 @@ panel_desktop_menu_item_append_menu (Gtk
+ 		add_menu_separator (menu);
+ 
+ 	panel_menu_items_append_from_desktop (menu, "yelp.desktop", NULL, FALSE);
++	panel_menu_items_append_from_desktop (menu, "openindiana-about.desktop", NULL, FALSE);
+ 	panel_menu_items_append_from_desktop (menu, "gnome-about.desktop", NULL, FALSE);
+ 
+ 	if (parent->priv->append_lock_logout)
+/jds/bin/diff -uprN gnome-panel-2.27.92.old/gnome-panel/panel-menu-bar.c gnome-panel-2.27.92/gnome-panel/panel-menu-bar.c
+--- gnome-panel-2.27.92.old/gnome-panel/panel-menu-bar.c	2009-09-22 14:37:48.346822883 +0100
++++ gnome-panel-2.27.92/gnome-panel/panel-menu-bar.c	2009-09-22 14:51:43.685055758 +0100
+@@ -154,13 +154,33 @@ panel_menubar_recreate_menus (PanelMenuB
+                                                (PanelDesktopMenuItem *)menubar->priv->desktop_item);
+ 
+                panel_menu_bar_parent_set ((GtkWidget *)menubar, NULL);
++               g_object_set_data (G_OBJECT (menubar->priv->applications_menu),
++                       "panel-menu-needs-appending", TRUE);
+        }
+ }
+ 
+ static void
++panel_menu_bar_handle_gmenu_change(GMenuTree *tree,
++			   GtkWidget *menu)
++{
++	g_object_set_data (G_OBJECT (menu),
++			"panel-menu-needs-appending", TRUE);
++}
++
++static void
++panel_menu_bar_remove_gmenu_monitor(GtkWidget *menu,
++				GMenuTree *tree)
++{
++	gmenu_tree_remove_monitor (tree,
++			(GMenuTreeChangedFunc) panel_menu_bar_handle_gmenu_change,
++			menu);
++}
++
++static void
+ panel_menu_bar_init (PanelMenuBar *menubar)
+ {
+ 	GtkWidget *image;
++	GMenuTree *tree;
+ 
+ 	menubar->priv = PANEL_MENU_BAR_GET_PRIVATE (menubar);
+ 
+@@ -168,6 +188,20 @@ panel_menu_bar_init (PanelMenuBar *menub
+ 
+ 	menubar->priv->applications_menu = create_applications_menu ("applications.menu", NULL, TRUE);
+ 
++	tree = gmenu_tree_lookup ("applications.menu", GMENU_TREE_FLAGS_NONE);
++
++	gmenu_tree_add_monitor (tree,
++			(GMenuTreeChangedFunc) panel_menu_bar_handle_gmenu_change,
++			menubar->priv->applications_menu);
++	g_signal_connect(menubar->priv->applications_menu, "destroy",
++			G_CALLBACK (panel_menu_bar_remove_gmenu_monitor), tree);
++	gmenu_tree_unref (tree);
++
++	g_object_set_data (G_OBJECT (menubar->priv->applications_menu),
++			"panel-menu-needs-appending", TRUE);
++	g_signal_connect (menubar->priv->applications_menu, "show",
++			G_CALLBACK(applications_menu_append), NULL);
++
+ 	menubar->priv->applications_item = panel_image_menu_item_new ();
+ 	gtk_menu_item_set_label (GTK_MENU_ITEM (menubar->priv->applications_item),
+ 				 _("Applications"));