summaryrefslogtreecommitdiffstats
path: root/src/gui/App.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/gui/App.cpp')
-rw-r--r--src/gui/App.cpp16
1 files changed, 9 insertions, 7 deletions
diff --git a/src/gui/App.cpp b/src/gui/App.cpp
index 2624d1e9..fad2f195 100644
--- a/src/gui/App.cpp
+++ b/src/gui/App.cpp
@@ -1,6 +1,6 @@
/*
This file is part of Ingen.
- Copyright 2007-2015 David Robillard <http://drobilla.net/>
+ Copyright 2007-2016 David Robillard <http://drobilla.net/>
Ingen is free software: you can redistribute it and/or modify it under the
terms of the GNU Affero General Public License as published by the Free
@@ -91,6 +91,9 @@ App::App(Ingen::World* world)
PluginModel::set_rdf_world(*world->rdf_world());
PluginModel::set_lilv_world(world->lilv_world());
+
+ using namespace std::placeholders;
+ world->log().set_sink(std::bind(&MessagesWindow::log, _messages_window, _1, _2, _3));
}
App::~App()
@@ -214,12 +217,7 @@ App::response(int32_t id, Status status, const std::string& subject)
void
App::error_message(const string& str)
{
- _messages_window->post(str);
-
- if (!_messages_window->is_visible())
- _messages_window->present();
-
- _messages_window->set_urgency_hint(true);
+ _messages_window->post_error(str);
}
void
@@ -321,6 +319,10 @@ App::gtk_main_iteration()
if (!_client)
return false;
+ if (_messages_window) {
+ _messages_window->flush();
+ }
+
if (_world->engine()) {
if (!_world->engine()->main_iteration()) {
Gtk::Main::quit();