Author: abrander
Date: 2010-01-04 02:59:38 +0100 (Mon, 04 Jan 2010)
New Revision: 2967

Modified:
   trunk/librawstudio/rs-curve.c
Log:
[181] Fixed continous curve resize.

Modified: trunk/librawstudio/rs-curve.c
===================================================================
--- trunk/librawstudio/rs-curve.c       2010-01-04 01:05:30 UTC (rev 2966)
+++ trunk/librawstudio/rs-curve.c       2010-01-04 01:59:38 UTC (rev 2967)
@@ -40,6 +40,8 @@
        guchar *bg_buffer;
        RSColorTransform *rct;
        RSSettings *settings;
+
+       gint last_width[2];
 };
 
 struct _RSCurveWidgetClass
@@ -739,19 +741,23 @@
        gboolean ret = FALSE;
 
        gdk_threads_enter();
-       if (gtk_events_pending())
-               ret = TRUE;
-       else
+       if (GTK_WIDGET(curve)->allocation.width != 
GTK_WIDGET(curve)->allocation.height)
        {
-               if (GTK_WIDGET(curve)->allocation.width != 
GTK_WIDGET(curve)->allocation.height)
-               {
-                       g_signal_handler_block(RS_CURVE_WIDGET(curve), 
RS_CURVE_WIDGET(curve)->size_signal);
-                       gtk_widget_set_size_request(GTK_WIDGET(curve), -1, 
GTK_WIDGET(curve)->allocation.width);
-                       GUI_CATCHUP();
-                       g_signal_handler_unblock(RS_CURVE_WIDGET(curve), 
RS_CURVE_WIDGET(curve)->size_signal);
-               }
-               curve->size_timeout_helper = 0;
+               gint new_height = GTK_WIDGET(curve)->allocation.width;
+
+               if (GTK_WIDGET(curve)->allocation.width == curve->last_width[0])
+                       new_height = GTK_WIDGET(curve)->allocation.height;
+
+               g_signal_handler_block(RS_CURVE_WIDGET(curve), 
RS_CURVE_WIDGET(curve)->size_signal);
+               gtk_widget_set_size_request(GTK_WIDGET(curve), -1, new_height);
+               GUI_CATCHUP();
+               g_signal_handler_unblock(RS_CURVE_WIDGET(curve), 
RS_CURVE_WIDGET(curve)->size_signal);
+
+               curve->last_width[0] = curve->last_width[1];
+               curve->last_width[1] = GTK_WIDGET(curve)->allocation.width;
        }
+       curve->size_timeout_helper = 0;
+
        gdk_threads_leave();
 
        return ret;


_______________________________________________
Rawstudio-commit mailing list
[email protected]
http://rawstudio.org/cgi-bin/mailman/listinfo/rawstudio-commit

Reply via email to