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



commit ef6bb9d4ade2cf6bd9cd5b55e83d4412dc4c0c93
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.
    
    (cherry picked from commit a1aa17943633e5cfd6b09184f0ee4f43b4093c2b)
    
    No idea why the artifacty never appeared on 2.10, the code was just as
    broken as in master...

 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 f208272f21..85539a5798 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]