aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTed Gould <ted@gould.cx>2012-02-23 00:02:25 -0600
committerTed Gould <ted@gould.cx>2012-02-23 00:02:25 -0600
commit55113b2baf6703debeef34a135260fafeb2b71c8 (patch)
treedd667ac87e007a48c6703763338ffbbc65ac77d4
parent49e45c8b23af0926ec04c50a4ac53068abba21db (diff)
parent8dc3a0013a6fd0d8ab54edf0944f842da751c4e7 (diff)
downloadlibdbusmenu-55113b2baf6703debeef34a135260fafeb2b71c8.tar.gz
libdbusmenu-55113b2baf6703debeef34a135260fafeb2b71c8.tar.bz2
libdbusmenu-55113b2baf6703debeef34a135260fafeb2b71c8.zip
* New upstream release.
* Fix label leak and make it not have disposition (LP: #937829)
-rw-r--r--AUTHORS1
-rw-r--r--ChangeLog28
-rwxr-xr-xconfigure22
-rw-r--r--configure.ac6
-rw-r--r--debian/changelog7
-rw-r--r--docs/libdbusmenu-glib/reference/version.xml2
-rw-r--r--docs/libdbusmenu-gtk/reference/version.xml2
-rw-r--r--libdbusmenu-gtk/genericmenuitem.c30
-rw-r--r--tests/Makefile.am4
-rw-r--r--tests/Makefile.in4
-rw-r--r--tests/test-gtk-submenu-server.c1
11 files changed, 71 insertions, 36 deletions
diff --git a/AUTHORS b/AUTHORS
index c78d4ac..780d1e4 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -1,5 +1,6 @@
# Generated by Makefile. Do not edit.
+ Alberto Mardegan
Alex Launi
Ara Pulido
Aurelien Gateau
diff --git a/ChangeLog b/ChangeLog
index f3dc066..4d97309 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,33 @@
# Generated by Makefile. Do not edit.
+2012-02-22 Ted Gould <ted@gould.cx>
+
+ 0.5.92
+
+2012-02-22 Ted Gould <ted@gould.cx>
+
+ Removing this test as it doesn't work properly with GTK currently
+
+2012-02-22 Ted Gould <ted@gould.cx>
+
+ Ensure labels don't leak and don't contain disposition markup
+
+2012-02-22 Alberto Mardegan <alberto.mardegan@canonical.com>
+
+ Do not leak the label text
+
+ Also, fix the indentation from the previous commit.
+
+2012-02-22 Alberto Mardegan <alberto.mardegan@canonical.com>
+
+ Do not read the label text from the label widget
+
+ The label text stored in the widget might have been modified with markup.
+ Instead of reading it back from the widget, return the text as set by the
+ client, unmodified.
+
+ Alter the test-gtk-submenu so that the correct behaviour is checked for.
+
2012-02-15 Ted Gould <ted@gould.cx>
0.5.91
diff --git a/configure b/configure
index f8587a0..cc1ddad 100755
--- a/configure
+++ b/configure
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.68 for libdbusmenu 0.5.91.
+# Generated by GNU Autoconf 2.68 for libdbusmenu 0.5.92.
#
# Report bugs to <ted@canonical.com>.
#
@@ -572,8 +572,8 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='libdbusmenu'
PACKAGE_TARNAME='libdbusmenu'
-PACKAGE_VERSION='0.5.91'
-PACKAGE_STRING='libdbusmenu 0.5.91'
+PACKAGE_VERSION='0.5.92'
+PACKAGE_STRING='libdbusmenu 0.5.92'
PACKAGE_BUGREPORT='ted@canonical.com'
PACKAGE_URL=''
@@ -1431,7 +1431,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures libdbusmenu 0.5.91 to adapt to many kinds of systems.
+\`configure' configures libdbusmenu 0.5.92 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1501,7 +1501,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of libdbusmenu 0.5.91:";;
+ short | recursive ) echo "Configuration of libdbusmenu 0.5.92:";;
esac
cat <<\_ACEOF
@@ -1650,7 +1650,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-libdbusmenu configure 0.5.91
+libdbusmenu configure 0.5.92
generated by GNU Autoconf 2.68
Copyright (C) 2010 Free Software Foundation, Inc.
@@ -2021,7 +2021,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by libdbusmenu $as_me 0.5.91, which was
+It was created by libdbusmenu $as_me 0.5.92, which was
generated by GNU Autoconf 2.68. Invocation command line was
$ $0 $@
@@ -2842,7 +2842,7 @@ fi
# Define the identity of the package.
PACKAGE=libdbusmenu
- VERSION=0.5.91
+ VERSION=0.5.92
# Some tools Automake needs.
@@ -14398,7 +14398,7 @@ fi
###########################
LIBDBUSMENU_CURRENT=4
-LIBDBUSMENU_REVISION=8
+LIBDBUSMENU_REVISION=9
LIBDBUSMENU_AGE=0
@@ -15752,7 +15752,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by libdbusmenu $as_me 0.5.91, which was
+This file was extended by libdbusmenu $as_me 0.5.92, which was
generated by GNU Autoconf 2.68. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -15818,7 +15818,7 @@ _ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
-libdbusmenu config.status 0.5.91
+libdbusmenu config.status 0.5.92
configured by $0, generated by GNU Autoconf 2.68,
with options \\"\$ac_cs_config\\"
diff --git a/configure.ac b/configure.ac
index aef35a0..274875f 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,11 +1,11 @@
-AC_INIT(libdbusmenu, 0.5.91, ted@canonical.com)
+AC_INIT(libdbusmenu, 0.5.92, ted@canonical.com)
AC_COPYRIGHT([Copyright 2009,2010 Canonical])
AC_PREREQ(2.62)
AM_CONFIG_HEADER(config.h)
-AM_INIT_AUTOMAKE(libdbusmenu, 0.5.91, [-Wno-portability])
+AM_INIT_AUTOMAKE(libdbusmenu, 0.5.92, [-Wno-portability])
AM_MAINTAINER_MODE
@@ -165,7 +165,7 @@ AC_PATH_PROG([XSLT_PROC], [xsltproc])
###########################
LIBDBUSMENU_CURRENT=4
-LIBDBUSMENU_REVISION=8
+LIBDBUSMENU_REVISION=9
LIBDBUSMENU_AGE=0
AC_SUBST(LIBDBUSMENU_CURRENT)
diff --git a/debian/changelog b/debian/changelog
index ffc6e0b..75ed4dc 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,10 @@
+libdbusmenu (0.5.92-0ubuntu1~ppa1) UNRELEASED; urgency=low
+
+ * New upstream release.
+ * Fix label leak and make it not have disposition (LP: #937829)
+
+ -- Ted Gould <ted@ubuntu.com> Thu, 23 Feb 2012 00:01:52 -0600
+
libdbusmenu (0.5.91-0ubuntu1~ppa1) precise; urgency=low
* New upstream release.
diff --git a/docs/libdbusmenu-glib/reference/version.xml b/docs/libdbusmenu-glib/reference/version.xml
index 9a44f03..83cc3a0 100644
--- a/docs/libdbusmenu-glib/reference/version.xml
+++ b/docs/libdbusmenu-glib/reference/version.xml
@@ -1 +1 @@
-0.5.91
+0.5.92
diff --git a/docs/libdbusmenu-gtk/reference/version.xml b/docs/libdbusmenu-gtk/reference/version.xml
index 9a44f03..83cc3a0 100644
--- a/docs/libdbusmenu-gtk/reference/version.xml
+++ b/docs/libdbusmenu-gtk/reference/version.xml
@@ -1 +1 @@
-0.5.91
+0.5.92
diff --git a/libdbusmenu-gtk/genericmenuitem.c b/libdbusmenu-gtk/genericmenuitem.c
index 098de67..435c808 100644
--- a/libdbusmenu-gtk/genericmenuitem.c
+++ b/libdbusmenu-gtk/genericmenuitem.c
@@ -43,6 +43,7 @@ struct _GenericmenuitemPrivate {
GenericmenuitemCheckType check_type;
GenericmenuitemState state;
GenericmenuitemDisposition disposition;
+ gchar * label_text;
};
/* Private macro */
@@ -106,6 +107,7 @@ genericmenuitem_init (Genericmenuitem *self)
self->priv->check_type = GENERICMENUITEM_CHECK_TYPE_NONE;
self->priv->state = GENERICMENUITEM_STATE_UNCHECKED;
self->priv->disposition = GENERICMENUITEM_DISPOSITION_NORMAL;
+ self->priv->label_text = NULL;
return;
}
@@ -123,6 +125,8 @@ genericmenuitem_dispose (GObject *object)
static void
genericmenuitem_finalize (GObject *object)
{
+ Genericmenuitem * self = GENERICMENUITEM(object);
+ g_free(self->priv->label_text);
G_OBJECT_CLASS (genericmenuitem_parent_class)->finalize (object);
return;
@@ -205,6 +209,12 @@ set_label (GtkMenuItem * menu_item, const gchar * in_label)
{
if (in_label == NULL) return;
+ Genericmenuitem * item = GENERICMENUITEM(menu_item);
+ if (in_label != item->priv->label_text) {
+ g_free(item->priv->label_text);
+ item->priv->label_text = g_strdup(in_label);
+ }
+
/* Build a label that might include the colors of the disposition
so that it gets rendered in the menuitem. */
gchar * local_label = NULL;
@@ -308,25 +318,9 @@ set_label (GtkMenuItem * menu_item, const gchar * in_label)
static const gchar *
get_label (GtkMenuItem * menu_item)
{
- GtkWidget * child = gtk_bin_get_child(GTK_BIN(menu_item));
- GtkLabel * labelw = NULL;
-
- /* Try to find if we have a label already */
- if (child != NULL) {
- if (GTK_IS_LABEL(child)) {
- /* We've got a label, let's update it. */
- labelw = GTK_LABEL(child);
- } else if (GTK_IS_BOX(child)) {
- /* Look for the label in the box */
- gtk_container_foreach(GTK_CONTAINER(child), set_label_helper, &labelw);
- }
- }
-
- if (labelw != NULL) {
- return gtk_label_get_label(labelw);
- }
+ Genericmenuitem * item = GENERICMENUITEM(menu_item);
- return NULL;
+ return item->priv->label_text;
}
/* Make sure we don't toggle when there is an
diff --git a/tests/Makefile.am b/tests/Makefile.am
index db2d469..6824c1c 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -25,8 +25,10 @@ TESTS += \
test-gtk-label \
test-gtk-shortcut \
test-gtk-reorder \
- test-gtk-submenu \
test-gtk-parser-test
+# Not working with GTK3 and a critical grab that is in
+# the GTK3 code.
+# test-gtk-submenu
endif
# The Python test only work on the system copy of
diff --git a/tests/Makefile.in b/tests/Makefile.in
index bd0e43f..91c60fd 100644
--- a/tests/Makefile.in
+++ b/tests/Makefile.in
@@ -48,7 +48,6 @@ TESTS = test-glib-objects-test test-glib-events test-glib-layout \
@WANT_LIBDBUSMENUGTK_TRUE@ test-gtk-label \
@WANT_LIBDBUSMENUGTK_TRUE@ test-gtk-shortcut \
@WANT_LIBDBUSMENUGTK_TRUE@ test-gtk-reorder \
-@WANT_LIBDBUSMENUGTK_TRUE@ test-gtk-submenu \
@WANT_LIBDBUSMENUGTK_TRUE@ test-gtk-parser-test
check_PROGRAMS = glib-server-nomenu$(EXEEXT) \
@@ -689,6 +688,9 @@ EXTRA_DIST = test-glib-simple-items.py test-gtk-shortcut-client.py \
dbusmenu-gtk/mago_tests/data/static.json \
dbusmenu-gtk/mago_tests/data/test-gtk-label.json \
test-json-01.json
+# Not working with GTK3 and a critical grab that is in
+# the GTK3 code.
+# test-gtk-submenu
# The Python test only work on the system copy of
# dbusmenu, so while they can be usefule they're not
diff --git a/tests/test-gtk-submenu-server.c b/tests/test-gtk-submenu-server.c
index 9c4d7d4..1d38a44 100644
--- a/tests/test-gtk-submenu-server.c
+++ b/tests/test-gtk-submenu-server.c
@@ -64,6 +64,7 @@ on_bus (GDBusConnection * connection, const gchar * name, gpointer user_data)
DbusmenuMenuitem * item;
item = add_item(root, "Folder 1");
+ dbusmenu_menuitem_property_set(item, "disposition", "alert");
add_item(item, "1.1");
add_item(item, "1.2");
add_item(item, "1.3");