diff options
| author | John Bintz <me@johnbintz.com> | 2006-07-23 04:31:19 +0000 |
|---|---|---|
| committer | johncoswell <johncoswell@users.sourceforge.net> | 2006-07-23 04:31:19 +0000 |
| commit | 23a89f90650bd91d1e975deb80ea5e535af89cfe (patch) | |
| tree | 4df6ae2bcc4540638016fc27d9e7ae24b56a4a98 /src/desktop.cpp | |
| parent | Forced redraw of canvas upon document commit to work around event starvation ... (diff) | |
| download | inkscape-23a89f90650bd91d1e975deb80ea5e535af89cfe.tar.gz inkscape-23a89f90650bd91d1e975deb80ea5e535af89cfe.zip | |
added SPDesktop::updateNow() and forced redraw of canvas upon completion of selection or panning to work around event starvation issue at
high zoom levels
(bzr r1459)
Diffstat (limited to 'src/desktop.cpp')
| -rw-r--r-- | src/desktop.cpp | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/src/desktop.cpp b/src/desktop.cpp index cbd5ffa60..b41862704 100644 --- a/src/desktop.cpp +++ b/src/desktop.cpp @@ -49,6 +49,7 @@ #endif #include <glibmm/i18n.h> +#include <sigc++/functors/mem_fun.h> #include "macros.h" #include "inkscape-private.h" @@ -249,7 +250,7 @@ SPDesktop::init (SPNamedView *nv, SPCanvas *aCanvas) document->connectReconstructionFinish(sigc::bind(sigc::ptr_fun(_reconstruction_finish), this)); _reconstruction_old_layer_id = NULL; - _commit_connection = document->connectCommit(sigc::bind(sigc::ptr_fun(&sp_canvas_update_now), this->canvas)); + _commit_connection = document->connectCommit(sigc::mem_fun(*this, &SPDesktop::updateNow)); // ? // sp_active_desktop_set (desktop); @@ -1021,6 +1022,12 @@ SPDesktop::emitToolSubselectionChanged(gpointer data) inkscape_subselection_changed (this); } +void +SPDesktop::updateNow() +{ + sp_canvas_update_now(canvas); +} + //---------------------------------------------------------------------- // Callback implementations. The virtual ones are connected by the view. @@ -1070,7 +1077,7 @@ SPDesktop::setDocument (SPDocument *doc) _layer_hierarchy->setTop(SP_DOCUMENT_ROOT(doc)); _commit_connection.disconnect(); - _commit_connection = doc->connectCommit(sigc::bind(sigc::ptr_fun(&sp_canvas_update_now), this->canvas)); + _commit_connection = doc->connectCommit(sigc::mem_fun(*this, &SPDesktop::updateNow)); /// \todo fixme: This condition exists to make sure the code /// inside is called only once on initialization. But there |
