Code

add listener to root for fit canvas changes
authoracspike <acspike@users.sourceforge.net>
Tue, 25 Apr 2006 03:32:08 +0000 (03:32 +0000)
committeracspike <acspike@users.sourceforge.net>
Tue, 25 Apr 2006 03:32:08 +0000 (03:32 +0000)
src/ui/dialog/document-properties.cpp

index c837c71937e46cfa2f77a2fbae1ad828fef560c6..09e9173ed9e3c7211a75bcdf5116ad794b46343b 100644 (file)
@@ -112,6 +112,8 @@ DocumentProperties::init()
 
     Inkscape::XML::Node *repr = SP_OBJECT_REPR(sp_desktop_namedview(SP_ACTIVE_DESKTOP));
     repr->addListener (&_repr_events, this);
+    Inkscape::XML::Node *root = SP_OBJECT_REPR(sp_desktop_document(SP_ACTIVE_DESKTOP)->root);
+    root->addListener (&_repr_events, this);
 
     _doc_replaced_connection = SP_ACTIVE_DESKTOP->connectDocumentReplaced (sigc::ptr_fun (on_doc_replaced));
 
@@ -129,6 +131,8 @@ DocumentProperties::~DocumentProperties()
 {
     Inkscape::XML::Node *repr = SP_OBJECT_REPR(sp_desktop_namedview(SP_ACTIVE_DESKTOP));
     repr->removeListenerByData (this);
+    Inkscape::XML::Node *root = SP_OBJECT_REPR(sp_desktop_document(SP_ACTIVE_DESKTOP)->root);
+    root->removeListenerByData (this);
     _doc_replaced_connection.disconnect();
 }
 
@@ -466,6 +470,8 @@ on_activate_desktop (Inkscape::Application *, SPDesktop* dt, void*)
 
     Inkscape::XML::Node *repr = SP_OBJECT_REPR(sp_desktop_namedview(SP_ACTIVE_DESKTOP));
     repr->addListener (&_repr_events, _instance);
+    Inkscape::XML::Node *root = SP_OBJECT_REPR(sp_desktop_document(SP_ACTIVE_DESKTOP)->root);
+    root->addListener (&_repr_events, _instance);
     _instance->_doc_replaced_connection = SP_ACTIVE_DESKTOP->connectDocumentReplaced (sigc::ptr_fun (on_doc_replaced));
     _instance->update();
 }
@@ -478,6 +484,8 @@ on_deactivate_desktop (Inkscape::Application *, SPDesktop* dt, void*)
 
     Inkscape::XML::Node *repr = SP_OBJECT_REPR(sp_desktop_namedview(SP_ACTIVE_DESKTOP));
     repr->removeListenerByData (_instance);
+    Inkscape::XML::Node *root = SP_OBJECT_REPR(sp_desktop_document(SP_ACTIVE_DESKTOP)->root);
+    root->removeListenerByData (_instance);
     _instance->_doc_replaced_connection.disconnect();
 }
 
@@ -489,6 +497,8 @@ on_doc_replaced (SPDesktop* dt, SPDocument* doc)
 
     Inkscape::XML::Node *repr = SP_OBJECT_REPR(sp_desktop_namedview(dt));
     repr->addListener (&_repr_events, _instance);
+    Inkscape::XML::Node *root = SP_OBJECT_REPR(doc->root);
+    root->addListener (&_repr_events, _instance);
     _instance->update();
 }