Commit f63cd1d9 authored by Michael Natterer's avatar Michael Natterer 😴 Committed by Michael Natterer
Browse files

new signal "floating_selection_changed", removed ancient declaration of

2001-05-07  Michael Natterer  <mitch@gimp.org>

	* app/gimpimage.[hc]: new signal "floating_selection_changed",
	removed ancient declaration of _GimpImageRepaintArg.

	* app/floating_sel.c
	* app/undo.c: emit "floating_selection_changed" where approptiate.

	* app/gimage_mask.c: s/"Floated Layer"/"Floating Selection"/
	because we view this layer directly now (not some thing with an
	"L" icon).

	* app/gui/layers-commands.c: don't use confusing boolean variables
	which indicate that something is not true (reversed their logic).

	* app/widgets/Makefile.am
	* app/widgets/widgets-types.h
	* app/widgets/gimpchannellistitem.[ch]: new widget. Does nothing yet.

	* app/widgets/gimpchannellistview.c: set the button box
	insensitive when there is a floating selection.

	* app/widgets/gimpdrawablelistitem.c: made channel DND work again.
	Very ugly btw.

	* app/widgets/gimpdrawablelistview.c: connect to
	"floating_selection_changed". Fake a change of the active drawable
	so the button boxes get updated correctly.

	* app/widgets/gimplayerlistview.c: set the sensitivity of the
	buttons correctly.

	* app/widgets/gimplistitem.c: create GimpChannelListItems for
	channels.  Some very ugly code to work around broken
	GTK_STATE_INSENSITIVE propagation in list items.
