X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=src%2Fdesktop.cpp;h=722aa81e9b61e2bf71324e04ee297eab224bd610;hb=365f2236242bf03b32354eccb0392b02cd40ad15;hp=189ab9866c6a4148596ed15637585cea1a5d8340;hpb=40e293484b1aa3e95dc866d5d2ef298c3cba243a;p=inkscape.git diff --git a/src/desktop.cpp b/src/desktop.cpp index 189ab9866..722aa81e9 100644 --- a/src/desktop.cpp +++ b/src/desktop.cpp @@ -8,7 +8,9 @@ * MenTaLguY * bulia byak * Ralf Stephan + * John Bintz * + * Copyright (C) 2006 John Bintz * Copyright (C) 2004 MenTaLguY * Copyright (C) 1999-2002 Lauris Kaplinski * Copyright (C) 2000-2001 Ximian, Inc. @@ -77,6 +79,7 @@ #include "xml/repr.h" #include "message-context.h" #include "layer-manager.h" +#include "event-log.h" namespace Inkscape { namespace XML { class Node; }} @@ -285,6 +288,10 @@ SPDesktop::init (SPNamedView *nv, SPCanvas *aCanvas) /* setup LayerManager */ // (Setting up after the connections are all in place, as it may use some of them) layer_manager = new Inkscape::LayerManager( this ); + + /* setup EventLog */ + event_log = new Inkscape::EventLog(document); + document->addUndoObserver(*event_log); } @@ -295,6 +302,13 @@ void SPDesktop::destroy() _sel_modified_connection.disconnect(); _sel_changed_connection.disconnect(); _modified_connection.disconnect(); + _commit_connection.disconnect(); + _reconstruction_start_connection.disconnect(); + _reconstruction_finish_connection.disconnect(); + + g_signal_handlers_disconnect_by_func(G_OBJECT (acetate), (gpointer) G_CALLBACK(sp_desktop_root_handler), this); + g_signal_handlers_disconnect_by_func(G_OBJECT (main), (gpointer) G_CALLBACK(sp_desktop_root_handler), this); + g_signal_handlers_disconnect_by_func(G_OBJECT (drawing), (gpointer) G_CALLBACK(_arena_handler), this); while (event_context) { SPEventContext *ec = event_context; @@ -319,8 +333,6 @@ void SPDesktop::destroy() delete _guides_message_context; _guides_message_context = NULL; - _modified_connection.disconnect(); - g_list_free (zooms_past); g_list_free (zooms_future); } @@ -1028,6 +1040,17 @@ SPDesktop::updateNow() sp_canvas_update_now(canvas); } +void +SPDesktop::enableInteraction() +{ + _widget->enableInteraction(); +} + +void SPDesktop::disableInteraction() +{ + _widget->disableInteraction(); +} + //---------------------------------------------------------------------- // Callback implementations. The virtual ones are connected by the view. @@ -1054,6 +1077,12 @@ SPDesktop::onRedrawRequested () } } +void +SPDesktop::updateCanvasNow() +{ + _widget->requestCanvasUpdateAndWait(); +} + /** * Associate document with desktop. */