[gimp] Issue #2643 - Conversion to grayscale fails with artifacts



commit a1aa17943633e5cfd6b09184f0ee4f43b4093c2b
Author: Michael Natterer <mitch gimp org>
Date:   Sat Jun 1 14:19:05 2019 +0200

    Issue #2643 - Conversion to grayscale fails with artifacts
    
    Connect GimpDisplayShell to GimpImage::mode-changed and update its
    cached color transforms. Also get rid of a duplicate conection to
    GimpImage::precision-changed.

 app/display/gimpdisplayshell-handlers.c | 18 +++++++++++++++---
 1 file changed, 15 insertions(+), 3 deletions(-)
---
diff --git a/app/display/gimpdisplayshell-handlers.c b/app/display/gimpdisplayshell-handlers.c
index 54681be72b..9d7be6f76a 100644
--- a/app/display/gimpdisplayshell-handlers.c
+++ b/app/display/gimpdisplayshell-handlers.c
@@ -120,6 +120,8 @@ static void   gimp_display_shell_sample_point_move_handler  (GimpImage        *i
                                                              GimpDisplayShell *shell);
 static void   gimp_display_shell_invalidate_preview_handler (GimpImage        *image,
                                                              GimpDisplayShell *shell);
+static void   gimp_display_shell_mode_changed_handler       (GimpImage        *image,
+                                                             GimpDisplayShell *shell);
 static void   gimp_display_shell_precision_changed_handler  (GimpImage        *image,
                                                              GimpDisplayShell *shell);
 static void   gimp_display_shell_profile_changed_handler    (GimpColorManaged *image,
@@ -262,15 +264,15 @@ gimp_display_shell_connect (GimpDisplayShell *shell)
   g_signal_connect (image, "invalidate-preview",
                     G_CALLBACK (gimp_display_shell_invalidate_preview_handler),
                     shell);
+  g_signal_connect (image, "mode-changed",
+                    G_CALLBACK (gimp_display_shell_mode_changed_handler),
+                    shell);
   g_signal_connect (image, "precision-changed",
                     G_CALLBACK (gimp_display_shell_precision_changed_handler),
                     shell);
   g_signal_connect (image, "profile-changed",
                     G_CALLBACK (gimp_display_shell_profile_changed_handler),
                     shell);
-  g_signal_connect (image, "precision-changed",
-                    G_CALLBACK (gimp_display_shell_precision_changed_handler),
-                    shell);
   g_signal_connect (image, "saved",
                     G_CALLBACK (gimp_display_shell_saved_handler),
                     shell);
@@ -482,6 +484,9 @@ gimp_display_shell_disconnect (GimpDisplayShell *shell)
   g_signal_handlers_disconnect_by_func (image,
                                         gimp_display_shell_precision_changed_handler,
                                         shell);
+  g_signal_handlers_disconnect_by_func (image,
+                                        gimp_display_shell_mode_changed_handler,
+                                        shell);
   g_signal_handlers_disconnect_by_func (image,
                                         gimp_display_shell_invalidate_preview_handler,
                                         shell);
@@ -845,6 +850,13 @@ gimp_display_shell_invalidate_preview_handler (GimpImage        *image,
   gimp_display_shell_icon_update (shell);
 }
 
+static void
+gimp_display_shell_mode_changed_handler (GimpImage        *image,
+                                         GimpDisplayShell *shell)
+{
+  gimp_display_shell_profile_update (shell);
+}
+
 static void
 gimp_display_shell_precision_changed_handler (GimpImage        *image,
                                               GimpDisplayShell *shell)


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