parent f1c34ca5
2001-05-07 Michael Natterer <mitch@gimp.org>
* app/gimpimage.[hc]: new signal "floating_selection_changed",
removed ancient declaration of _GimpImageRepaintArg.
* app/floating_sel.c
* app/undo.c: emit "floating_selection_changed" where approptiate.
* app/gimage_mask.c: s/"Floated Layer"/"Floating Selection"/
because we view this layer directly now (not some thing with an
"L" icon).
* app/gui/layers-commands.c: don't use confusing boolean variables
which indicate that something is not true (reversed their logic).
* app/widgets/Makefile.am
* app/widgets/widgets-types.h
* app/widgets/gimpchannellistitem.[ch]: new widget. Does nothing yet.
* app/widgets/gimpchannellistview.c: set the button box
insensitive when there is a floating selection.
* app/widgets/gimpdrawablelistitem.c: made channel DND work again.
Very ugly btw.
* app/widgets/gimpdrawablelistview.c: connect to
"floating_selection_changed". Fake a change of the active drawable
so the button boxes get updated correctly.
* app/widgets/gimplayerlistview.c: set the sensitivity of the
buttons correctly.
* app/widgets/gimplistitem.c: create GimpChannelListItems for
channels. Some very ugly code to work around broken
GTK_STATE_INSENSITIVE propagation in list items.
2001-05-06 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpchannellistview.c: enabled setting component
......
......@@ -633,15 +633,15 @@ channels_menu_set_sensitivity (GimpImage *gimage)
menus_set_sensitive ("<Channels>/" menu, (condition) != 0)
SET_SENSITIVE ("New Channel...", !fs);
SET_SENSITIVE ("Raise Channel", channel && !fs && prev);
SET_SENSITIVE ("Lower Channel", channel && !fs && next);
SET_SENSITIVE ("Duplicate Channel", channel && !fs);
SET_SENSITIVE ("Channel to Selection", channel);
SET_SENSITIVE ("Add to Selection", channel);
SET_SENSITIVE ("Subtract from Selection", channel);
SET_SENSITIVE ("Intersect with Selection", channel);
SET_SENSITIVE ("Delete Channel", channel && !fs);
SET_SENSITIVE ("Edit Channel Attributes...", channel && !fs);
SET_SENSITIVE ("Raise Channel", !fs && channel && prev);
SET_SENSITIVE ("Lower Channel", !fs && channel && next);
SET_SENSITIVE ("Duplicate Channel", !fs && channel);
SET_SENSITIVE ("Channel to Selection", !fs && channel);
SET_SENSITIVE ("Add to Selection", !fs && channel);
SET_SENSITIVE ("Subtract from Selection", !fs && channel);
SET_SENSITIVE ("Intersect with Selection", !fs && channel);
SET_SENSITIVE ("Delete Channel", !fs && channel);
SET_SENSITIVE ("Edit Channel Attributes...", !fs && channel);
#undef SET_OPS_SENSITIVE
}
......@@ -1225,8 +1225,8 @@ static void
layers_menu_set_sensitivity (GimpImage *gimage)
{
GimpLayer *layer;
gboolean fs = FALSE; /* no floating sel */
gboolean ac = FALSE; /* no active channel */
gboolean fs = FALSE; /* floating sel */
gboolean ac = FALSE; /* active channel */
gboolean lm = FALSE; /* layer mask */
gboolean lp = FALSE; /* layers present */
gboolean alpha = FALSE; /* alpha channel present */
......@@ -1244,8 +1244,8 @@ layers_menu_set_sensitivity (GimpImage *gimage)
if (layer)
lm = (gimp_layer_get_mask (layer)) ? TRUE : FALSE;
fs = (gimp_image_floating_sel (gimage) == NULL);
ac = (gimp_image_get_active_channel (gimage) == NULL);
fs = (gimp_image_floating_sel (gimage) != NULL);
ac = (gimp_image_get_active_channel (gimage) != NULL);
alpha = layer && gimp_layer_has_alpha (layer);
......@@ -1275,38 +1275,38 @@ layers_menu_set_sensitivity (GimpImage *gimage)
SET_SENSITIVE ("New Layer...", gimage);
SET_SENSITIVE ("Stack/Raise Layer",
fs && ac && gimage && lp && alpha && prev);
!fs && !ac && gimage && lp && alpha && prev);
SET_SENSITIVE ("Stack/Lower Layer",
fs && ac && gimage && lp && next && next_alpha);
!fs && !ac && gimage && lp && next && next_alpha);
SET_SENSITIVE ("Stack/Layer to Top",
fs && ac && gimage && lp && alpha && prev);
!fs && !ac && gimage && lp && alpha && prev);
SET_SENSITIVE ("Stack/Layer to Bottom",
fs && ac && gimage && lp && next && next_alpha);
!fs && !ac && gimage && lp && next && next_alpha);
SET_SENSITIVE ("Duplicate Layer", fs && ac && gimage && lp);
SET_SENSITIVE ("Anchor Layer", !fs && ac && gimage && lp);
SET_SENSITIVE ("Delete Layer", ac && gimage && lp);
SET_SENSITIVE ("Duplicate Layer", !fs && !ac && gimage && lp);
SET_SENSITIVE ("Anchor Layer", !fs && !ac && gimage && lp);
SET_SENSITIVE ("Delete Layer", !ac && gimage && lp);
SET_SENSITIVE ("Layer Boundary Size...", ac && gimage && lp);
SET_SENSITIVE ("Layer to Imagesize", ac && gimage && lp);
SET_SENSITIVE ("Scale Layer...", ac && gimage && lp);
SET_SENSITIVE ("Layer Boundary Size...", !ac && gimage && lp);
SET_SENSITIVE ("Layer to Imagesize", !ac && gimage && lp);
SET_SENSITIVE ("Scale Layer...", !ac && gimage && lp);
SET_SENSITIVE ("Merge Visible Layers...", fs && ac && gimage && lp);
SET_SENSITIVE ("Merge Down", fs && ac && gimage && lp && next);
SET_SENSITIVE ("Flatten Image", fs && ac && gimage && lp);
SET_SENSITIVE ("Merge Visible Layers...", !fs && !ac && gimage && lp);
SET_SENSITIVE ("Merge Down", !fs && !ac && gimage && lp && next);
SET_SENSITIVE ("Flatten Image", !fs && !ac && gimage && lp);
SET_SENSITIVE ("Add Layer Mask...",
fs && ac && gimage && !lm && lp && alpha && !indexed);
SET_SENSITIVE ("Apply Layer Mask", fs && ac && gimage && lm && lp);
SET_SENSITIVE ("Delete Layer Mask", fs && ac && gimage && lm && lp);
SET_SENSITIVE ("Mask to Selection", fs && ac && gimage && lm && lp);
!fs && !ac && gimage && !lm && lp && alpha && !indexed);
SET_SENSITIVE ("Apply Layer Mask", !fs && !ac && gimage && lm && lp);
SET_SENSITIVE ("Delete Layer Mask", !fs && !ac && gimage && lm && lp);
SET_SENSITIVE ("Mask to Selection", !fs && !ac && gimage && lm && lp);
SET_SENSITIVE ("Add Alpha Channel", !alpha);
SET_SENSITIVE ("Alpha to Selection", fs && ac && gimage && lp && alpha);
SET_SENSITIVE ("Add Alpha Channel", !fs && !alpha);
SET_SENSITIVE ("Alpha to Selection", !fs && !ac && gimage && lp && alpha);
SET_SENSITIVE ("Edit Layer Attributes...", ac && gimage && lp);
SET_SENSITIVE ("Edit Layer Attributes...", !fs && !ac && gimage && lp);
#undef SET_SENSITIVE
}
......@@ -158,6 +158,7 @@ enum
MODE_CHANGED,
ALPHA_CHANGED,
SIZE_CHANGED,
FLOATING_SELECTION_CHANGED,
ACTIVE_LAYER_CHANGED,
ACTIVE_CHANNEL_CHANGED,
COMPONENT_VISIBILITY_CHANGED,
......@@ -244,6 +245,15 @@ gimp_image_class_init (GimpImageClass *klass)
gtk_signal_default_marshaller,
GTK_TYPE_NONE, 0);
gimp_image_signals[FLOATING_SELECTION_CHANGED] =
gtk_signal_new ("floating_selection_changed",
GTK_RUN_FIRST,
object_class->type,
GTK_SIGNAL_OFFSET (GimpImageClass,
floating_selection_changed),
gtk_signal_default_marshaller,
GTK_TYPE_NONE, 0);
gimp_image_signals[ACTIVE_LAYER_CHANGED] =
gtk_signal_new ("active_layer_changed",
GTK_RUN_FIRST,
......@@ -346,6 +356,7 @@ gimp_image_class_init (GimpImageClass *klass)
klass->mode_changed = NULL;
klass->alpha_changed = NULL;
klass->size_changed = NULL;
klass->floating_selection_changed = NULL;
klass->active_layer_changed = NULL;
klass->active_channel_changed = NULL;
klass->component_visibility_changed = NULL;
......@@ -1654,6 +1665,15 @@ gimp_image_size_changed (GimpImage *gimage)
gtk_signal_emit (GTK_OBJECT (gimage), gimp_image_signals[SIZE_CHANGED]);
}
void
gimp_image_floating_selection_changed (GimpImage *gimage)
{
g_return_if_fail (GIMP_IS_IMAGE (gimage));
gtk_signal_emit (GTK_OBJECT (gimage),
gimp_image_signals[FLOATING_SELECTION_CHANGED]);
}
/************************************************************/
/* Projection functions */
/************************************************************/
......
......@@ -151,6 +151,7 @@ struct _GimpImageClass
void (* mode_changed) (GimpImage *gimage);
void (* alpha_changed) (GimpImage *gimage);
void (* size_changed) (GimpImage *gimage);
void (* floating_selection_changed) (GimpImage *gimage);
void (* active_layer_changed) (GimpImage *gimage);
void (* active_channel_changed) (GimpImage *gimage);
void (* component_visibility_changed) (GimpImage *gimage,
......@@ -186,16 +187,6 @@ struct _Guide
};
typedef struct _GimpImageRepaintArg
{
GimpLayer *layer;
guint x;
guint y;
guint width;
guint height;
} GimpImageRepaintArg;
/* function declarations */
GtkType gimp_image_get_type (void);
......@@ -310,6 +301,7 @@ void gimp_image_colormap_changed (GimpImage *gimage,
void gimp_image_mode_changed (GimpImage *gimage);
void gimp_image_alpha_changed (GimpImage *gimage);
void gimp_image_size_changed (GimpImage *gimage);
void gimp_image_floating_selection_changed (GimpImage *gimage);
/* layer/channel functions */
......
......@@ -376,7 +376,7 @@ gimage_mask_float (GimpImage *gimage,
layer = gimp_layer_new_from_tiles (gimage,
gimp_drawable_type_with_alpha (drawable),
tiles,
_("Floated Layer"),
_("Floating Selection"),
OPAQUE_OPACITY, NORMAL_MODE);
/* Set the offsets */
......
......@@ -158,6 +158,7 @@ enum
MODE_CHANGED,
ALPHA_CHANGED,
SIZE_CHANGED,
FLOATING_SELECTION_CHANGED,
ACTIVE_LAYER_CHANGED,
ACTIVE_CHANNEL_CHANGED,
COMPONENT_VISIBILITY_CHANGED,
......@@ -244,6 +245,15 @@ gimp_image_class_init (GimpImageClass *klass)
gtk_signal_default_marshaller,
GTK_TYPE_NONE, 0);
gimp_image_signals[FLOATING_SELECTION_CHANGED] =
gtk_signal_new ("floating_selection_changed",
GTK_RUN_FIRST,
object_class->type,
GTK_SIGNAL_OFFSET (GimpImageClass,
floating_selection_changed),
gtk_signal_default_marshaller,
GTK_TYPE_NONE, 0);
gimp_image_signals[ACTIVE_LAYER_CHANGED] =
gtk_signal_new ("active_layer_changed",
GTK_RUN_FIRST,
......@@ -346,6 +356,7 @@ gimp_image_class_init (GimpImageClass *klass)
klass->mode_changed = NULL;
klass->alpha_changed = NULL;
klass->size_changed = NULL;
klass->floating_selection_changed = NULL;
klass->active_layer_changed = NULL;
klass->active_channel_changed = NULL;
klass->component_visibility_changed = NULL;
......@@ -1654,6 +1665,15 @@ gimp_image_size_changed (GimpImage *gimage)
gtk_signal_emit (GTK_OBJECT (gimage), gimp_image_signals[SIZE_CHANGED]);
}
void
gimp_image_floating_selection_changed (GimpImage *gimage)
{
g_return_if_fail (GIMP_IS_IMAGE (gimage));
gtk_signal_emit (GTK_OBJECT (gimage),
gimp_image_signals[FLOATING_SELECTION_CHANGED]);
}
/************************************************************/
/* Projection functions */
/************************************************************/
......
......@@ -151,6 +151,7 @@ struct _GimpImageClass
void (* mode_changed) (GimpImage *gimage);
void (* alpha_changed) (GimpImage *gimage);
void (* size_changed) (GimpImage *gimage);
void (* floating_selection_changed) (GimpImage *gimage);
void (* active_layer_changed) (GimpImage *gimage);
void (* active_channel_changed) (GimpImage *gimage);
void (* component_visibility_changed) (GimpImage *gimage,
......@@ -186,16 +187,6 @@ struct _Guide
};
typedef struct _GimpImageRepaintArg
{
GimpLayer *layer;
guint x;
guint y;
guint width;
guint height;
} GimpImageRepaintArg;
/* function declarations */
GtkType gimp_image_get_type (void);
......@@ -310,6 +301,7 @@ void gimp_image_colormap_changed (GimpImage *gimage,
void gimp_image_mode_changed (GimpImage *gimage);
void gimp_image_alpha_changed (GimpImage *gimage);
void gimp_image_size_changed (GimpImage *gimage);
void gimp_image_floating_selection_changed (GimpImage *gimage);
/* layer/channel functions */
......
......@@ -158,6 +158,7 @@ enum
MODE_CHANGED,
ALPHA_CHANGED,
SIZE_CHANGED,
FLOATING_SELECTION_CHANGED,
ACTIVE_LAYER_CHANGED,
ACTIVE_CHANNEL_CHANGED,
COMPONENT_VISIBILITY_CHANGED,
......@@ -244,6 +245,15 @@ gimp_image_class_init (GimpImageClass *klass)
gtk_signal_default_marshaller,
GTK_TYPE_NONE, 0);
gimp_image_signals[FLOATING_SELECTION_CHANGED] =
gtk_signal_new ("floating_selection_changed",
GTK_RUN_FIRST,
object_class->type,
GTK_SIGNAL_OFFSET (GimpImageClass,
floating_selection_changed),
gtk_signal_default_marshaller,
GTK_TYPE_NONE, 0);
gimp_image_signals[ACTIVE_LAYER_CHANGED] =
gtk_signal_new ("active_layer_changed",
GTK_RUN_FIRST,
......@@ -346,6 +356,7 @@ gimp_image_class_init (GimpImageClass *klass)
klass->mode_changed = NULL;
klass->alpha_changed = NULL;
klass->size_changed = NULL;
klass->floating_selection_changed = NULL;
klass->active_layer_changed = NULL;
klass->active_channel_changed = NULL;
klass->component_visibility_changed = NULL;
......@@ -1654,6 +1665,15 @@ gimp_image_size_changed (GimpImage *gimage)
gtk_signal_emit (GTK_OBJECT (gimage), gimp_image_signals[SIZE_CHANGED]);
}
void
gimp_image_floating_selection_changed (GimpImage *gimage)
{
g_return_if_fail (GIMP_IS_IMAGE (gimage));
gtk_signal_emit (GTK_OBJECT (gimage),
gimp_image_signals[FLOATING_SELECTION_CHANGED]);
}
/************************************************************/
/* Projection functions */
/************************************************************/
......
......@@ -151,6 +151,7 @@ struct _GimpImageClass
void (* mode_changed) (GimpImage *gimage);
void (* alpha_changed) (GimpImage *gimage);
void (* size_changed) (GimpImage *gimage);
void (* floating_selection_changed) (GimpImage *gimage);
void (* active_layer_changed) (GimpImage *gimage);
void (* active_channel_changed) (GimpImage *gimage);
void (* component_visibility_changed) (GimpImage *gimage,
......@@ -186,16 +187,6 @@ struct _Guide
};
typedef struct _GimpImageRepaintArg
{
GimpLayer *layer;
guint x;
guint y;
guint width;
guint height;
} GimpImageRepaintArg;
/* function declarations */
GtkType gimp_image_get_type (void);
......@@ -310,6 +301,7 @@ void gimp_image_colormap_changed (GimpImage *gimage,
void gimp_image_mode_changed (GimpImage *gimage);
void gimp_image_alpha_changed (GimpImage *gimage);
void gimp_image_size_changed (GimpImage *gimage);
void gimp_image_floating_selection_changed (GimpImage *gimage);
/* layer/channel functions */
......
......@@ -158,6 +158,7 @@ enum
MODE_CHANGED,
ALPHA_CHANGED,
SIZE_CHANGED,
FLOATING_SELECTION_CHANGED,
ACTIVE_LAYER_CHANGED,
ACTIVE_CHANNEL_CHANGED,
COMPONENT_VISIBILITY_CHANGED,
......@@ -244,6 +245,15 @@ gimp_image_class_init (GimpImageClass *klass)
gtk_signal_default_marshaller,
GTK_TYPE_NONE, 0);
gimp_image_signals[FLOATING_SELECTION_CHANGED] =
gtk_signal_new ("floating_selection_changed",
GTK_RUN_FIRST,
object_class->type,
GTK_SIGNAL_OFFSET (GimpImageClass,
floating_selection_changed),
gtk_signal_default_marshaller,
GTK_TYPE_NONE, 0);
gimp_image_signals[ACTIVE_LAYER_CHANGED] =
gtk_signal_new ("active_layer_changed",
GTK_RUN_FIRST,
......@@ -346,6 +356,7 @@ gimp_image_class_init (GimpImageClass *klass)
klass->mode_changed = NULL;
klass->alpha_changed = NULL;
klass->size_changed = NULL;
klass->floating_selection_changed = NULL;
klass->active_layer_changed = NULL;
klass->active_channel_changed = NULL;
klass->component_visibility_changed = NULL;
......@@ -1654,6 +1665,15 @@ gimp_image_size_changed (GimpImage *gimage)
gtk_signal_emit (GTK_OBJECT (gimage), gimp_image_signals[SIZE_CHANGED]);
}
void
gimp_image_floating_selection_changed (GimpImage *gimage)
{
g_return_if_fail (GIMP_IS_IMAGE (gimage));
gtk_signal_emit (GTK_OBJECT (gimage),
gimp_image_signals[FLOATING_SELECTION_CHANGED]);
}
/************************************************************/
/* Projection functions */
/************************************************************/
......
......@@ -151,6 +151,7 @@ struct _GimpImageClass
void (* mode_changed) (GimpImage *gimage);
void (* alpha_changed) (GimpImage *gimage);
void (* size_changed) (GimpImage *gimage);
void (* floating_selection_changed) (GimpImage *gimage);
void (* active_layer_changed) (GimpImage *gimage);
void (* active_channel_changed) (GimpImage *gimage);
void (* component_visibility_changed) (GimpImage *gimage,
......@@ -186,16 +187,6 @@ struct _Guide
};
typedef struct _GimpImageRepaintArg
{
GimpLayer *layer;
guint x;
guint y;
guint width;
guint height;
} GimpImageRepaintArg;
/* function declarations */
GtkType gimp_image_get_type (void);
......@@ -310,6 +301,7 @@ void gimp_image_colormap_changed (GimpImage *gimage,
void gimp_image_mode_changed (GimpImage *gimage);
void gimp_image_alpha_changed (GimpImage *gimage);
void gimp_image_size_changed (GimpImage *gimage);
void gimp_image_floating_selection_changed (GimpImage *gimage);
/* layer/channel functions */
......
......@@ -158,6 +158,7 @@ enum
MODE_CHANGED,
ALPHA_CHANGED,
SIZE_CHANGED,
FLOATING_SELECTION_CHANGED,
ACTIVE_LAYER_CHANGED,
ACTIVE_CHANNEL_CHANGED,
COMPONENT_VISIBILITY_CHANGED,
......@@ -244,6 +245,15 @@ gimp_image_class_init (GimpImageClass *klass)
gtk_signal_default_marshaller,
GTK_TYPE_NONE, 0);
gimp_image_signals[FLOATING_SELECTION_CHANGED] =
gtk_signal_new ("floating_selection_changed",
GTK_RUN_FIRST,
object_class->type,
GTK_SIGNAL_OFFSET (GimpImageClass,
floating_selection_changed),
gtk_signal_default_marshaller,
GTK_TYPE_NONE, 0);
gimp_image_signals[ACTIVE_LAYER_CHANGED] =
gtk_signal_new ("active_layer_changed",
GTK_RUN_FIRST,
......@@ -346,6 +356,7 @@ gimp_image_class_init (GimpImageClass *klass)
klass->mode_changed = NULL;
klass->alpha_changed = NULL;
klass->size_changed = NULL;
klass->floating_selection_changed = NULL;
klass->active_layer_changed = NULL;
klass->active_channel_changed = NULL;
klass->component_visibility_changed = NULL;
......@@ -1654,6 +1665,15 @@ gimp_image_size_changed (GimpImage *gimage)
gtk_signal_emit (GTK_OBJECT (gimage), gimp_image_signals[SIZE_CHANGED]);
}
void
gimp_image_floating_selection_changed (GimpImage *gimage)
{
g_return_if_fail (GIMP_IS_IMAGE (gimage));
gtk_signal_emit (GTK_OBJECT (gimage),
gimp_image_signals[FLOATING_SELECTION_CHANGED]);
}
/************************************************************/
/* Projection functions */
/************************************************************/
......
......@@ -151,6 +151,7 @@ struct _GimpImageClass
void (* mode_changed) (GimpImage *gimage);
void (* alpha_changed) (GimpImage *gimage);
void (* size_changed) (GimpImage *gimage);
void (* floating_selection_changed) (GimpImage *gimage);
void (* active_layer_changed) (GimpImage *gimage);
void (* active_channel_changed) (GimpImage *gimage);
void (* component_visibility_changed) (GimpImage *gimage,
......@@ -186,16 +187,6 @@ struct _Guide
};
typedef struct _GimpImageRepaintArg
{
GimpLayer *layer;
guint x;
guint y;
guint width;
guint height;
} GimpImageRepaintArg;
/* function declarations */
GtkType gimp_image_get_type (void);
......@@ -310,6 +301,7 @@ void gimp_image_colormap_changed (GimpImage *gimage,
void gimp_image_mode_changed (GimpImage *gimage);
void gimp_image_alpha_changed (GimpImage *gimage);
void gimp_image_size_changed (GimpImage *gimage);
void gimp_image_floating_selection_changed (GimpImage *gimage);
/* layer/channel functions */
......
......@@ -1484,6 +1484,8 @@ undo_pop_layer (GimpImage *gimage,
gimage->floating_sel = NULL;
/* reset the old drawable */
floating_sel_reset (lu->layer);
gimp_image_floating_selection_changed (gimage);
}
drawable_update (GIMP_DRAWABLE (lu->layer), 0, 0,
......@@ -1509,6 +1511,9 @@ undo_pop_layer (GimpImage *gimage,
GIMP_OBJECT (lu->layer), lu->prev_position);
gimp_image_set_active_layer (gimage, lu->layer);
if (gimp_layer_is_floating_sel (lu->layer))
gimp_image_floating_selection_changed (gimage);
drawable_update (GIMP_DRAWABLE (lu->layer), 0, 0,
GIMP_DRAWABLE (lu->layer)->width,
GIMP_DRAWABLE (lu->layer)->height);
......@@ -2028,6 +2033,8 @@ undo_pop_fs_to_layer (GimpImage *gimage,
break;
}
gimp_image_floating_selection_changed (gimage);
return TRUE;
}
......@@ -2113,6 +2120,8 @@ undo_pop_fs_rigor (GimpImage *gimage,
break;
}
gimp_image_floating_selection_changed (gimage);
return TRUE;
}
......@@ -2192,6 +2201,8 @@ undo_pop_fs_relax (GimpImage *gimage,
break;
}
gimp_image_floating_selection_changed (gimage);
return TRUE;
}
......
......@@ -158,6 +158,7 @@ enum
MODE_CHANGED,
ALPHA_CHANGED,
SIZE_CHANGED,
FLOATING_SELECTION_CHANGED,
ACTIVE_LAYER_CHANGED,
ACTIVE_CHANNEL_CHANGED,
COMPONENT_VISIBILITY_CHANGED,
......@@ -244,6 +245,15 @@ gimp_image_class_init (GimpImageClass *klass)
gtk_signal_default_marshaller,
GTK_TYPE_NONE, 0);