app: fix/enable continuous color updates in GimpColorPanel
This commit is contained in:
@ -166,8 +166,8 @@ gimp_color_panel_clicked (GtkButton *button)
|
|||||||
NULL, NULL,
|
NULL, NULL,
|
||||||
GTK_WIDGET (button),
|
GTK_WIDGET (button),
|
||||||
NULL, NULL,
|
NULL, NULL,
|
||||||
(const GimpRGB *) &color,
|
&color,
|
||||||
FALSE,
|
gimp_color_button_get_update (GIMP_COLOR_BUTTON (button)),
|
||||||
gimp_color_button_has_alpha (GIMP_COLOR_BUTTON (button)));
|
gimp_color_button_has_alpha (GIMP_COLOR_BUTTON (button)));
|
||||||
|
|
||||||
g_signal_connect (panel->color_dialog, "destroy",
|
g_signal_connect (panel->color_dialog, "destroy",
|
||||||
@ -220,10 +220,19 @@ gimp_color_panel_color_changed (GimpColorButton *button)
|
|||||||
|
|
||||||
if (panel->color_dialog)
|
if (panel->color_dialog)
|
||||||
{
|
{
|
||||||
|
GimpRGB dialog_color;
|
||||||
|
|
||||||
gimp_color_button_get_color (GIMP_COLOR_BUTTON (button), &color);
|
gimp_color_button_get_color (GIMP_COLOR_BUTTON (button), &color);
|
||||||
|
gimp_color_dialog_get_color (GIMP_COLOR_DIALOG (panel->color_dialog),
|
||||||
|
&dialog_color);
|
||||||
|
|
||||||
|
if (gimp_rgba_distance (&color, &dialog_color) > 0.00001 ||
|
||||||
|
color.a != dialog_color.a)
|
||||||
|
{
|
||||||
gimp_color_dialog_set_color (GIMP_COLOR_DIALOG (panel->color_dialog),
|
gimp_color_dialog_set_color (GIMP_COLOR_DIALOG (panel->color_dialog),
|
||||||
&color);
|
&color);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
@ -248,13 +257,20 @@ gimp_color_panel_dialog_update (GimpColorDialog *dialog,
|
|||||||
switch (state)
|
switch (state)
|
||||||
{
|
{
|
||||||
case GIMP_COLOR_DIALOG_UPDATE:
|
case GIMP_COLOR_DIALOG_UPDATE:
|
||||||
|
if (gimp_color_button_get_update (GIMP_COLOR_BUTTON (panel)))
|
||||||
|
gimp_color_button_set_color (GIMP_COLOR_BUTTON (panel), color);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case GIMP_COLOR_DIALOG_OK:
|
case GIMP_COLOR_DIALOG_OK:
|
||||||
|
if (! gimp_color_button_get_update (GIMP_COLOR_BUTTON (panel)))
|
||||||
gimp_color_button_set_color (GIMP_COLOR_BUTTON (panel), color);
|
gimp_color_button_set_color (GIMP_COLOR_BUTTON (panel), color);
|
||||||
/* Fallthrough */
|
gtk_widget_hide (panel->color_dialog);
|
||||||
|
break;
|
||||||
|
|
||||||
case GIMP_COLOR_DIALOG_CANCEL:
|
case GIMP_COLOR_DIALOG_CANCEL:
|
||||||
|
if (gimp_color_button_get_update (GIMP_COLOR_BUTTON (panel)))
|
||||||
|
gimp_color_button_set_color (GIMP_COLOR_BUTTON (panel), color);
|
||||||
gtk_widget_hide (panel->color_dialog);
|
gtk_widget_hide (panel->color_dialog);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user