Author: post
Date: 2010-01-24 12:10:26 +0100 (Sun, 24 Jan 2010)
New Revision: 3070

Modified:
   branches/rawstudio-ng-color/plugins/cache/cache.c
Log:
If cache is receiving an ROI call, and ignore roi is set, remove roi from 
request.

Modified: branches/rawstudio-ng-color/plugins/cache/cache.c
===================================================================
--- branches/rawstudio-ng-color/plugins/cache/cache.c   2010-01-24 10:22:01 UTC 
(rev 3069)
+++ branches/rawstudio-ng-color/plugins/cache/cache.c   2010-01-24 11:10:26 UTC 
(rev 3070)
@@ -179,11 +179,18 @@
 }
 
 static RSFilterResponse *
-get_image(RSFilter *filter, const RSFilterRequest *request)
+get_image(RSFilter *filter, const RSFilterRequest *_request)
 {
        RSCache *cache = RS_CACHE(filter);
+       RSFilterRequest *request = rs_filter_request_clone(_request);
        GdkRectangle *roi = rs_filter_request_get_roi(request);
 
+       if (roi && cache->ignore_roi)
+       {
+               roi = NULL;
+               rs_filter_request_set_roi(request, NULL);
+       }
+
        if (rs_filter_response_has_image(cache->cached_image)) {
 
                if (rs_filter_response_get_quick(cache->cached_image) && 
!rs_filter_request_get_quick(request))
@@ -217,16 +224,25 @@
        if (img)
                g_object_unref(img);
 
+       g_object_unref(request);
+
        return fr;
 }
 
 
 static RSFilterResponse *
-get_image8(RSFilter *filter, const RSFilterRequest *request)
+get_image8(RSFilter *filter, const RSFilterRequest *_request)
 {
        RSCache *cache = RS_CACHE(filter);
+       RSFilterRequest *request = rs_filter_request_clone(_request);
        GdkRectangle *roi = rs_filter_request_get_roi(request);
 
+       if (roi && cache->ignore_roi)
+       {
+               roi = NULL;
+               rs_filter_request_set_roi(request, NULL);
+       }
+
        if (rs_filter_response_has_image8(cache->cached_image)) {
 
                if (rs_filter_response_get_quick(cache->cached_image) && 
!rs_filter_request_get_quick(request))
@@ -256,9 +272,12 @@
        RSFilterResponse *fr = rs_filter_response_clone(cache->cached_image);
        GdkPixbuf* img = rs_filter_response_get_image8(cache->cached_image);
        rs_filter_response_set_image8(fr, img);
+
        if (img)
                g_object_unref(img);
 
+       g_object_unref(request);
+
        return fr;
 }
 


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

Reply via email to