X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=src%2Fdialogs%2Fobject-attributes.cpp;h=f6369f39ad306a87acf892d0712786da6223b84f;hb=6d7d846dbf27d17b82110d99015a85cff809a789;hp=05370d1d025ad1de1c6c472cd1dd77984e9ab8f0;hpb=6b15695578f07a3f72c4c9475c1a261a3021472a;p=inkscape.git diff --git a/src/dialogs/object-attributes.cpp b/src/dialogs/object-attributes.cpp index 05370d1d0..f6369f39a 100644 --- a/src/dialogs/object-attributes.cpp +++ b/src/dialogs/object-attributes.cpp @@ -21,6 +21,10 @@ #include "sp-anchor.h" #include "sp-attribute-widget.h" +#include +#include +#include + struct SPAttrDesc { gchar const *label; gchar const *attribute; @@ -55,7 +59,7 @@ static const SPAttrDesc image_desc[] = { static void -object_released (GtkObject *object, GtkWidget *widget) +object_released (SPObject *object, GtkWidget *widget) { gtk_widget_destroy (widget); } @@ -65,14 +69,16 @@ object_released (GtkObject *object, GtkWidget *widget) static void window_destroyed (GtkObject *window, GtkObject *object) { - sp_signal_disconnect_by_data (object, window); + sigc::connection *release_connection = (sigc::connection *)g_object_get_data(G_OBJECT(window), "release_connection"); + release_connection->disconnect(); + delete release_connection; } static void -sp_object_attr_show_dialog ( SPObject *object, - const SPAttrDesc *desc, +sp_object_attr_show_dialog ( SPObject *object, + const SPAttrDesc *desc, const gchar *tag ) { const gchar **labels, **attrs; @@ -91,7 +97,7 @@ sp_object_attr_show_dialog ( SPObject *object, attrs[i] = desc[i].attribute; } - title = g_strdup_printf (_("%s attributes"), tag); + title = g_strdup_printf (_("%s Properties"), tag); w = sp_window_new (title, TRUE); g_free (title); @@ -99,11 +105,12 @@ sp_object_attr_show_dialog ( SPObject *object, gtk_widget_show (t); gtk_container_add (GTK_CONTAINER (w), t); - g_signal_connect ( G_OBJECT (w), "destroy", + g_signal_connect ( G_OBJECT (w), "destroy", G_CALLBACK (window_destroyed), object ); - - g_signal_connect ( G_OBJECT (object), "release", - G_CALLBACK (object_released), w ); + + sigc::connection *release_connection = new sigc::connection(); + *release_connection = object->connectRelease(sigc::bind<1>(sigc::ptr_fun(&object_released), w)); + g_object_set_data(G_OBJECT(w), "release_connection", release_connection); gtk_widget_show (w);