[gimp] app: update drawable bounding box when floating-selection bounding box changes



commit ec6bbd19377f57076e0ea8f028e556a3fdb0ba4e
Author: Ell <ell_se yahoo com>
Date:   Wed Oct 2 21:31:42 2019 +0300

    app: update drawable bounding box when floating-selection bounding box changes
    
    When the bounding box of a floating selection changes, update the
    bounding box of the associated drawable, since floating selections
    are no longer clipped to the drawable's bounds in general.

 app/core/gimpdrawable-floating-selection.c | 15 +++++++++++++++
 1 file changed, 15 insertions(+)
---
diff --git a/app/core/gimpdrawable-floating-selection.c b/app/core/gimpdrawable-floating-selection.c
index 43949477cf..4aafb009a2 100644
--- a/app/core/gimpdrawable-floating-selection.c
+++ b/app/core/gimpdrawable-floating-selection.c
@@ -60,6 +60,8 @@ static void    gimp_drawable_fs_visibility_changed        (GimpLayer         *fs
                                                            GimpDrawable      *drawable);
 static void    gimp_drawable_fs_excludes_backdrop_changed (GimpLayer         *fs,
                                                            GimpDrawable      *drawable);
+static void    gimp_drawable_fs_bounding_box_changed      (GimpLayer         *fs,
+                                                           GimpDrawable      *drawable);
 static void    gimp_drawable_fs_update                    (GimpLayer         *fs,
                                                            gint               x,
                                                            gint               y,
@@ -110,6 +112,9 @@ gimp_drawable_attach_floating_sel (GimpDrawable *drawable,
   g_signal_connect (fs, "excludes-backdrop-changed",
                     G_CALLBACK (gimp_drawable_fs_excludes_backdrop_changed),
                     drawable);
+  g_signal_connect (fs, "bounding-box-changed",
+                    G_CALLBACK (gimp_drawable_fs_bounding_box_changed),
+                    drawable);
   g_signal_connect (fs, "update",
                     G_CALLBACK (gimp_drawable_fs_update),
                     drawable);
@@ -143,6 +148,9 @@ gimp_drawable_detach_floating_sel (GimpDrawable *drawable)
   g_signal_handlers_disconnect_by_func (fs,
                                         gimp_drawable_fs_excludes_backdrop_changed,
                                         drawable);
+  g_signal_handlers_disconnect_by_func (fs,
+                                        gimp_drawable_fs_bounding_box_changed,
+                                        drawable);
   g_signal_handlers_disconnect_by_func (fs,
                                         gimp_drawable_fs_update,
                                         drawable);
@@ -459,6 +467,13 @@ gimp_drawable_fs_excludes_backdrop_changed (GimpLayer    *fs,
     gimp_drawable_update (drawable, 0, 0, -1, -1);
 }
 
+static void
+gimp_drawable_fs_bounding_box_changed (GimpLayer    *fs,
+                                       GimpDrawable *drawable)
+{
+  gimp_drawable_update_bounding_box (drawable);
+}
+
 static void
 gimp_drawable_fs_update (GimpLayer    *fs,
                          gint          x,


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