fiddle with the passed channel index only for GRAYA drawables, not for all
2004-01-24 Michael Natterer <mitch@gimp.org> * tools/pdbgen/pdb/color.pdb (levels, curves): fiddle with the passed channel index only for GRAYA drawables, not for all GRAY drawables. Fixes bug #132322. * tools/pdbgen/pdb/color.pdb: regenerated. * app/tools/gimpcurvestool.[ch] * app/tools/gimplevelstool.[ch]: fixed the same bug here. It never occured because the "channel" field was accidentially initialized with the correct value and never changed after.
This commit is contained in:

committed by
Michael Natterer

parent
8c622bcdf3
commit
00c525abbc
13
ChangeLog
13
ChangeLog
@ -1,3 +1,16 @@
|
|||||||
|
2004-01-24 Michael Natterer <mitch@gimp.org>
|
||||||
|
|
||||||
|
* tools/pdbgen/pdb/color.pdb (levels, curves): fiddle with the
|
||||||
|
passed channel index only for GRAYA drawables, not for all GRAY
|
||||||
|
drawables. Fixes bug #132322.
|
||||||
|
|
||||||
|
* tools/pdbgen/pdb/color.pdb: regenerated.
|
||||||
|
|
||||||
|
* app/tools/gimpcurvestool.[ch]
|
||||||
|
* app/tools/gimplevelstool.[ch]: fixed the same bug here. It never
|
||||||
|
occured because the "channel" field was accidentially initialized
|
||||||
|
with the correct value and never changed after.
|
||||||
|
|
||||||
2004-01-23 Simon Budig <simon@gimp.org>
|
2004-01-23 Simon Budig <simon@gimp.org>
|
||||||
|
|
||||||
* plug-ins/common/mosaic.c: properly use src_rgn.rowstride when
|
* plug-ins/common/mosaic.c: properly use src_rgn.rowstride when
|
||||||
|
@ -231,7 +231,7 @@ levels_invoker (Gimp *gimp,
|
|||||||
if (success)
|
if (success)
|
||||||
{
|
{
|
||||||
/* FIXME: hack */
|
/* FIXME: hack */
|
||||||
if (gimp_drawable_is_gray (drawable))
|
if (gimp_drawable_is_gray (drawable) && gimp_drawable_has_alpha (drawable))
|
||||||
channel = (channel > 1) ? 2 : 1;
|
channel = (channel > 1) ? 2 : 1;
|
||||||
|
|
||||||
lut = gimp_lut_new ();
|
lut = gimp_lut_new ();
|
||||||
@ -686,7 +686,7 @@ curves_spline_invoker (Gimp *gimp,
|
|||||||
if (success)
|
if (success)
|
||||||
{
|
{
|
||||||
/* FIXME: hack */
|
/* FIXME: hack */
|
||||||
if (gimp_drawable_is_gray (drawable))
|
if (gimp_drawable_is_gray (drawable) && gimp_drawable_has_alpha (drawable))
|
||||||
channel = (channel > 1) ? 2 : 1;
|
channel = (channel > 1) ? 2 : 1;
|
||||||
|
|
||||||
lut = gimp_lut_new ();
|
lut = gimp_lut_new ();
|
||||||
@ -808,7 +808,7 @@ curves_explicit_invoker (Gimp *gimp,
|
|||||||
if (success)
|
if (success)
|
||||||
{
|
{
|
||||||
/* FIXME: hack */
|
/* FIXME: hack */
|
||||||
if (gimp_drawable_is_gray (drawable))
|
if (gimp_drawable_is_gray (drawable) && gimp_drawable_has_alpha (drawable))
|
||||||
channel = (channel > 1) ? 2 : 1;
|
channel = (channel > 1) ? 2 : 1;
|
||||||
|
|
||||||
lut = gimp_lut_new ();
|
lut = gimp_lut_new ();
|
||||||
|
@ -312,8 +312,9 @@ gimp_curves_tool_initialize (GimpTool *tool,
|
|||||||
|
|
||||||
curves_init (c_tool->curves);
|
curves_init (c_tool->curves);
|
||||||
|
|
||||||
c_tool->color = gimp_drawable_is_rgb (drawable);
|
|
||||||
c_tool->channel = GIMP_HISTOGRAM_VALUE;
|
c_tool->channel = GIMP_HISTOGRAM_VALUE;
|
||||||
|
c_tool->color = gimp_drawable_is_rgb (drawable);
|
||||||
|
c_tool->alpha = gimp_drawable_has_alpha (drawable);
|
||||||
|
|
||||||
c_tool->grab_point = -1;
|
c_tool->grab_point = -1;
|
||||||
c_tool->last = 0;
|
c_tool->last = 0;
|
||||||
@ -333,6 +334,9 @@ gimp_curves_tool_initialize (GimpTool *tool,
|
|||||||
gimp_int_option_menu_set_history (GTK_OPTION_MENU (c_tool->channel_menu),
|
gimp_int_option_menu_set_history (GTK_OPTION_MENU (c_tool->channel_menu),
|
||||||
c_tool->channel);
|
c_tool->channel);
|
||||||
|
|
||||||
|
if (! c_tool->color && c_tool->alpha)
|
||||||
|
c_tool->channel = 1;
|
||||||
|
|
||||||
curves_update (c_tool, ALL);
|
curves_update (c_tool, ALL);
|
||||||
|
|
||||||
gimp_drawable_calculate_histogram (drawable, c_tool->hist);
|
gimp_drawable_calculate_histogram (drawable, c_tool->hist);
|
||||||
@ -797,7 +801,7 @@ curves_channel_callback (GtkWidget *widget,
|
|||||||
c_tool->channel);
|
c_tool->channel);
|
||||||
|
|
||||||
/* FIXME: hack */
|
/* FIXME: hack */
|
||||||
if (! c_tool->color)
|
if (! c_tool->color && c_tool->alpha)
|
||||||
c_tool->channel = (c_tool->channel > 1) ? 2 : 1;
|
c_tool->channel = (c_tool->channel > 1) ? 2 : 1;
|
||||||
|
|
||||||
gimp_int_radio_group_set_active (GTK_RADIO_BUTTON (c_tool->curve_type),
|
gimp_int_radio_group_set_active (GTK_RADIO_BUTTON (c_tool->curve_type),
|
||||||
@ -828,10 +832,12 @@ curves_set_sensitive_callback (GimpHistogramChannel channel,
|
|||||||
{
|
{
|
||||||
case GIMP_HISTOGRAM_VALUE:
|
case GIMP_HISTOGRAM_VALUE:
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
|
||||||
case GIMP_HISTOGRAM_RED:
|
case GIMP_HISTOGRAM_RED:
|
||||||
case GIMP_HISTOGRAM_GREEN:
|
case GIMP_HISTOGRAM_GREEN:
|
||||||
case GIMP_HISTOGRAM_BLUE:
|
case GIMP_HISTOGRAM_BLUE:
|
||||||
return c_tool->color;
|
return c_tool->color;
|
||||||
|
|
||||||
case GIMP_HISTOGRAM_ALPHA:
|
case GIMP_HISTOGRAM_ALPHA:
|
||||||
return gimp_drawable_has_alpha (GIMP_IMAGE_MAP_TOOL (c_tool)->drawable);
|
return gimp_drawable_has_alpha (GIMP_IMAGE_MAP_TOOL (c_tool)->drawable);
|
||||||
}
|
}
|
||||||
|
@ -42,6 +42,7 @@ struct _GimpCurvesTool
|
|||||||
|
|
||||||
/* dialog */
|
/* dialog */
|
||||||
gboolean color;
|
gboolean color;
|
||||||
|
gboolean alpha;
|
||||||
GimpHistogramChannel channel;
|
GimpHistogramChannel channel;
|
||||||
|
|
||||||
gint grab_point;
|
gint grab_point;
|
||||||
|
@ -305,6 +305,7 @@ gimp_levels_tool_initialize (GimpTool *tool,
|
|||||||
|
|
||||||
l_tool->channel = GIMP_HISTOGRAM_VALUE;
|
l_tool->channel = GIMP_HISTOGRAM_VALUE;
|
||||||
l_tool->color = gimp_drawable_is_rgb (drawable);
|
l_tool->color = gimp_drawable_is_rgb (drawable);
|
||||||
|
l_tool->alpha = gimp_drawable_has_alpha (drawable);
|
||||||
|
|
||||||
if (l_tool->active_picker)
|
if (l_tool->active_picker)
|
||||||
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (l_tool->active_picker),
|
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (l_tool->active_picker),
|
||||||
@ -319,7 +320,10 @@ gimp_levels_tool_initialize (GimpTool *tool,
|
|||||||
|
|
||||||
/* set the current selection */
|
/* set the current selection */
|
||||||
gtk_option_menu_set_history (GTK_OPTION_MENU (l_tool->channel_menu),
|
gtk_option_menu_set_history (GTK_OPTION_MENU (l_tool->channel_menu),
|
||||||
l_tool->channel);
|
l_tool->channel);
|
||||||
|
|
||||||
|
if (! l_tool->color && l_tool->alpha)
|
||||||
|
l_tool->channel = 1;
|
||||||
|
|
||||||
levels_update (l_tool, ALL);
|
levels_update (l_tool, ALL);
|
||||||
|
|
||||||
@ -939,7 +943,7 @@ levels_channel_callback (GtkWidget *widget,
|
|||||||
l_tool->channel);
|
l_tool->channel);
|
||||||
|
|
||||||
/* FIXME: hack */
|
/* FIXME: hack */
|
||||||
if (! l_tool->color)
|
if (! l_tool->color && l_tool->alpha)
|
||||||
l_tool->channel = (l_tool->channel > 1) ? 2 : 1;
|
l_tool->channel = (l_tool->channel > 1) ? 2 : 1;
|
||||||
|
|
||||||
levels_update (l_tool, ALL);
|
levels_update (l_tool, ALL);
|
||||||
|
@ -40,6 +40,7 @@ struct _GimpLevelsTool
|
|||||||
|
|
||||||
GimpLut *lut;
|
GimpLut *lut;
|
||||||
gboolean color;
|
gboolean color;
|
||||||
|
gboolean alpha;
|
||||||
Levels *levels;
|
Levels *levels;
|
||||||
|
|
||||||
/* dialog */
|
/* dialog */
|
||||||
|
@ -134,7 +134,7 @@ HELP
|
|||||||
if (success)
|
if (success)
|
||||||
{
|
{
|
||||||
/* FIXME: hack */
|
/* FIXME: hack */
|
||||||
if (gimp_drawable_is_gray (drawable))
|
if (gimp_drawable_is_gray (drawable) && gimp_drawable_has_alpha (drawable))
|
||||||
channel = (channel > 1) ? 2 : 1;
|
channel = (channel > 1) ? 2 : 1;
|
||||||
|
|
||||||
lut = gimp_lut_new ();
|
lut = gimp_lut_new ();
|
||||||
@ -425,7 +425,7 @@ HELP
|
|||||||
if (success)
|
if (success)
|
||||||
{
|
{
|
||||||
/* FIXME: hack */
|
/* FIXME: hack */
|
||||||
if (gimp_drawable_is_gray (drawable))
|
if (gimp_drawable_is_gray (drawable) && gimp_drawable_has_alpha (drawable))
|
||||||
channel = (channel > 1) ? 2 : 1;
|
channel = (channel > 1) ? 2 : 1;
|
||||||
|
|
||||||
lut = gimp_lut_new ();
|
lut = gimp_lut_new ();
|
||||||
@ -506,7 +506,7 @@ HELP
|
|||||||
if (success)
|
if (success)
|
||||||
{
|
{
|
||||||
/* FIXME: hack */
|
/* FIXME: hack */
|
||||||
if (gimp_drawable_is_gray (drawable))
|
if (gimp_drawable_is_gray (drawable) && gimp_drawable_has_alpha (drawable))
|
||||||
channel = (channel > 1) ? 2 : 1;
|
channel = (channel > 1) ? 2 : 1;
|
||||||
|
|
||||||
lut = gimp_lut_new ();
|
lut = gimp_lut_new ();
|
||||||
|
Reference in New Issue
Block a user