Replace all g_idle_adds with IdleRegister (#3767)

This commit is contained in:
Flössie
2017-03-26 22:03:33 +02:00
parent 39ca290ca9
commit 91b44dbd08
25 changed files with 419 additions and 403 deletions

View File

@@ -877,6 +877,8 @@ Wavelet::Wavelet() :
Wavelet::~Wavelet ()
{
idle_register.destroy();
delete opaCurveEditorG;
delete opacityCurveEditorG;
delete CCWcurveEditorG;
@@ -887,26 +889,28 @@ Wavelet::~Wavelet ()
delete opacityCurveEditorWL;
}
int wavUpdateUI (void* data)
{
GThreadLock lock; // All GUI acces from idle_add callbacks or separate thread HAVE to be protected
(static_cast<Wavelet*>(data))->wavComputed_ ();
return 0;
}
void Wavelet::wavChanged (double nlevel)
{
nextnlevel = nlevel;
g_idle_add (wavUpdateUI, this);
const auto func = [](gpointer data) -> gboolean {
GThreadLock lock; // All GUI acces from idle_add callbacks or separate thread HAVE to be protected
static_cast<Wavelet*>(data)->wavComputed_();
return FALSE;
};
idle_register.add(func, this);
}
bool Wavelet::wavComputed_ ()
{
disableListener ();
enableListener ();
updatewavLabel ();
return false;
}
void Wavelet::updatewavLabel ()
{
if (!batchMode) {