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:
@ -120,6 +120,8 @@ static void gimp_display_shell_sample_point_move_handler (GimpImage *i
|
|||||||
GimpDisplayShell *shell);
|
GimpDisplayShell *shell);
|
||||||
static void gimp_display_shell_invalidate_preview_handler (GimpImage *image,
|
static void gimp_display_shell_invalidate_preview_handler (GimpImage *image,
|
||||||
GimpDisplayShell *shell);
|
GimpDisplayShell *shell);
|
||||||
|
static void gimp_display_shell_mode_changed_handler (GimpImage *image,
|
||||||
|
GimpDisplayShell *shell);
|
||||||
static void gimp_display_shell_precision_changed_handler (GimpImage *image,
|
static void gimp_display_shell_precision_changed_handler (GimpImage *image,
|
||||||
GimpDisplayShell *shell);
|
GimpDisplayShell *shell);
|
||||||
static void gimp_display_shell_profile_changed_handler (GimpColorManaged *image,
|
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_signal_connect (image, "invalidate-preview",
|
||||||
G_CALLBACK (gimp_display_shell_invalidate_preview_handler),
|
G_CALLBACK (gimp_display_shell_invalidate_preview_handler),
|
||||||
shell);
|
shell);
|
||||||
|
g_signal_connect (image, "mode-changed",
|
||||||
|
G_CALLBACK (gimp_display_shell_mode_changed_handler),
|
||||||
|
shell);
|
||||||
g_signal_connect (image, "precision-changed",
|
g_signal_connect (image, "precision-changed",
|
||||||
G_CALLBACK (gimp_display_shell_precision_changed_handler),
|
G_CALLBACK (gimp_display_shell_precision_changed_handler),
|
||||||
shell);
|
shell);
|
||||||
g_signal_connect (image, "profile-changed",
|
g_signal_connect (image, "profile-changed",
|
||||||
G_CALLBACK (gimp_display_shell_profile_changed_handler),
|
G_CALLBACK (gimp_display_shell_profile_changed_handler),
|
||||||
shell);
|
shell);
|
||||||
g_signal_connect (image, "precision-changed",
|
|
||||||
G_CALLBACK (gimp_display_shell_precision_changed_handler),
|
|
||||||
shell);
|
|
||||||
g_signal_connect (image, "saved",
|
g_signal_connect (image, "saved",
|
||||||
G_CALLBACK (gimp_display_shell_saved_handler),
|
G_CALLBACK (gimp_display_shell_saved_handler),
|
||||||
shell);
|
shell);
|
||||||
@ -482,6 +484,9 @@ gimp_display_shell_disconnect (GimpDisplayShell *shell)
|
|||||||
g_signal_handlers_disconnect_by_func (image,
|
g_signal_handlers_disconnect_by_func (image,
|
||||||
gimp_display_shell_precision_changed_handler,
|
gimp_display_shell_precision_changed_handler,
|
||||||
shell);
|
shell);
|
||||||
|
g_signal_handlers_disconnect_by_func (image,
|
||||||
|
gimp_display_shell_mode_changed_handler,
|
||||||
|
shell);
|
||||||
g_signal_handlers_disconnect_by_func (image,
|
g_signal_handlers_disconnect_by_func (image,
|
||||||
gimp_display_shell_invalidate_preview_handler,
|
gimp_display_shell_invalidate_preview_handler,
|
||||||
shell);
|
shell);
|
||||||
@ -845,6 +850,13 @@ gimp_display_shell_invalidate_preview_handler (GimpImage *image,
|
|||||||
gimp_display_shell_icon_update (shell);
|
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
|
static void
|
||||||
gimp_display_shell_precision_changed_handler (GimpImage *image,
|
gimp_display_shell_precision_changed_handler (GimpImage *image,
|
||||||
GimpDisplayShell *shell)
|
GimpDisplayShell *shell)
|
||||||
|
Reference in New Issue
Block a user