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.
This commit is contained in:
Michael Natterer 2019-06-01 14:19:05 +02:00
parent 6425bf820a
commit a1aa179436
1 changed files with 15 additions and 3 deletions

View File

@ -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)