diff options
Diffstat (limited to 'debian/patches')
-rw-r--r-- | debian/patches/disconnect-more-signals.patch | 18 | ||||
-rw-r--r-- | debian/patches/fix-defaults-in-client.patch | 65 | ||||
-rw-r--r-- | debian/patches/series | 2 |
3 files changed, 85 insertions, 0 deletions
diff --git a/debian/patches/disconnect-more-signals.patch b/debian/patches/disconnect-more-signals.patch new file mode 100644 index 0000000..653d32c --- /dev/null +++ b/debian/patches/disconnect-more-signals.patch @@ -0,0 +1,18 @@ +=== modified file 'libdbusmenu-gtk/parser.c' +Index: libdbusmenu-0.3.99/libdbusmenu-gtk/parser.c +=================================================================== +--- libdbusmenu-0.3.99.orig/libdbusmenu-gtk/parser.c 2011-02-28 10:09:40.907065942 -0500 ++++ libdbusmenu-0.3.99/libdbusmenu-gtk/parser.c 2011-02-28 10:09:43.037065942 -0500 +@@ -129,6 +129,12 @@ + if (pdata != NULL && pdata->widget != NULL) { + g_signal_handlers_disconnect_matched(pdata->widget, (GSignalMatchType)G_SIGNAL_MATCH_FUNC, + 0, 0, NULL, G_CALLBACK(widget_notify_cb), NULL); ++ g_signal_handlers_disconnect_matched(pdata->widget, (GSignalMatchType)G_SIGNAL_MATCH_FUNC, ++ 0, 0, NULL, G_CALLBACK(accel_changed), NULL); ++ g_signal_handlers_disconnect_matched(pdata->widget, (GSignalMatchType)G_SIGNAL_MATCH_FUNC, ++ 0, 0, NULL, G_CALLBACK(checkbox_toggled), NULL); ++ g_signal_handlers_disconnect_matched(pdata->widget, (GSignalMatchType)G_SIGNAL_MATCH_FUNC, ++ 0, 0, NULL, G_CALLBACK(menuitem_notify_cb), NULL); + g_object_remove_weak_pointer(G_OBJECT(pdata->widget), (gpointer*)&pdata->widget); + } + diff --git a/debian/patches/fix-defaults-in-client.patch b/debian/patches/fix-defaults-in-client.patch new file mode 100644 index 0000000..a299b32 --- /dev/null +++ b/debian/patches/fix-defaults-in-client.patch @@ -0,0 +1,65 @@ +=== modified file 'libdbusmenu-glib/menuitem.c' +Index: libdbusmenu-0.3.99/libdbusmenu-glib/menuitem.c +=================================================================== +--- libdbusmenu-0.3.99.orig/libdbusmenu-glib/menuitem.c 2011-02-25 03:30:16 +0000 ++++ libdbusmenu-0.3.99/libdbusmenu-glib/menuitem.c 2011-02-28 22:51:34 +0000 +@@ -1150,9 +1150,9 @@ + DbusmenuMenuitemPrivate * priv = DBUSMENU_MENUITEM_GET_PRIVATE(mi); + GVariant * default_value = NULL; + ++ const gchar * type = menuitem_get_type(mi); ++ + if (value != NULL) { +- const gchar * type = menuitem_get_type(mi); +- + /* Check the expected type to see if we want to have a warning */ + GVariantType * default_type = dbusmenu_defaults_default_get_type(priv->defaults, type, property); + if (default_type != NULL) { +@@ -1163,22 +1163,23 @@ + g_warning("Setting menuitem property '%s' with value of type '%s' when expecting '%s'", property, g_variant_get_type_string(value), g_variant_type_peek_string(default_type)); + } + } ++ } + +- /* Check the defaults database to see if we have a default +- for this property. */ +- default_value = dbusmenu_defaults_default_get(priv->defaults, type, property); +- if (default_value != NULL) { +- /* Now see if we're setting this to the same value as the +- default. If we are then we just want to swallow this variant +- and make the function behave like we're clearing it. */ +- if (g_variant_equal(default_value, value)) { +- g_variant_ref_sink(value); +- g_variant_unref(value); +- value = NULL; +- } ++ /* Check the defaults database to see if we have a default ++ for this property. */ ++ default_value = dbusmenu_defaults_default_get(priv->defaults, type, property); ++ if (default_value != NULL && value != NULL) { ++ /* Now see if we're setting this to the same value as the ++ default. If we are then we just want to swallow this variant ++ and make the function behave like we're clearing it. */ ++ if (g_variant_equal(default_value, value)) { ++ g_variant_ref_sink(value); ++ g_variant_unref(value); ++ value = NULL; + } + } + ++ + gboolean replaced = FALSE; + gpointer currentval = g_hash_table_lookup(priv->properties, property); + +@@ -1371,9 +1372,7 @@ + g_return_if_fail(DBUSMENU_IS_MENUITEM(mi)); + g_return_if_fail(property != NULL); + +- DbusmenuMenuitemPrivate * priv = DBUSMENU_MENUITEM_GET_PRIVATE(mi); +- +- g_hash_table_remove(priv->properties, property); ++ dbusmenu_menuitem_property_set_variant(mi, property, NULL); + + return; + } + diff --git a/debian/patches/series b/debian/patches/series new file mode 100644 index 0000000..ab2b338 --- /dev/null +++ b/debian/patches/series @@ -0,0 +1,2 @@ +disconnect-more-signals.patch +fix-defaults-in-client.patch |