summaryrefslogtreecommitdiffstats
path: root/src/extension/dbus/document-interface.cpp
diff options
context:
space:
mode:
authorSoren Berg <glimmer07@gmail.com>2009-07-22 22:40:00 +0000
committerglimmer07 <glimmer07@users.sourceforge.net>2009-07-22 22:40:00 +0000
commit9a8f192eab6f5ee7591be8ce25c48fe142809663 (patch)
treead5cdf2da2fb82d71cea3ffd8bc6a3e0aa5f9903 /src/extension/dbus/document-interface.cpp
parentFixed GErrors. (diff)
downloadinkscape-9a8f192eab6f5ee7591be8ce25c48fe142809663.tar.gz
inkscape-9a8f192eab6f5ee7591be8ce25c48fe142809663.zip
Experimental pause updating scheme.
(bzr r8254.1.20)
Diffstat (limited to 'src/extension/dbus/document-interface.cpp')
-rw-r--r--src/extension/dbus/document-interface.cpp49
1 files changed, 36 insertions, 13 deletions
diff --git a/src/extension/dbus/document-interface.cpp b/src/extension/dbus/document-interface.cpp
index 664655f0e..76eeec509 100644
--- a/src/extension/dbus/document-interface.cpp
+++ b/src/extension/dbus/document-interface.cpp
@@ -161,8 +161,8 @@ finish_create_shape (DocumentInterface *object, GError **error, Inkscape::XML::N
if (object->updates)
sp_document_done(sp_desktop_document(object->desk), 0, (gchar *)desc);
- else
- document_interface_pause_updates(object, error);
+ //else
+ //document_interface_pause_updates(object, error);
return strdup(newNode->attribute("id"));
}
@@ -178,10 +178,13 @@ dbus_call_verb (DocumentInterface *object, int verbid, GError **error)
if ( verb ) {
SPAction *action = verb->get_action(desk2);
if ( action ) {
+ //if (!object->updates)
+ //document_interface_pause_updates (object, error);
sp_action_perform( action, NULL );
- if (object->updates) {
+ if (object->updates)
sp_document_done(sp_desktop_document(desk2), verb->get_code(), g_strdup(verb->get_tip()));
- }
+ //if (!object->updates)
+ //document_interface_pause_updates (object, error);
return TRUE;
}
}
@@ -433,8 +436,8 @@ document_interface_node (DocumentInterface *object, gchar *type, GError **error)
if (object->updates)
sp_document_done(sp_desktop_document(object->desk), 0, (gchar *)"created empty node");
- else
- document_interface_pause_updates(object, error);
+ //else
+ //document_interface_pause_updates(object, error);
return strdup(newNode->attribute("id"));
}
@@ -699,6 +702,7 @@ document_interface_get_node_coordinates (DocumentInterface *object, gchar *shape
Geom::parse_svg_path (path);
return NULL;
*/
+ return NULL;
}
@@ -813,16 +817,22 @@ void
document_interface_pause_updates (DocumentInterface *object, GError **error)
{
object->updates = FALSE;
- sp_desktop_document(object->desk)->root->uflags = FALSE;
- sp_desktop_document(object->desk)->root->mflags = FALSE;
+ object->desk->canvas->drawing_disabled = 1;
+ //object->desk->canvas->need_redraw = 0;
+ //object->desk->canvas->need_repick = 0;
+ //sp_desktop_document(object->desk)->root->uflags = FALSE;
+ //sp_desktop_document(object->desk)->root->mflags = FALSE;
}
void
document_interface_resume_updates (DocumentInterface *object, GError **error)
{
object->updates = TRUE;
- sp_desktop_document(object->desk)->root->uflags = TRUE;
- sp_desktop_document(object->desk)->root->mflags = TRUE;
+ object->desk->canvas->drawing_disabled = 0;
+ //object->desk->canvas->need_redraw = 1;
+ //object->desk->canvas->need_repick = 1;
+ //sp_desktop_document(object->desk)->root->uflags = TRUE;
+ //sp_desktop_document(object->desk)->root->mflags = TRUE;
//sp_desktop_document(object->desk)->_updateDocument();
//FIXME: use better verb than rect.
sp_document_done(sp_desktop_document(object->desk), SP_VERB_CONTEXT_RECT, "Multiple actions");
@@ -833,7 +843,9 @@ document_interface_update (DocumentInterface *object, GError **error)
{
sp_desktop_document(object->desk)->root->uflags = TRUE;
sp_desktop_document(object->desk)->root->mflags = TRUE;
+ object->desk->enableInteraction();
sp_desktop_document(object->desk)->_updateDocument();
+ object->desk->disableInteraction();
sp_desktop_document(object->desk)->root->uflags = FALSE;
sp_desktop_document(object->desk)->root->mflags = FALSE;
//sp_document_done(sp_desktop_document(object->desk), SP_VERB_CONTEXT_RECT, "Multiple actions");
@@ -989,12 +1001,23 @@ document_interface_selection_copy (DocumentInterface *object, GError **error)
//sp_selection_copy ();
return dbus_call_verb (object, SP_VERB_EDIT_COPY, error);
}
-
+/*
+gboolean
+document_interface_selection_paste (DocumentInterface *object, GError **error)
+{
+ desktop_ensure_active (object->desk);
+ if (!object->updates)
+ document_interface_pause_updates (object, error);
+ sp_selection_paste (object->desk, TRUE);
+ if (!object->updates)
+ document_interface_pause_updates (object, error);
+ return TRUE;
+ //return dbus_call_verb (object, SP_VERB_EDIT_PASTE, error);
+}
+*/
gboolean
document_interface_selection_paste (DocumentInterface *object, GError **error)
{
- //desktop_ensure_active (object->desk);
- //sp_selection_paste (object->desk, TRUE);
return dbus_call_verb (object, SP_VERB_EDIT_PASTE, error);
}