From ec6bbd19377f57076e0ea8f028e556a3fdb0ba4e Mon Sep 17 00:00:00 2001 From: Ell Date: Wed, 2 Oct 2019 21:31:42 +0300 Subject: [PATCH] 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, -- 2.22.0