--- appmenu-gtk-0.1.9.orig/debian/watch +++ appmenu-gtk-0.1.9/debian/watch @@ -0,0 +1,2 @@ +version=3 +http://launchpad.net/appmenu-gtk/+download .*/appmenu-gtk-([0-9.]+)\.tar\.gz --- appmenu-gtk-0.1.9.orig/debian/control +++ appmenu-gtk-0.1.9/debian/control @@ -0,0 +1,26 @@ +Source: appmenu-gtk +Section: libs +Priority: optional +Maintainer: Ubuntu Desktop Team +Build-Depends: debhelper (>= 5.0), + cdbs (>= 0.4.41), + libgtk2.0-dev (>= 2.21.2-0ubuntu6), + libdbus-glib-1-dev, + libdbusmenu-glib-dev (>= 0.3.7), + libdbusmenu-gtk-dev (>= 0.3.7), + libtool +Standards-Version: 3.9.1 +Homepage: https://launchpad.net/appmenu-gtk +Vcs-Bzr: https://code.launchpad.net/~ubuntu-desktop/appmenu-gtk/ubuntu +Vcs-Browser: http://bazaar.launchpad.net/~ubuntu-desktop/appmenu-gtk/ubuntu + +Package: appmenu-gtk +Section: libs +Architecture: any +Depends: ${shlibs:Depends}, + ${misc:Depends}, + libgtk2.0-0 (>= 2.21.2-0ubuntu6) +Conflicts: indicator-appmenu (<< 0.0.9) +Description: Export GTK menus over DBus + . + This package provides support for application menus. --- appmenu-gtk-0.1.9.orig/debian/rules +++ appmenu-gtk-0.1.9/debian/rules @@ -0,0 +1,7 @@ +#!/usr/bin/make -f + +include /usr/share/cdbs/1/rules/debhelper.mk +include /usr/share/cdbs/1/class/gnome.mk +include /usr/share/cdbs/1/rules/simple-patchsys.mk + +LDFLAGS += -Wl,-z,defs -Wl,--as-needed --- appmenu-gtk-0.1.9.orig/debian/copyright +++ appmenu-gtk-0.1.9/debian/copyright @@ -0,0 +1,33 @@ +This package was debianized by Ken VanDine on +Thu, 27 May 2010 16:52:44 -0400 + + +It was downloaded from + +Upstream Author: + + Cody Russell + +Copyright: + + Copyright (C) 2010 Canonical Ltd. + +License: + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License version 3, as published by the Free Software Foundation. + + This library 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 library; if not, see . + +On Debian systems, the complete text of the GNU Lesser General +Public License can be found in `/usr/share/common-licenses/LGPL-3'. + +The Debian packaging is (C) 2010, Canonical Ltd. and +is licensed under the GPLv3, see `/usr/share/common-licenses/GPL-3'. --- appmenu-gtk-0.1.9.orig/debian/changelog +++ appmenu-gtk-0.1.9/debian/changelog @@ -0,0 +1,270 @@ +appmenu-gtk (0.1.9-0ubuntu4.1) maverick-proposed; urgency=low + + * debian/patches/do_not_show_duplicate_menus.patch: + - do not show duplicate menu items (LP: #655241) + + -- Omer Akram Sat, 20 Nov 2010 15:28:43 +0500 + +appmenu-gtk (0.1.9-0ubuntu4) maverick; urgency=low + + * cherry-picked from upstream: + - show gedit plugins menu (LP: #646794) + + -- Didier Roche Thu, 30 Sep 2010 18:24:53 +0200 + +appmenu-gtk (0.1.9-0ubuntu3) maverick; urgency=low + + * cherry-picked from upstream: + - blacklist shotwell run now as there are no proper fix to get it working + with appmenu af of today (LP: #651307) + + -- Didier Roche Wed, 29 Sep 2010 19:46:23 +0200 + +appmenu-gtk (0.1.9-0ubuntu2) maverick; urgency=low + + * Backport upstream fix: + - Paste in global application menu is not active whilst using + gnome-terminal (LP: #630292) + + -- Didier Roche Thu, 23 Sep 2010 21:08:40 +0200 + +appmenu-gtk (0.1.9-0ubuntu1) maverick; urgency=low + + * New upstream release + - Fix for menuitem caching in rebuild_item() (LP: #636962) + * debian/patches/fix_toplevel_destroy.patch + - Dropped, fixed upstream + + -- Ken VanDine Mon, 13 Sep 2010 15:13:51 -0400 + +appmenu-gtk (0.1.8-0ubuntu2) maverick; urgency=low + + * debian/patches/fix_toplevel_destroy.patch + - Fix toplevel_destroyed() callback to be disconnected from a previous + window before it gets connected to a new one. + + -- Ken VanDine Thu, 09 Sep 2010 14:28:14 -0400 + +appmenu-gtk (0.1.8-0ubuntu1) maverick; urgency=low + + * New upstream version + + -- Sebastien Bacher Thu, 09 Sep 2010 19:21:52 +0200 + +appmenu-gtk (0.1.7-0ubuntu2) maverick; urgency=low + + * Backport trunk commit to fix crashers (lp: #624607, #625885, #628672) + + -- Sebastien Bacher Tue, 31 Aug 2010 22:48:38 +0200 + +appmenu-gtk (0.1.7-0ubuntu1) maverick; urgency=low + + * New upstream version. + + -- Sebastien Bacher Thu, 26 Aug 2010 22:43:58 +0200 + +appmenu-gtk (0.1.6-0ubuntu1) maverick; urgency=low + + * New upstream version: + - Performance improvements + - Fix issues where some menuitems were not showing sensitivity accurately + * debian/control: updated standards version + + -- Sebastien Bacher Tue, 24 Aug 2010 16:52:13 +0200 + +appmenu-gtk (0.1.4-0ubuntu1) maverick; urgency=low + + * New upstream version + * debian/patches/lp_610083.patch: + - dropped, the change is in the new version + + -- Sebastien Bacher Tue, 10 Aug 2010 15:32:50 +0200 + +appmenu-gtk (0.1.3-0ubuntu3) maverick; urgency=low + + * debian/patches/lp_610083.patch + - Blacklist thunderbird until we can find a proper fix to prevent + thunderbird from crashing on startup. (LP: #610083) + + -- Ken VanDine Mon, 26 Jul 2010 10:16:54 -0400 + +appmenu-gtk (0.1.3-0ubuntu2) maverick; urgency=low + + * src/bridge.c + - Cherry picked fix for menus appearing randomly (LP: #608967) + + -- Ken VanDine Fri, 23 Jul 2010 12:06:05 +0200 + +appmenu-gtk (0.1.3-0ubuntu1) maverick; urgency=low + + * New upstream release + - DBus name change, s/WindowMenu/AppMenu/g + - Adds fallback code in case indicator-appmenu applet is not available + (and APPMENU_DISPLAY_BOTH is not set to 1), and for when the + applet vanishes and reappears. (LP: #607285) + * debian/control + - Added a conflicts for indicator-appmenu (<< 0.0.9) + - Increased build depends version for dbusmenu and libgtk2.0-dev + - Added explict Depends on libgtk2.0-0(>= 2.21.2-0ubuntu6) + + -- Ken VanDine Thu, 22 Jul 2010 15:29:10 +0200 + +appmenu-gtk (0.1.1-0ubuntu1) maverick; urgency=low + + * New upstream version: + - [Master] Confusion between dot and check markers in menu items + - doesn't display icons + - Menus in gnome-panel are not visible if APPMENU_DISPLAY_BOTH=0 + - APPMENU_DISPLAY_BOTH=0 hides items in the panel menu applet + - Getting lots of command-line errors when running GIMP + + -- Sebastien Bacher Thu, 08 Jul 2010 19:24:27 +0200 + +appmenu-gtk (0.1.0-0ubuntu2) maverick; urgency=low + + * Backport upstream changes to fix issues with pixbufs images not being + displayed and with dots being rendered as checkmarks in the indicator + + -- Sebastien Bacher Thu, 08 Jul 2010 15:00:51 +0200 + +appmenu-gtk (0.1.0-0ubuntu1) maverick; urgency=low + + * New upstream version: + - Gimp: menu item missing + - [Master] Application is showing a partial menu + - [Master] Menu items are out of order. + - Firefox supposedly crashing with appmenu-gtk + - Weird sub-menu associated with Anjuta's File -> Quit entry + - doesn't display icons + - Tabs menu in gnome-terminal does not display correctly + - Pidgin menu items for accounts are not updated on + the menubar when disabling them + - Dynamic menu is empty + + -- Sebastien Bacher Tue, 06 Jul 2010 18:09:11 +0200 + +appmenu-gtk (0.0.9-0ubuntu5) maverick; urgency=low + + * src/bridge.c: clean some g_print calls there + + -- Sebastien Bacher Fri, 02 Jul 2010 18:35:48 +0200 + +appmenu-gtk (0.0.9-0ubuntu4) maverick; urgency=low + + * Backport extra upstream fixes for softwares not working + + -- Sebastien Bacher Fri, 02 Jul 2010 12:31:21 +0200 + +appmenu-gtk (0.0.9-0ubuntu3) maverick; urgency=low + + * Backport another set of upstream changes to fix crashing issues + + -- Sebastien Bacher Tue, 29 Jun 2010 23:54:41 +0200 + +appmenu-gtk (0.0.9-0ubuntu2) maverick; urgency=low + + * Backport upstream commit to fix missing menu items issues (lp: #598623) + + -- Sebastien Bacher Tue, 29 Jun 2010 10:42:00 +0200 + +appmenu-gtk (0.0.9-0ubuntu1) maverick; urgency=low + + * New upstream version: + - Fix bug #598244 - Unexpected separators in menus (lp: #598244) + - Fix bug #598311 - Missing menus and menu items (lp: #598311) + + -- Sebastien Bacher Fri, 25 Jun 2010 20:20:12 +0200 + +appmenu-gtk (0.0.8-0ubuntu2) maverick; urgency=low + + * Backport upstream r35 to fix some extra issues + + -- Sebastien Bacher Thu, 24 Jun 2010 22:10:12 +0200 + +appmenu-gtk (0.0.8-0ubuntu1) maverick; urgency=low + + * New upstream release + - memset recurse to 0, then check for NULL before setting root. + - Fix for valid roots always. + - Skip duplicate separator menuitems (LP: #594867) + - Add support for shortcuts (LP: #591293) + - check that the boolean ubuntu-no-proxy exists before using a potential + value to remove proxy support + * debian/control + - build build depends for libdbusmenu to >= 0.3.3 + + -- Ken VanDine Thu, 24 Jun 2010 13:53:20 -0400 + +appmenu-gtk (0.0.7-0ubuntu2) maverick; urgency=low + + * Backporting upstream commit to fix issues in unity + + -- Sebastien Bacher Fri, 18 Jun 2010 12:42:34 +0200 + +appmenu-gtk (0.0.7-0ubuntu1) maverick; urgency=low + + * New upstream release + + -- Ken VanDine Thu, 17 Jun 2010 16:39:13 -0400 + +appmenu-gtk (0.0.6-0ubuntu1) maverick; urgency=low + + * New upstream release + - Sets needed session variables in /etc/X11/Xsession.d + + -- Ken VanDine Fri, 11 Jun 2010 11:47:35 -0400 + +appmenu-gtk (0.0.5-0ubuntu1) maverick; urgency=low + + * New upstream release + * debian/control + - build build-dep version for libgtk2.0-dev to >= 2.21.1-1ubuntu2 + + -- Ken VanDine Thu, 10 Jun 2010 17:30:03 -0400 + +appmenu-gtk (0.0.4-0ubuntu1~ppa1) lucid; urgency=low + + * New upstream release + + -- Ken VanDine Fri, 04 Jun 2010 13:47:36 -0400 + +appmenu-gtk (0.0.3-0ubuntu1~ppa1) lucid; urgency=low + + * New upstream version + * debian/control + - Added Vcs lings + * debian/copyright added + * debian/watch added + + -- Ken VanDine Thu, 27 May 2010 16:52:44 -0400 + +appmenu-gtk (0.0.2~dev-0ubuntu1~ppa1) lucid; urgency=low + + * Version bump to 0.0.2 + + -- Cody Russell Wed, 26 May 2010 11:26:17 -0500 + +appmenu-gtk (0.0.1~dev-0ubuntu1~ppa4) lucid; urgency=low + + * Updates for the latest GtkMenuProxy interface. + + -- Cody Russell Wed, 26 May 2010 09:00:08 -0500 + +appmenu-gtk (0.0.1~dev-0ubuntu1~ppa3) lucid; urgency=low + + * debian/control: Adding libdbusmenu-gtk-dev to the dependency + list. + + -- Ted Gould Wed, 12 May 2010 16:44:47 +0200 + +appmenu-gtk (0.0.1~dev-0ubuntu1~ppa2) lucid; urgency=low + + * Fixing packaging to make it so there aren't two .so's + + -- Ted Gould Tue, 11 May 2010 13:30:04 +0200 + +appmenu-gtk (0.0.1~dev-0ubuntu1~ppa1) lucid; urgency=low + + * Initial release. + + -- Ted Gould Tue, 11 May 2010 13:18:19 +0200 --- appmenu-gtk-0.1.9.orig/debian/patches/do_not_show_duplicate_menus.patch +++ appmenu-gtk-0.1.9/debian/patches/do_not_show_duplicate_menus.patch @@ -0,0 +1,128 @@ +=== modified file 'src/bridge.c' +--- src/bridge.c 2010-09-29 17:14:35 +0000 ++++ src/bridge.c 2010-10-06 16:52:47 +0000 +@@ -696,6 +696,33 @@ + } + } + ++/* ++ * We probably should have added a 'remove' method to the UbuntuMenuProxy early on, ++ * but it's late in the cycle now. ++ */ ++static void ++child_notify_cb (GtkWidget *widget, ++ GParamSpec *pspec, ++ DbusmenuMenuitem *mi) ++{ ++ if (pspec->name == g_intern_static_string ("parent")) ++ { ++ if (gtk_widget_get_parent (widget) == NULL) ++ { ++ g_signal_handlers_disconnect_by_func (widget, ++ G_CALLBACK (child_notify_cb), ++ mi); ++ ++ DbusmenuMenuitem *parent = g_object_get_data (G_OBJECT (mi), "dbusmenu-parent"); ++ ++ if (DBUSMENU_IS_MENUITEM (parent) && DBUSMENU_IS_MENUITEM (mi)) ++ { ++ dbusmenu_menuitem_child_delete (parent, mi); ++ } ++ } ++ } ++} ++ + static DbusmenuMenuitem * + construct_dbusmenu_for_widget (GtkWidget *widget, gboolean previous_separator) + { +@@ -718,6 +745,7 @@ + else + { + gboolean visible = FALSE; ++ gboolean sensitive = FALSE; + gboolean label_set = FALSE; + + g_signal_connect (widget, +@@ -776,16 +804,9 @@ + if (!g_object_get_data (G_OBJECT (widget), "gtk-empty-menu-item") && !GTK_IS_TEAROFF_MENU_ITEM (widget)) + { + visible = gtk_widget_get_visible (widget); ++ sensitive = gtk_widget_get_sensitive (widget); + } + +- dbusmenu_menuitem_property_set_bool (mi, +- DBUSMENU_MENUITEM_PROP_VISIBLE, +- visible); +- +- dbusmenu_menuitem_property_set_bool (mi, +- DBUSMENU_MENUITEM_PROP_ENABLED, +- gtk_widget_get_sensitive (widget)); +- + dbusmenu_menuitem_property_set_shortcut_menuitem (mi, GTK_MENU_ITEM (widget)); + + g_signal_connect (G_OBJECT (widget), +@@ -803,6 +824,9 @@ + + if (action) + { ++ visible = gtk_action_is_visible (action); ++ sensitive = gtk_action_is_sensitive (action); ++ + g_signal_connect_object (action, "notify", + G_CALLBACK (action_notify_cb), + mi, +@@ -811,11 +835,24 @@ + } + } + ++ dbusmenu_menuitem_property_set_bool (mi, ++ DBUSMENU_MENUITEM_PROP_VISIBLE, ++ visible); ++ ++ dbusmenu_menuitem_property_set_bool (mi, ++ DBUSMENU_MENUITEM_PROP_ENABLED, ++ sensitive); ++ + g_signal_connect (G_OBJECT (mi), + DBUSMENU_MENUITEM_SIGNAL_ITEM_ACTIVATED, + G_CALLBACK (item_activated), + widget); + } ++ ++ g_signal_connect (widget, ++ "notify", ++ G_CALLBACK (child_notify_cb), ++ mi); + } + + return mi; +@@ -947,6 +984,9 @@ + + if (!peek) + { ++ g_object_set_data (G_OBJECT (recurse->stack[recurse->count]), ++ "dbusmenu-parent", ++ recurse->stack[recurse->count - 1]); + dbusmenu_menuitem_child_append (recurse->stack[recurse->count - 1], + recurse->stack[recurse->count]); + } +@@ -967,6 +1007,10 @@ + + if (!peek) + { ++ g_object_set_data (G_OBJECT (recurse->stack[recurse->count]), ++ "dbusmenu-parent", ++ recurse->stack[recurse->count - 1]); ++ + dbusmenu_menuitem_child_append (item, recurse->stack[recurse->count]); + } + } +@@ -1290,6 +1334,7 @@ + { + DbusmenuMenuitem *child_dmi = construct_dbusmenu_for_widget (child, FALSE); + ++ g_object_set_data (G_OBJECT (child_dmi), "dbusmenu-parent", mi); + dbusmenu_menuitem_child_add_position (mi, + child_dmi, + position); + --- appmenu-gtk-0.1.9.orig/src/bridge.c +++ appmenu-gtk-0.1.9/src/bridge.c @@ -109,6 +109,9 @@ static GHashTable *rebuild_ids = NULL; + +static gboolean after_startup = FALSE; + static void app_menu_bridge_setup_proxy (AppMenuBridge *bridge) { @@ -673,7 +676,13 @@ { DbusmenuMenuitem *mi = (DbusmenuMenuitem *)data; - if (pspec->name == g_intern_static_string ("active")) + if (pspec->name == g_intern_static_string ("sensitive")) + { + dbusmenu_menuitem_property_set_bool (mi, + DBUSMENU_MENUITEM_PROP_ENABLED, + gtk_action_is_visible (action)); + } + else if (pspec->name == g_intern_static_string ("active")) { dbusmenu_menuitem_property_set_bool (mi, DBUSMENU_MENUITEM_PROP_TOGGLE_STATE, @@ -727,7 +736,7 @@ gtk_check_menu_item_get_active (GTK_CHECK_MENU_ITEM (widget)) ? DBUSMENU_MENUITEM_TOGGLE_STATE_CHECKED : DBUSMENU_MENUITEM_TOGGLE_STATE_UNCHECKED); g_signal_connect (widget, - "toggle", + "activate", G_CALLBACK (checkbox_toggled), mi); } @@ -1224,6 +1233,14 @@ } } +gboolean +startup_timeout (gpointer data) +{ + after_startup = TRUE; + + return FALSE; +} + static void app_menu_bridge_insert (UbuntuMenuProxy *proxy, GtkWidget *parent, @@ -1235,6 +1252,8 @@ GtkWidget *toplevel = NULL; gboolean append = FALSE; + g_idle_add ((GSourceFunc)startup_timeout, NULL); + if (GTK_IS_TEAROFF_MENU_ITEM (child)) return; @@ -1254,10 +1273,30 @@ } else if (GTK_IS_MENU (parent)) { - GtkWidget *attach; + GtkWidget *attach = NULL; + GList *tmp = NULL; + AppWindowContext *context = NULL; g_object_get (parent, "attach-widget", &attach, NULL); + /* First attempt to setup the menuitem immediately if possible. */ + for (tmp = bridge->priv->windows; tmp != NULL; tmp = tmp->next) + { + context = (AppWindowContext *)tmp->data; + + DbusmenuMenuitem *mi = (DbusmenuMenuitem *)g_hash_table_lookup (context->lookup, attach); + + if (mi != NULL) + { + DbusmenuMenuitem *child_dmi = construct_dbusmenu_for_widget (child, FALSE); + + dbusmenu_menuitem_child_add_position (mi, + child_dmi, + position); + return; + } + } + if (attach == NULL) { g_signal_connect (G_OBJECT (parent), @@ -1268,8 +1307,6 @@ } else { - toplevel = gtk_widget_get_toplevel (attach); - rebuild (bridge, toplevel); } } @@ -1305,6 +1342,7 @@ || (g_strcmp0 (prg, "mutter") == 0) || (g_strcmp0 (prg, "firefox-bin") == 0) || (g_strcmp0 (prg, "thunderbird-bin") == 0) + || (g_strcmp0 (prg, "shotwell") == 0) || (g_strcmp0 (prg, "gnome-panel") == 0)) { return TRUE;