diff options
| author | MenTaLguY <mental@rydia.net> | 2006-05-21 20:36:01 +0000 |
|---|---|---|
| committer | mental <mental@users.sourceforge.net> | 2006-05-21 20:36:01 +0000 |
| commit | 3c2f8189a5e834c1f2aa53230da69b97e3171e81 (patch) | |
| tree | dbe4a4990e825f065273954e6aaaaefd994cd736 /src/gc.cpp | |
| parent | remove unnecessary casts which didn't compile on old versions of FreeType (diff) | |
| download | inkscape-3c2f8189a5e834c1f2aa53230da69b97e3171e81.tar.gz inkscape-3c2f8189a5e834c1f2aa53230da69b97e3171e81.zip | |
call GC::request_early_collection() after switching preview images
(bzr r923)
Diffstat (limited to 'src/gc.cpp')
| -rw-r--r-- | src/gc.cpp | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/src/gc.cpp b/src/gc.cpp index 7333b4641..8d89de26a 100644 --- a/src/gc.cpp +++ b/src/gc.cpp @@ -12,6 +12,8 @@ #include "gc-core.h" #include <stdexcept> #include <glib/gmessages.h> +#include <sigc++/functors/ptr_fun.h> +#include <glibmm/main.h> namespace Inkscape { namespace GC { @@ -264,6 +266,26 @@ void Core::init() { _ops.do_init(); } + +namespace { + +bool collection_requested=false; +bool collection_task() { + Core::gcollect(); + Core::gcollect(); + collection_requested=false; + return false; +} + +} + +void request_early_collection() { + if (!collection_requested) { + collection_requested=true; + Glib::signal_idle().connect(sigc::ptr_fun(&collection_task)); + } +} + } } |
