Replace g_idle_add_full() with IdleRegister (#3767)

This commit is contained in:
Flössie
2017-03-30 21:40:09 +02:00
parent 91f8e46029
commit 6e1f7df2fb
6 changed files with 64 additions and 62 deletions

View File

@@ -38,18 +38,12 @@ Glib::RefPtr<Gdk::Pixbuf> MyExpander::disabledPBuf;
Glib::RefPtr<Gdk::Pixbuf> MyExpander::openedPBuf;
Glib::RefPtr<Gdk::Pixbuf> MyExpander::closedPBuf;
guint add_idle (GSourceFunc function, gpointer data)
{
return gdk_threads_add_idle(function, data);
//gtk_main_iteration_do(false);
}
IdleRegister::~IdleRegister()
{
destroy();
}
void IdleRegister::add(GSourceFunc function, gpointer data)
void IdleRegister::add(GSourceFunc function, gpointer data, gint priority)
{
struct DataWrapper {
IdleRegister* const self;
@@ -79,7 +73,7 @@ void IdleRegister::add(GSourceFunc function, gpointer data)
};
mutex.lock();
ids[data_wrapper] = add_idle(dispatch, data_wrapper);
ids[data_wrapper] = gdk_threads_add_idle_full(priority, dispatch, data_wrapper, nullptr);
mutex.unlock();
}