[gimp/gimp-2-10] app: add gimp_display_shell_get_canvas_pickable()



commit b67efd4b6c430284f44ea0e63307f8f7bc154c32
Author: Ell <ell_se yahoo com>
Date:   Thu Sep 19 19:57:16 2019 +0300

    app: add gimp_display_shell_get_canvas_pickable()
    
    ... which is similar to gimp_display_shell_get_pickable(), however,
    it returns the projection, rather than the image, only when
    gimp_display_shell_get_infinite_canvas() is TRUE, i.e., when the
    shell is in "show all" mode *and* canvas padding is disabled.
    
    (cherry picked from commit 71f42f66753006f77d20611ef56fac260e2e6890)

 app/display/gimpdisplayshell.c | 20 ++++++++++++++++++++
 app/display/gimpdisplayshell.h |  2 ++
 2 files changed, 22 insertions(+)
---
diff --git a/app/display/gimpdisplayshell.c b/app/display/gimpdisplayshell.c
index d7ab1afae7..118ae68615 100644
--- a/app/display/gimpdisplayshell.c
+++ b/app/display/gimpdisplayshell.c
@@ -1873,6 +1873,26 @@ gimp_display_shell_get_pickable (GimpDisplayShell *shell)
   return NULL;
 }
 
+GimpPickable *
+gimp_display_shell_get_canvas_pickable (GimpDisplayShell *shell)
+{
+  GimpImage *image;
+
+  g_return_val_if_fail (GIMP_IS_DISPLAY_SHELL (shell), NULL);
+
+  image = gimp_display_get_image (shell->display);
+
+  if (image)
+    {
+      if (! gimp_display_shell_get_infinite_canvas (shell))
+        return GIMP_PICKABLE (image);
+      else
+        return GIMP_PICKABLE (gimp_image_get_projection (image));
+    }
+
+  return NULL;
+}
+
 GeglRectangle
 gimp_display_shell_get_bounding_box (GimpDisplayShell *shell)
 {
diff --git a/app/display/gimpdisplayshell.h b/app/display/gimpdisplayshell.h
index efa9a73119..1da9d8f65b 100644
--- a/app/display/gimpdisplayshell.h
+++ b/app/display/gimpdisplayshell.h
@@ -310,6 +310,8 @@ void              gimp_display_shell_set_show_all  (GimpDisplayShell   *shell,
                                                     gboolean            show_all);
 
 GimpPickable    * gimp_display_shell_get_pickable  (GimpDisplayShell   *shell);
+GimpPickable    * gimp_display_shell_get_canvas_pickable
+                                                   (GimpDisplayShell   *shell);
 GeglRectangle     gimp_display_shell_get_bounding_box
                                                    (GimpDisplayShell   *shell);
 gboolean          gimp_display_shell_get_infinite_canvas


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