Update of /cvsroot/ufraw/ufraw
In directory sfp-cvsdas-2.v30.ch3.sourceforge.com:/tmp/cvs-serv14685

Modified Files:
        ufraw_preview.c 
Log Message:
Fix gdk thread locks in preview.


Index: ufraw_preview.c
===================================================================
RCS file: /cvsroot/ufraw/ufraw/ufraw_preview.c,v
retrieving revision 1.345
retrieving revision 1.346
diff -u -d -r1.345 -r1.346
--- ufraw_preview.c     26 Feb 2010 07:01:04 -0000      1.345
+++ ufraw_preview.c     2 Mar 2010 21:09:21 -0000       1.346
@@ -697,7 +697,8 @@
 {
     if ( CFG->blinkOverUnder && (CFG->overExp || CFG->underExp) ) {
        if (!data->BlinkTimer) {
-           data->BlinkTimer = g_timeout_add(500, switch_highlights, data);
+           data->BlinkTimer = gdk_threads_add_timeout(500,
+                   switch_highlights, data);
        }
     }
 }
@@ -944,6 +945,8 @@
     data->FreezeDialog = FALSE;
 
     preview_progress(PROGRESS_RENDER, -32);
+    // Since we are already inside an idle callback, we should not use
+    // gdk_threads_add_idle_full().
     g_idle_add_full(G_PRIORITY_DEFAULT_IDLE,
            (GSourceFunc)(render_preview_image), data, NULL);
 
@@ -954,7 +957,7 @@
 {
     while (g_idle_remove_by_data(data))
        ;
-    g_idle_add_full(G_PRIORITY_DEFAULT_IDLE,
+    gdk_threads_add_idle_full(G_PRIORITY_DEFAULT_IDLE,
            (GSourceFunc)(render_preview_now), data, NULL);
 }
 
@@ -1157,11 +1160,11 @@
 
     if (!again) {
        preview_progress_disable(data);
-       g_idle_add_full(G_PRIORITY_DEFAULT_IDLE,
+       gdk_threads_add_idle_full(G_PRIORITY_DEFAULT_IDLE,
                (GSourceFunc)(render_raw_histogram), data, NULL);
-       g_idle_add_full(G_PRIORITY_DEFAULT_IDLE,
+       gdk_threads_add_idle_full(G_PRIORITY_DEFAULT_IDLE,
                (GSourceFunc)(render_live_histogram), data, NULL);
-       g_idle_add_full(G_PRIORITY_DEFAULT_IDLE,
+       gdk_threads_add_idle_full(G_PRIORITY_DEFAULT_IDLE,
                (GSourceFunc)(render_spot), data, NULL);
     }
     return again;
@@ -1759,7 +1762,7 @@
        data->SpotX1 = data->SpotX2 = event->x;
        data->SpotY1 = data->SpotY2 = event->y;
        if (!is_rendering(data))
-           g_idle_add_full(G_PRIORITY_DEFAULT_IDLE,
+           gdk_threads_add_idle_full(G_PRIORITY_DEFAULT_IDLE,
                    (GSourceFunc)(render_spot), data, NULL);
        return TRUE;
     }
@@ -1898,7 +1901,7 @@
     data->SpotX2 = event->x;
     data->SpotY2 = event->y;
     if (!is_rendering(data))
-       g_idle_add_full(G_PRIORITY_DEFAULT_IDLE,
+       gdk_threads_add_idle_full(G_PRIORITY_DEFAULT_IDLE,
                (GSourceFunc)(render_spot), data, NULL);
     return TRUE;
 }
@@ -2029,11 +2032,11 @@
     if (CFG->drawLines>0 && data->BlinkTimer==0) {
        if (data->DrawCropID != 0)
            g_source_remove(data->DrawCropID);
-       data->DrawCropID = g_idle_add_full(G_PRIORITY_DEFAULT_IDLE+30,
+       data->DrawCropID = gdk_threads_add_idle_full(G_PRIORITY_DEFAULT_IDLE+30,
                (GSourceFunc)(preview_draw_crop), data, NULL);
     }
     if (!is_rendering(data))
-       g_idle_add_full(G_PRIORITY_DEFAULT_IDLE,
+       gdk_threads_add_idle_full(G_PRIORITY_DEFAULT_IDLE,
                (GSourceFunc)(render_live_histogram), data, NULL);
 }
 
@@ -2826,7 +2829,7 @@
     if (valuep==&CFG->drawLines) {
        if (data->DrawCropID != 0)
            g_source_remove(data->DrawCropID);
-       data->DrawCropID = g_idle_add_full(G_PRIORITY_DEFAULT_IDLE+30,
+       data->DrawCropID = gdk_threads_add_idle_full(G_PRIORITY_DEFAULT_IDLE+30,
                (GSourceFunc)(preview_draw_crop), data, NULL);
     }
 }
@@ -3860,13 +3863,13 @@
        GdkPixbuf *pixbuf = gtk_image_get_pixbuf(GTK_IMAGE(data->RawHisto));
        rawHisHeight = data->RawHisto->allocation.height;
        if ( pixbuf==NULL || gdk_pixbuf_get_height(pixbuf)!=rawHisHeight )
-           g_idle_add_full(G_PRIORITY_DEFAULT_IDLE,
+           gdk_threads_add_idle_full(G_PRIORITY_DEFAULT_IDLE,
                    (GSourceFunc)(render_raw_histogram), data, NULL);
 
        pixbuf = gtk_image_get_pixbuf(GTK_IMAGE(data->LiveHisto));
        liveHisHeight = data->LiveHisto->allocation.height;
        if ( pixbuf==NULL || gdk_pixbuf_get_height(pixbuf)!=liveHisHeight )
-           g_idle_add_full(G_PRIORITY_DEFAULT_IDLE,
+           gdk_threads_add_idle_full(G_PRIORITY_DEFAULT_IDLE,
                    (GSourceFunc)(render_live_histogram), data, NULL);
     }
 }


------------------------------------------------------------------------------
Download Intel® Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
_______________________________________________
ufraw-cvs mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ufraw-cvs

Reply via email to