diff options
| author | Marc Jeanmougin <marc@jeanmougin.fr> | 2015-04-27 23:25:25 +0000 |
|---|---|---|
| committer | Marc Jeanmougin <mc@M0nst3r.bouyguesbox.fr> | 2015-04-27 23:25:25 +0000 |
| commit | 2a3d0b2487258be3f1b7aa8b4dea9ead84086743 (patch) | |
| tree | 6c0c9efdbbdcb146d118989c19779b1278ab7278 /src/extension/implementation | |
| parent | removed a few useless SP_OBJECT() casts (diff) | |
| parent | add two files omitted in patch at revision 14062 (diff) | |
| download | inkscape-2a3d0b2487258be3f1b7aa8b4dea9ead84086743.tar.gz inkscape-2a3d0b2487258be3f1b7aa8b4dea9ead84086743.zip | |
merge with trunk
(bzr r13922.1.18)
Diffstat (limited to 'src/extension/implementation')
| -rw-r--r-- | src/extension/implementation/script.cpp | 5 | ||||
| -rw-r--r-- | src/extension/implementation/script.h | 2 |
2 files changed, 5 insertions, 2 deletions
diff --git a/src/extension/implementation/script.cpp b/src/extension/implementation/script.cpp index 5c708cf9a..5cab3a2b2 100644 --- a/src/extension/implementation/script.cpp +++ b/src/extension/implementation/script.cpp @@ -1026,7 +1026,10 @@ int Script::execute (const std::list<std::string> &in_command, return 0; } - _main_loop = Glib::MainLoop::create(false); + // Create a new MainContext for the loop so that the original context sources are not run here, + // this enforces that only the file_listeners should be read in this new MainLoop + Glib::RefPtr<Glib::MainContext> _main_context = Glib::MainContext::create(); + _main_loop = Glib::MainLoop::create(_main_context, false); file_listener fileerr; fileout.init(stdout_pipe, _main_loop); diff --git a/src/extension/implementation/script.h b/src/extension/implementation/script.h index 6a7d0c3b8..4cf33c989 100644 --- a/src/extension/implementation/script.h +++ b/src/extension/implementation/script.h @@ -90,7 +90,7 @@ private: void init (int fd, Glib::RefPtr<Glib::MainLoop> main) { _channel = Glib::IOChannel::create_from_fd(fd); _channel->set_encoding(); - _conn = Glib::signal_io().connect(sigc::mem_fun(*this, &file_listener::read), _channel, Glib::IO_IN | Glib::IO_HUP | Glib::IO_ERR); + _conn = main->get_context()->signal_io().connect(sigc::mem_fun(*this, &file_listener::read), _channel, Glib::IO_IN | Glib::IO_HUP | Glib::IO_ERR); _main_loop = main; return; |
