summaryrefslogtreecommitdiffstats
path: root/src/sp-offset.cpp
diff options
context:
space:
mode:
authorMenTaLguY <mental@rydia.net>2006-07-28 03:18:31 +0000
committermental <mental@users.sourceforge.net>2006-07-28 03:18:31 +0000
commite242e4718fa5978104fb0fb018c3f4cb8a771d8f (patch)
treef033d7bea2454430ae5f832e5f9c5c147d6fd46d /src/sp-offset.cpp
parentswitch to sigc++ SPObject signals for SPShape (diff)
downloadinkscape-e242e4718fa5978104fb0fb018c3f4cb8a771d8f.tar.gz
inkscape-e242e4718fa5978104fb0fb018c3f4cb8a771d8f.zip
switch to sigc++ SPObject signals for SPOffset
(bzr r1496)
Diffstat (limited to '')
-rw-r--r--src/sp-offset.cpp11
1 files changed, 9 insertions, 2 deletions
diff --git a/src/sp-offset.cpp b/src/sp-offset.cpp
index 6aead7a54..2253bf1e1 100644
--- a/src/sp-offset.cpp
+++ b/src/sp-offset.cpp
@@ -179,6 +179,7 @@ sp_offset_init(SPOffset *offset)
offset->sourceHref = NULL;
offset->sourceRepr = NULL;
offset->sourceObject = NULL;
+ new (&offset->_modified_connection) sigc::connection();
new (&offset->_delete_connection) sigc::connection();
new (&offset->_changed_connection) sigc::connection();
new (&offset->_transformed_connection) sigc::connection();
@@ -196,8 +197,14 @@ sp_offset_finalize(GObject *obj)
SPOffset *offset = (SPOffset *) obj;
delete offset->sourceRef;
+
+ offset->_modified_connection.disconnect();
+ offset->_modified_connection.~connection();
+ offset->_delete_connection.disconnect();
offset->_delete_connection.~connection();
+ offset->_changed_connection.disconnect();
offset->_changed_connection.~connection();
+ offset->_transformed_connection.disconnect();
offset->_transformed_connection.~connection();
}
@@ -1057,7 +1064,7 @@ static void sp_offset_start_listening(SPOffset *offset,SPObject* to)
offset->_delete_connection = SP_OBJECT(to)->connectDelete(sigc::bind(sigc::ptr_fun(&sp_offset_delete_self), offset));
offset->_transformed_connection = SP_ITEM(to)->connectTransformed(sigc::bind(sigc::ptr_fun(&sp_offset_move_compensate), offset));
- offset->_modified_connection = g_signal_connect (G_OBJECT (to), "modified", G_CALLBACK (sp_offset_source_modified), offset);
+ offset->_modified_connection = SP_OBJECT(to)->connectModified(sigc::bind<2>(sigc::ptr_fun(&sp_offset_source_modified), offset));
}
static void sp_offset_quit_listening(SPOffset *offset)
@@ -1065,7 +1072,7 @@ static void sp_offset_quit_listening(SPOffset *offset)
if ( offset->sourceObject == NULL )
return;
- g_signal_handler_disconnect (offset->sourceObject, offset->_modified_connection);
+ offset->_modified_connection.disconnect();
offset->_delete_connection.disconnect();
offset->_transformed_connection.disconnect();