[gimp] app: avoid freezing image preview if drawable is not attached



commit de36e33347815e78aee34f7fcd5cb3e22414af03
Author: Ell <ell_se yahoo com>
Date:   Thu Mar 28 12:35:32 2019 -0400

    app: avoid freezing image preview if drawable is not attached
    
    When freezing/thawing a top-level drawable's preview, only freeze/
    thaw the image preview if the drawable is attached.

 app/core/gimpdrawable.c  | 10 ++++++----
 app/core/gimplayermask.c | 10 ++++++----
 2 files changed, 12 insertions(+), 8 deletions(-)
---
diff --git a/app/core/gimpdrawable.c b/app/core/gimpdrawable.c
index 74c49a3c9b..16110eeaa8 100644
--- a/app/core/gimpdrawable.c
+++ b/app/core/gimpdrawable.c
@@ -427,10 +427,11 @@ gimp_drawable_preview_freeze (GimpViewable *viewable)
 {
   GimpViewable *parent = gimp_viewable_get_parent (viewable);
 
-  if (! parent)
+  if (! parent && gimp_item_is_attached (GIMP_ITEM (viewable)))
     parent = GIMP_VIEWABLE (gimp_item_get_image (GIMP_ITEM (viewable)));
 
-  gimp_viewable_preview_freeze (parent);
+  if (parent)
+    gimp_viewable_preview_freeze (parent);
 }
 
 static void
@@ -438,10 +439,11 @@ gimp_drawable_preview_thaw (GimpViewable *viewable)
 {
   GimpViewable *parent = gimp_viewable_get_parent (viewable);
 
-  if (! parent)
+  if (! parent && gimp_item_is_attached (GIMP_ITEM (viewable)))
     parent = GIMP_VIEWABLE (gimp_item_get_image (GIMP_ITEM (viewable)));
 
-  gimp_viewable_preview_thaw (parent);
+  if (parent)
+    gimp_viewable_preview_thaw (parent);
 }
 
 static GeglNode *
diff --git a/app/core/gimplayermask.c b/app/core/gimplayermask.c
index 73536c19e1..8986b9ee35 100644
--- a/app/core/gimplayermask.c
+++ b/app/core/gimplayermask.c
@@ -102,10 +102,11 @@ gimp_layer_mask_preview_freeze (GimpViewable *viewable)
     {
       GimpViewable *parent = gimp_viewable_get_parent (GIMP_VIEWABLE (layer));
 
-      if (! parent)
+      if (! parent && gimp_item_is_attached (GIMP_ITEM (layer)))
         parent = GIMP_VIEWABLE (gimp_item_get_image (GIMP_ITEM (layer)));
 
-      gimp_viewable_preview_freeze (parent);
+      if (parent)
+        gimp_viewable_preview_freeze (parent);
     }
 }
 
@@ -119,10 +120,11 @@ gimp_layer_mask_preview_thaw (GimpViewable *viewable)
     {
       GimpViewable *parent = gimp_viewable_get_parent (GIMP_VIEWABLE (layer));
 
-      if (! parent)
+      if (! parent && gimp_item_is_attached (GIMP_ITEM (layer)))
         parent = GIMP_VIEWABLE (gimp_item_get_image (GIMP_ITEM (layer)));
 
-      gimp_viewable_preview_thaw (parent);
+      if (parent)
+        gimp_viewable_preview_thaw (parent);
     }
 }
 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]