Change PDB wrappers to check for "is group" separately

"lock-content" will be separate from "is-group" soon, so add separate
checks for groups. Also remove some checks that were added to make
wrappers invokable even though the group appeared locked.
This commit is contained in:
Michael Natterer 2009-08-29 09:16:35 +02:00
parent 074257bd37
commit 585a3fa6e4
22 changed files with 241 additions and 111 deletions

View file

@ -67,6 +67,7 @@ brightness_contrast_invoker (GimpProcedure *procedure,
if (success)
{
if (! gimp_pdb_item_is_attached (GIMP_ITEM (drawable), TRUE, error) ||
! gimp_pdb_item_is_not_group (GIMP_ITEM (drawable), error) ||
gimp_drawable_is_indexed (drawable))
success = FALSE;
@ -107,6 +108,7 @@ levels_invoker (GimpProcedure *procedure,
if (success)
{
if (! gimp_pdb_item_is_attached (GIMP_ITEM (drawable), TRUE, error) ||
! gimp_pdb_item_is_not_group (GIMP_ITEM (drawable), error) ||
gimp_drawable_is_indexed (drawable) ||
(! gimp_drawable_has_alpha (drawable) &&
channel == GIMP_HISTOGRAM_ALPHA) ||
@ -142,6 +144,7 @@ levels_auto_invoker (GimpProcedure *procedure,
if (success)
{
if (! gimp_pdb_item_is_attached (GIMP_ITEM (drawable), TRUE, error) ||
! gimp_pdb_item_is_not_group (GIMP_ITEM (drawable), error) ||
gimp_drawable_is_indexed (drawable))
success = FALSE;
@ -169,6 +172,7 @@ levels_stretch_invoker (GimpProcedure *procedure,
if (success)
{
if (! gimp_pdb_item_is_attached (GIMP_ITEM (drawable), TRUE, error) ||
! gimp_pdb_item_is_not_group (GIMP_ITEM (drawable), error) ||
gimp_drawable_is_indexed (drawable))
success = FALSE;
@ -198,6 +202,7 @@ posterize_invoker (GimpProcedure *procedure,
if (success)
{
if (! gimp_pdb_item_is_attached (GIMP_ITEM (drawable), TRUE, error) ||
! gimp_pdb_item_is_not_group (GIMP_ITEM (drawable), error) ||
gimp_drawable_is_indexed (drawable))
success = FALSE;
@ -225,6 +230,7 @@ desaturate_invoker (GimpProcedure *procedure,
if (success)
{
if (! gimp_pdb_item_is_attached (GIMP_ITEM (drawable), TRUE, error) ||
! gimp_pdb_item_is_not_group (GIMP_ITEM (drawable), error) ||
! gimp_drawable_is_rgb (drawable))
success = FALSE;
@ -254,6 +260,7 @@ desaturate_full_invoker (GimpProcedure *procedure,
if (success)
{
if (! gimp_pdb_item_is_attached (GIMP_ITEM (drawable), TRUE, error) ||
! gimp_pdb_item_is_not_group (GIMP_ITEM (drawable), error) ||
! gimp_drawable_is_rgb (drawable))
success = FALSE;
@ -283,6 +290,7 @@ equalize_invoker (GimpProcedure *procedure,
if (success)
{
if (! gimp_pdb_item_is_attached (GIMP_ITEM (drawable), TRUE, error) ||
! gimp_pdb_item_is_not_group (GIMP_ITEM (drawable), error) ||
gimp_drawable_is_indexed (drawable))
success = FALSE;
@ -310,6 +318,7 @@ invert_invoker (GimpProcedure *procedure,
if (success)
{
if (! gimp_pdb_item_is_attached (GIMP_ITEM (drawable), TRUE, error) ||
! gimp_pdb_item_is_not_group (GIMP_ITEM (drawable), error) ||
gimp_drawable_is_indexed (drawable))
success = FALSE;
@ -343,6 +352,7 @@ curves_spline_invoker (GimpProcedure *procedure,
if (success)
{
if (! gimp_pdb_item_is_attached (GIMP_ITEM (drawable), TRUE, error) ||
! gimp_pdb_item_is_not_group (GIMP_ITEM (drawable), error) ||
gimp_drawable_is_indexed (drawable) || (num_points & 1) ||
(! gimp_drawable_has_alpha (drawable) &&
channel == GIMP_HISTOGRAM_ALPHA) ||
@ -381,6 +391,7 @@ curves_explicit_invoker (GimpProcedure *procedure,
if (success)
{
if (! gimp_pdb_item_is_attached (GIMP_ITEM (drawable), TRUE, error) ||
! gimp_pdb_item_is_not_group (GIMP_ITEM (drawable), error) ||
gimp_drawable_is_indexed (drawable) || (num_bytes != 256) ||
(! gimp_drawable_has_alpha (drawable) &&
channel == GIMP_HISTOGRAM_ALPHA) ||
@ -423,6 +434,7 @@ color_balance_invoker (GimpProcedure *procedure,
if (success)
{
if (! gimp_pdb_item_is_attached (GIMP_ITEM (drawable), TRUE, error) ||
! gimp_pdb_item_is_not_group (GIMP_ITEM (drawable), error) ||
gimp_drawable_is_indexed (drawable))
success = FALSE;
@ -459,6 +471,7 @@ colorize_invoker (GimpProcedure *procedure,
if (success)
{
if (! gimp_pdb_item_is_attached (GIMP_ITEM (drawable), TRUE, error) ||
! gimp_pdb_item_is_not_group (GIMP_ITEM (drawable), error) ||
! gimp_drawable_is_rgb (drawable))
success = FALSE;
@ -568,6 +581,7 @@ hue_saturation_invoker (GimpProcedure *procedure,
if (success)
{
if (! gimp_pdb_item_is_attached (GIMP_ITEM (drawable), TRUE, error) ||
! gimp_pdb_item_is_not_group (GIMP_ITEM (drawable), error) ||
gimp_drawable_is_indexed (drawable))
success = FALSE;
@ -600,6 +614,7 @@ threshold_invoker (GimpProcedure *procedure,
if (success)
{
if (! gimp_pdb_item_is_attached (GIMP_ITEM (drawable), TRUE, error) ||
! gimp_pdb_item_is_not_group (GIMP_ITEM (drawable), error) ||
gimp_drawable_is_indexed (drawable) ||
(low_threshold > high_threshold))
success = FALSE;

View file

@ -935,7 +935,8 @@ drawable_merge_shadow_invoker (GimpProcedure *procedure,
if (success)
{
if (gimp_pdb_item_is_attached (GIMP_ITEM (drawable), TRUE, error))
if (gimp_pdb_item_is_attached (GIMP_ITEM (drawable), TRUE, error) &&
gimp_pdb_item_is_not_group (GIMP_ITEM (drawable), error))
{
const gchar *undo_desc = _("Plug-In");
@ -1093,6 +1094,7 @@ drawable_set_pixel_invoker (GimpProcedure *procedure,
if (success)
{
if (gimp_pdb_item_is_writable (GIMP_ITEM (drawable), error) &&
gimp_pdb_item_is_not_group (GIMP_ITEM (drawable), error) &&
x_coord < gimp_item_get_width (GIMP_ITEM (drawable)) &&
y_coord < gimp_item_get_height (GIMP_ITEM (drawable)) &&
num_channels == gimp_drawable_bytes (drawable))
@ -1139,7 +1141,8 @@ drawable_fill_invoker (GimpProcedure *procedure,
if (success)
{
if (gimp_pdb_item_is_writable (GIMP_ITEM (drawable), error))
if (gimp_pdb_item_is_writable (GIMP_ITEM (drawable), error) &&
gimp_pdb_item_is_not_group (GIMP_ITEM (drawable), error))
gimp_drawable_fill_by_type (drawable, context, (GimpFillType) fill_type);
else
success = FALSE;
@ -1172,7 +1175,8 @@ drawable_offset_invoker (GimpProcedure *procedure,
if (success)
{
if (gimp_pdb_item_is_attached (GIMP_ITEM (drawable), TRUE, error))
if (gimp_pdb_item_is_attached (GIMP_ITEM (drawable), TRUE, error) &&
gimp_pdb_item_is_not_group (GIMP_ITEM (drawable), error))
gimp_drawable_offset (drawable, context, wrap_around, fill_type,
offset_x, offset_y);
else

View file

@ -68,10 +68,7 @@ drawable_transform_flip_simple_invoker (GimpProcedure *procedure,
{
gint x, y, width, height;
/* group items are transformable even though they appear locked */
success = (gimp_pdb_item_is_attached (GIMP_ITEM (drawable), FALSE, error) &&
(gimp_viewable_get_children (GIMP_VIEWABLE (drawable)) ||
gimp_pdb_item_is_writable (GIMP_ITEM (drawable), error)));
success = gimp_pdb_item_is_attached (GIMP_ITEM (drawable), TRUE, error);
if (success &&
gimp_drawable_mask_intersect (drawable, &x, &y, &width, &height))
@ -444,10 +441,7 @@ drawable_transform_rotate_simple_invoker (GimpProcedure *procedure,
{
gint x, y, width, height;
/* group items are transformable even though they appear locked */
success = (gimp_pdb_item_is_attached (GIMP_ITEM (drawable), FALSE, error) &&
(gimp_viewable_get_children (GIMP_VIEWABLE (drawable)) ||
gimp_pdb_item_is_writable (GIMP_ITEM (drawable), error)));
success = gimp_pdb_item_is_attached (GIMP_ITEM (drawable), FALSE, error);
if (success &&
gimp_drawable_mask_intersect (drawable, &x, &y, &width, &height))

View file

@ -63,7 +63,8 @@ edit_cut_invoker (GimpProcedure *procedure,
if (success)
{
if (gimp_pdb_item_is_attached (GIMP_ITEM (drawable), TRUE, error))
if (gimp_pdb_item_is_attached (GIMP_ITEM (drawable), TRUE, error) &&
gimp_pdb_item_is_not_group (GIMP_ITEM (drawable), error))
{
GimpImage *image = gimp_item_get_image (GIMP_ITEM (drawable));
GError *my_error = NULL;
@ -195,7 +196,8 @@ edit_paste_invoker (GimpProcedure *procedure,
if (success)
{
if (gimp->global_buffer &&
gimp_pdb_item_is_attached (GIMP_ITEM (drawable), TRUE, error))
gimp_pdb_item_is_attached (GIMP_ITEM (drawable), TRUE, error) &&
gimp_pdb_item_is_not_group (GIMP_ITEM (drawable), error))
{
floating_sel = gimp_edit_paste (gimp_item_get_image (GIMP_ITEM (drawable)),
drawable, gimp->global_buffer,
@ -269,7 +271,8 @@ edit_named_cut_invoker (GimpProcedure *procedure,
if (success)
{
if (gimp_pdb_item_is_attached (GIMP_ITEM (drawable), TRUE, error))
if (gimp_pdb_item_is_attached (GIMP_ITEM (drawable), TRUE, error) &&
gimp_pdb_item_is_not_group (GIMP_ITEM (drawable), error))
{
GimpImage *image = gimp_item_get_image (GIMP_ITEM (drawable));
GError *my_error = NULL;
@ -423,7 +426,9 @@ edit_named_paste_invoker (GimpProcedure *procedure,
{
GimpBuffer *buffer = gimp_pdb_get_buffer (gimp, buffer_name, error);
if (buffer && gimp_pdb_item_is_attached (GIMP_ITEM (drawable), TRUE, error))
if (buffer &&
gimp_pdb_item_is_attached (GIMP_ITEM (drawable), TRUE, error) &&
gimp_pdb_item_is_not_group (GIMP_ITEM (drawable), error))
{
floating_sel = gimp_edit_paste (gimp_item_get_image (GIMP_ITEM (drawable)),
drawable, buffer,
@ -498,7 +503,8 @@ edit_clear_invoker (GimpProcedure *procedure,
if (success)
{
if (gimp_pdb_item_is_attached (GIMP_ITEM (drawable), TRUE, error))
if (gimp_pdb_item_is_attached (GIMP_ITEM (drawable), TRUE, error) &&
gimp_pdb_item_is_not_group (GIMP_ITEM (drawable), error))
{
GimpImage *image = gimp_item_get_image (GIMP_ITEM (drawable));
@ -529,7 +535,8 @@ edit_fill_invoker (GimpProcedure *procedure,
if (success)
{
if (gimp_pdb_item_is_attached (GIMP_ITEM (drawable), TRUE, error))
if (gimp_pdb_item_is_attached (GIMP_ITEM (drawable), TRUE, error) &&
gimp_pdb_item_is_not_group (GIMP_ITEM (drawable), error))
{
GimpImage *image = gimp_item_get_image (GIMP_ITEM (drawable));
@ -573,7 +580,8 @@ edit_bucket_fill_invoker (GimpProcedure *procedure,
if (success)
{
if (gimp_pdb_item_is_attached (GIMP_ITEM (drawable), TRUE, error))
if (gimp_pdb_item_is_attached (GIMP_ITEM (drawable), TRUE, error) &&
gimp_pdb_item_is_not_group (GIMP_ITEM (drawable), error))
{
GimpImage *image = gimp_item_get_image (GIMP_ITEM (drawable));
gboolean do_seed_fill;
@ -629,7 +637,8 @@ edit_bucket_fill_full_invoker (GimpProcedure *procedure,
if (success)
{
if (gimp_pdb_item_is_attached (GIMP_ITEM (drawable), TRUE, error))
if (gimp_pdb_item_is_attached (GIMP_ITEM (drawable), TRUE, error) &&
gimp_pdb_item_is_not_group (GIMP_ITEM (drawable), error))
{
GimpImage *image = gimp_item_get_image (GIMP_ITEM (drawable));
gboolean do_seed_fill;
@ -697,7 +706,8 @@ edit_blend_invoker (GimpProcedure *procedure,
if (success)
{
success = gimp_pdb_item_is_attached (GIMP_ITEM (drawable), TRUE, error);
success = (gimp_pdb_item_is_attached (GIMP_ITEM (drawable), TRUE, error) &&
gimp_pdb_item_is_not_group (GIMP_ITEM (drawable), error));
if (success && supersample)
{
@ -749,7 +759,8 @@ edit_stroke_invoker (GimpProcedure *procedure,
if (success)
{
if (gimp_pdb_item_is_attached (GIMP_ITEM (drawable), TRUE, error))
if (gimp_pdb_item_is_attached (GIMP_ITEM (drawable), TRUE, error) &&
gimp_pdb_item_is_not_group (GIMP_ITEM (drawable), error))
{
GimpImage *image = gimp_item_get_image (GIMP_ITEM (drawable));
GimpStrokeOptions *options = gimp_stroke_options_new (gimp, context, TRUE);
@ -790,6 +801,7 @@ edit_stroke_vectors_invoker (GimpProcedure *procedure,
if (success)
{
if (gimp_pdb_item_is_attached (GIMP_ITEM (drawable), TRUE, error) &&
gimp_pdb_item_is_not_group (GIMP_ITEM (drawable), error) &&
gimp_pdb_item_is_attached (GIMP_ITEM (vectors), FALSE, error))
{
GimpStrokeOptions *options = gimp_stroke_options_new (gimp, context, TRUE);

View file

@ -152,7 +152,8 @@ floating_sel_attach_invoker (GimpProcedure *procedure,
if (success)
{
if (gimp_pdb_item_is_attached (GIMP_ITEM (drawable), TRUE, error))
if (gimp_pdb_item_is_attached (GIMP_ITEM (drawable), TRUE, error) &&
gimp_pdb_item_is_not_group (GIMP_ITEM (drawable), error))
floating_sel_attach (layer, drawable);
else
success = FALSE;

View file

@ -232,7 +232,8 @@ layer_add_alpha_invoker (GimpProcedure *procedure,
if (success)
{
if (gimp_pdb_item_is_writable (GIMP_ITEM (layer), error))
if (gimp_pdb_item_is_writable (GIMP_ITEM (layer), error) &&
gimp_pdb_item_is_not_group (GIMP_ITEM (layer), error))
gimp_layer_add_alpha (layer);
else
success = FALSE;
@ -257,7 +258,8 @@ layer_flatten_invoker (GimpProcedure *procedure,
if (success)
{
if (gimp_pdb_item_is_writable (GIMP_ITEM (layer), error))
if (gimp_pdb_item_is_writable (GIMP_ITEM (layer), error) &&
gimp_pdb_item_is_not_group (GIMP_ITEM (layer), error))
gimp_layer_flatten (layer, context);
else
success = FALSE;
@ -288,10 +290,7 @@ layer_scale_invoker (GimpProcedure *procedure,
if (success)
{
/* group items are transformable even though they appear locked */
if (gimp_pdb_item_is_attached (GIMP_ITEM (layer), FALSE, error) &&
(gimp_viewable_get_children (GIMP_VIEWABLE (layer)) ||
gimp_pdb_item_is_writable (GIMP_ITEM (layer), error)))
if (gimp_pdb_item_is_attached (GIMP_ITEM (layer), TRUE, error))
{
if (progress)
gimp_progress_start (progress, _("Scaling"), FALSE);
@ -336,10 +335,7 @@ layer_scale_full_invoker (GimpProcedure *procedure,
if (success)
{
/* group items are transformable even though they appear locked */
if (gimp_pdb_item_is_attached (GIMP_ITEM (layer), FALSE, error) &&
(gimp_viewable_get_children (GIMP_VIEWABLE (layer)) ||
gimp_pdb_item_is_writable (GIMP_ITEM (layer), error)))
if (gimp_pdb_item_is_attached (GIMP_ITEM (layer), TRUE, error))
{
if (progress)
gimp_progress_start (progress, _("Scaling"), FALSE);

View file

@ -116,7 +116,9 @@ airbrush_invoker (GimpProcedure *procedure,
{
GimpPaintInfo *info = gimp_pdb_get_paint_info (gimp, "gimp-airbrush", error);
if (info && gimp_pdb_item_is_attached (GIMP_ITEM (drawable), TRUE, error))
if (info &&
gimp_pdb_item_is_attached (GIMP_ITEM (drawable), TRUE, error) &&
gimp_pdb_item_is_not_group (GIMP_ITEM (drawable), error))
{
GimpPaintOptions *options = gimp_paint_options_new (info);
@ -158,7 +160,9 @@ airbrush_default_invoker (GimpProcedure *procedure,
{
GimpPaintInfo *info = gimp_pdb_get_paint_info (gimp, "gimp-airbrush", error);
if (info && gimp_pdb_item_is_attached (GIMP_ITEM (drawable), TRUE, error))
if (info &&
gimp_pdb_item_is_attached (GIMP_ITEM (drawable), TRUE, error) &&
gimp_pdb_item_is_not_group (GIMP_ITEM (drawable), error))
{
GimpPaintOptions *options = gimp_paint_options_new (info);
@ -204,7 +208,9 @@ clone_invoker (GimpProcedure *procedure,
{
GimpPaintInfo *info = gimp_pdb_get_paint_info (gimp, "gimp-clone", error);
if (info && gimp_pdb_item_is_attached (GIMP_ITEM (drawable), TRUE, error))
if (info &&
gimp_pdb_item_is_attached (GIMP_ITEM (drawable), TRUE, error) &&
gimp_pdb_item_is_not_group (GIMP_ITEM (drawable), error))
{
GimpPaintOptions *options = gimp_paint_options_new (info);
@ -249,7 +255,9 @@ clone_default_invoker (GimpProcedure *procedure,
{
GimpPaintInfo *info = gimp_pdb_get_paint_info (gimp, "gimp-clone", error);
if (info && gimp_pdb_item_is_attached (GIMP_ITEM (drawable), TRUE, error))
if (info &&
gimp_pdb_item_is_attached (GIMP_ITEM (drawable), TRUE, error) &&
gimp_pdb_item_is_not_group (GIMP_ITEM (drawable), error))
{
GimpPaintOptions *options = gimp_paint_options_new (info);
@ -291,7 +299,9 @@ convolve_invoker (GimpProcedure *procedure,
{
GimpPaintInfo *info = gimp_pdb_get_paint_info (gimp, "gimp-convolve", error);
if (info && gimp_pdb_item_is_attached (GIMP_ITEM (drawable), TRUE, error))
if (info &&
gimp_pdb_item_is_attached (GIMP_ITEM (drawable), TRUE, error) &&
gimp_pdb_item_is_not_group (GIMP_ITEM (drawable), error))
{
GimpPaintOptions *options = gimp_paint_options_new (info);
@ -334,7 +344,9 @@ convolve_default_invoker (GimpProcedure *procedure,
{
GimpPaintInfo *info = gimp_pdb_get_paint_info (gimp, "gimp-convolve", error);
if (info && gimp_pdb_item_is_attached (GIMP_ITEM (drawable), TRUE, error))
if (info &&
gimp_pdb_item_is_attached (GIMP_ITEM (drawable), TRUE, error) &&
gimp_pdb_item_is_not_group (GIMP_ITEM (drawable), error))
{
GimpPaintOptions *options = gimp_paint_options_new (info);
@ -378,7 +390,9 @@ dodgeburn_invoker (GimpProcedure *procedure,
{
GimpPaintInfo *info = gimp_pdb_get_paint_info (gimp, "gimp-dodge-burn", error);
if (info && gimp_pdb_item_is_attached (GIMP_ITEM (drawable), TRUE, error))
if (info &&
gimp_pdb_item_is_attached (GIMP_ITEM (drawable), TRUE, error) &&
gimp_pdb_item_is_not_group (GIMP_ITEM (drawable), error))
{
GimpPaintOptions *options = gimp_paint_options_new (info);
@ -422,7 +436,9 @@ dodgeburn_default_invoker (GimpProcedure *procedure,
{
GimpPaintInfo *info = gimp_pdb_get_paint_info (gimp, "gimp-dodge-burn", error);
if (info && gimp_pdb_item_is_attached (GIMP_ITEM (drawable), TRUE, error))
if (info &&
gimp_pdb_item_is_attached (GIMP_ITEM (drawable), TRUE, error) &&
gimp_pdb_item_is_not_group (GIMP_ITEM (drawable), error))
{
GimpPaintOptions *options = gimp_paint_options_new (info);
@ -464,7 +480,9 @@ eraser_invoker (GimpProcedure *procedure,
{
GimpPaintInfo *info = gimp_pdb_get_paint_info (gimp, "gimp-eraser", error);
if (info && gimp_pdb_item_is_attached (GIMP_ITEM (drawable), TRUE, error))
if (info &&
gimp_pdb_item_is_attached (GIMP_ITEM (drawable), TRUE, error) &&
gimp_pdb_item_is_not_group (GIMP_ITEM (drawable), error))
{
GimpPaintOptions *options = gimp_paint_options_new (info);
@ -507,7 +525,9 @@ eraser_default_invoker (GimpProcedure *procedure,
{
GimpPaintInfo *info = gimp_pdb_get_paint_info (gimp, "gimp-eraser", error);
if (info && gimp_pdb_item_is_attached (GIMP_ITEM (drawable), TRUE, error))
if (info &&
gimp_pdb_item_is_attached (GIMP_ITEM (drawable), TRUE, error) &&
gimp_pdb_item_is_not_group (GIMP_ITEM (drawable), error))
{
GimpPaintOptions *options = gimp_paint_options_new (info);
@ -551,7 +571,9 @@ heal_invoker (GimpProcedure *procedure,
{
GimpPaintInfo *info = gimp_pdb_get_paint_info (gimp, "gimp-heal", error);
if (info && gimp_pdb_item_is_attached (GIMP_ITEM (drawable), TRUE, error))
if (info &&
gimp_pdb_item_is_attached (GIMP_ITEM (drawable), TRUE, error) &&
gimp_pdb_item_is_not_group (GIMP_ITEM (drawable), error))
{
GimpPaintOptions *options = gimp_paint_options_new (info);
@ -592,7 +614,9 @@ heal_default_invoker (GimpProcedure *procedure,
{
GimpPaintInfo *info = gimp_pdb_get_paint_info (gimp, "gimp-heal", error);
if (info && gimp_pdb_item_is_attached (GIMP_ITEM (drawable), TRUE, error))
if (info &&
gimp_pdb_item_is_attached (GIMP_ITEM (drawable), TRUE, error) &&
gimp_pdb_item_is_not_group (GIMP_ITEM (drawable), error))
{
GimpPaintOptions *options = gimp_paint_options_new (info);
@ -636,7 +660,9 @@ paintbrush_invoker (GimpProcedure *procedure,
{
GimpPaintInfo *info = gimp_pdb_get_paint_info (gimp, "gimp-paintbrush", error);
if (info && gimp_pdb_item_is_attached (GIMP_ITEM (drawable), TRUE, error))
if (info &&
gimp_pdb_item_is_attached (GIMP_ITEM (drawable), TRUE, error) &&
gimp_pdb_item_is_not_group (GIMP_ITEM (drawable), error))
{
GimpPaintOptions *options = gimp_paint_options_new (info);
@ -682,7 +708,9 @@ paintbrush_default_invoker (GimpProcedure *procedure,
{
GimpPaintInfo *info = gimp_pdb_get_paint_info (gimp, "gimp-paintbrush", error);
if (info && gimp_pdb_item_is_attached (GIMP_ITEM (drawable), TRUE, error))
if (info &&
gimp_pdb_item_is_attached (GIMP_ITEM (drawable), TRUE, error) &&
gimp_pdb_item_is_not_group (GIMP_ITEM (drawable), error))
{
GimpPaintOptions *options = gimp_paint_options_new (info);
@ -720,7 +748,9 @@ pencil_invoker (GimpProcedure *procedure,
{
GimpPaintInfo *info = gimp_pdb_get_paint_info (gimp, "gimp-pencil", error);
if (info && gimp_pdb_item_is_attached (GIMP_ITEM (drawable), TRUE, error))
if (info &&
gimp_pdb_item_is_attached (GIMP_ITEM (drawable), TRUE, error) &&
gimp_pdb_item_is_not_group (GIMP_ITEM (drawable), error))
{
GimpPaintOptions *options = gimp_paint_options_new (info);
@ -760,7 +790,9 @@ smudge_invoker (GimpProcedure *procedure,
{
GimpPaintInfo *info = gimp_pdb_get_paint_info (gimp, "gimp-smudge", error);
if (info && gimp_pdb_item_is_attached (GIMP_ITEM (drawable), TRUE, error))
if (info &&
gimp_pdb_item_is_attached (GIMP_ITEM (drawable), TRUE, error) &&
gimp_pdb_item_is_not_group (GIMP_ITEM (drawable), error))
{
GimpPaintOptions *options = gimp_paint_options_new (info);
@ -802,7 +834,9 @@ smudge_default_invoker (GimpProcedure *procedure,
{
GimpPaintInfo *info = gimp_pdb_get_paint_info (gimp, "gimp-smudge", error);
if (info && gimp_pdb_item_is_attached (GIMP_ITEM (drawable), TRUE, error))
if (info &&
gimp_pdb_item_is_attached (GIMP_ITEM (drawable), TRUE, error) &&
gimp_pdb_item_is_not_group (GIMP_ITEM (drawable), error))
{
GimpPaintOptions *options = gimp_paint_options_new (info);

View file

@ -332,7 +332,8 @@ path_stroke_current_invoker (GimpProcedure *procedure,
GimpDrawable *drawable = gimp_image_get_active_drawable (image);
if (vectors && drawable &&
gimp_pdb_item_is_writable (GIMP_ITEM (drawable), error))
gimp_pdb_item_is_writable (GIMP_ITEM (drawable), error) &&
gimp_pdb_item_is_not_group (GIMP_ITEM (drawable), error))
{
GimpStrokeOptions *options = gimp_stroke_options_new (gimp, context, TRUE);

View file

@ -190,7 +190,8 @@ selection_float_invoker (GimpProcedure *procedure,
if (success)
{
if (gimp_pdb_item_is_attached (GIMP_ITEM (drawable), TRUE, error))
if (gimp_pdb_item_is_attached (GIMP_ITEM (drawable), TRUE, error) &&
gimp_pdb_item_is_not_group (GIMP_ITEM (drawable), error))
{
GimpImage *image = gimp_item_get_image (GIMP_ITEM (drawable));

View file

@ -72,7 +72,9 @@ text_fontname_invoker (GimpProcedure *procedure,
if (success)
{
if (drawable && ! gimp_pdb_item_is_attached (GIMP_ITEM (drawable), TRUE, error))
if (drawable &&
(! gimp_pdb_item_is_attached (GIMP_ITEM (drawable), TRUE, error) ||
! gimp_pdb_item_is_not_group (GIMP_ITEM (drawable), error)))
success = FALSE;
if (success)
@ -194,7 +196,9 @@ text_invoker (GimpProcedure *procedure,
if (success)
{
if (drawable && ! gimp_pdb_item_is_attached (GIMP_ITEM (drawable), TRUE, error))
if (drawable &&
(! gimp_pdb_item_is_attached (GIMP_ITEM (drawable), TRUE, error) ||
! gimp_pdb_item_is_not_group (GIMP_ITEM (drawable), error)))
success = FALSE;
if (success)

View file

@ -1121,7 +1121,8 @@ vectors_bezier_stroke_new_moveto_invoker (GimpProcedure *procedure,
if (success)
{
if (gimp_pdb_item_is_writable (GIMP_ITEM (vectors), error))
if (gimp_pdb_item_is_writable (GIMP_ITEM (vectors), error) &&
gimp_pdb_item_is_not_group (GIMP_ITEM (vectors), error))
{
GimpStroke *stroke;
GimpCoords coord0 = GIMP_COORDS_DEFAULT_VALUES;
@ -1339,7 +1340,8 @@ vectors_bezier_stroke_new_ellipse_invoker (GimpProcedure *procedure,
if (success)
{
if (gimp_pdb_item_is_writable (GIMP_ITEM (vectors), error))
if (gimp_pdb_item_is_writable (GIMP_ITEM (vectors), error) &&
gimp_pdb_item_is_not_group (GIMP_ITEM (vectors), error))
{
GimpStroke *stroke;
GimpCoords coord0 = GIMP_COORDS_DEFAULT_VALUES;

View file

@ -42,6 +42,7 @@ HELP
code => <<'CODE'
{
if (! gimp_pdb_item_is_attached (GIMP_ITEM (drawable), TRUE, error) ||
! gimp_pdb_item_is_not_group (GIMP_ITEM (drawable), error) ||
gimp_drawable_is_indexed (drawable))
success = FALSE;
@ -94,6 +95,7 @@ HELP
code => <<'CODE'
{
if (! gimp_pdb_item_is_attached (GIMP_ITEM (drawable), TRUE, error) ||
! gimp_pdb_item_is_not_group (GIMP_ITEM (drawable), error) ||
gimp_drawable_is_indexed (drawable) ||
(! gimp_drawable_has_alpha (drawable) &&
channel == GIMP_HISTOGRAM_ALPHA) ||
@ -136,6 +138,7 @@ HELP
code => <<'CODE'
{
if (! gimp_pdb_item_is_attached (GIMP_ITEM (drawable), TRUE, error) ||
! gimp_pdb_item_is_not_group (GIMP_ITEM (drawable), error) ||
gimp_drawable_is_indexed (drawable))
success = FALSE;
@ -159,6 +162,7 @@ sub levels_auto {
code => <<'CODE'
{
if (! gimp_pdb_item_is_attached (GIMP_ITEM (drawable), TRUE, error) ||
! gimp_pdb_item_is_not_group (GIMP_ITEM (drawable), error) ||
gimp_drawable_is_indexed (drawable))
success = FALSE;
@ -192,6 +196,7 @@ HELP
code => <<'CODE'
{
if (! gimp_pdb_item_is_attached (GIMP_ITEM (drawable), TRUE, error) ||
! gimp_pdb_item_is_not_group (GIMP_ITEM (drawable), error) ||
gimp_drawable_is_indexed (drawable))
success = FALSE;
@ -222,6 +227,7 @@ HELP
code => <<'CODE'
{
if (! gimp_pdb_item_is_attached (GIMP_ITEM (drawable), TRUE, error) ||
! gimp_pdb_item_is_not_group (GIMP_ITEM (drawable), error) ||
! gimp_drawable_is_rgb (drawable))
success = FALSE;
@ -259,6 +265,7 @@ HELP
code => <<'CODE'
{
if (! gimp_pdb_item_is_attached (GIMP_ITEM (drawable), TRUE, error) ||
! gimp_pdb_item_is_not_group (GIMP_ITEM (drawable), error) ||
! gimp_drawable_is_rgb (drawable))
success = FALSE;
@ -296,6 +303,7 @@ HELP
code => <<'CODE'
{
if (! gimp_pdb_item_is_attached (GIMP_ITEM (drawable), TRUE, error) ||
! gimp_pdb_item_is_not_group (GIMP_ITEM (drawable), error) ||
gimp_drawable_is_indexed (drawable))
success = FALSE;
@ -327,6 +335,7 @@ HELP
code => <<'CODE'
{
if (! gimp_pdb_item_is_attached (GIMP_ITEM (drawable), TRUE, error) ||
! gimp_pdb_item_is_not_group (GIMP_ITEM (drawable), error) ||
gimp_drawable_is_indexed (drawable))
success = FALSE;
@ -369,6 +378,7 @@ HELP
code => <<'CODE'
{
if (! gimp_pdb_item_is_attached (GIMP_ITEM (drawable), TRUE, error) ||
! gimp_pdb_item_is_not_group (GIMP_ITEM (drawable), error) ||
gimp_drawable_is_indexed (drawable) || (num_points & 1) ||
(! gimp_drawable_has_alpha (drawable) &&
channel == GIMP_HISTOGRAM_ALPHA) ||
@ -415,6 +425,7 @@ HELP
code => <<'CODE'
{
if (! gimp_pdb_item_is_attached (GIMP_ITEM (drawable), TRUE, error) ||
! gimp_pdb_item_is_not_group (GIMP_ITEM (drawable), error) ||
gimp_drawable_is_indexed (drawable) || (num_bytes != 256) ||
(! gimp_drawable_has_alpha (drawable) &&
channel == GIMP_HISTOGRAM_ALPHA) ||
@ -466,6 +477,7 @@ HELP
code => <<'CODE'
{
if (! gimp_pdb_item_is_attached (GIMP_ITEM (drawable), TRUE, error) ||
! gimp_pdb_item_is_not_group (GIMP_ITEM (drawable), error) ||
gimp_drawable_is_indexed (drawable))
success = FALSE;
@ -506,6 +518,7 @@ HELP
code => <<'CODE'
{
if (! gimp_pdb_item_is_attached (GIMP_ITEM (drawable), TRUE, error) ||
! gimp_pdb_item_is_not_group (GIMP_ITEM (drawable), error) ||
! gimp_drawable_is_rgb (drawable))
success = FALSE;
@ -633,6 +646,7 @@ HELP
code => <<'CODE'
{
if (! gimp_pdb_item_is_attached (GIMP_ITEM (drawable), TRUE, error) ||
! gimp_pdb_item_is_not_group (GIMP_ITEM (drawable), error) ||
gimp_drawable_is_indexed (drawable))
success = FALSE;
@ -670,6 +684,7 @@ HELP
code => <<'CODE'
{
if (! gimp_pdb_item_is_attached (GIMP_ITEM (drawable), TRUE, error) ||
! gimp_pdb_item_is_not_group (GIMP_ITEM (drawable), error) ||
gimp_drawable_is_indexed (drawable) ||
(low_threshold > high_threshold))
success = FALSE;

View file

@ -71,7 +71,8 @@ HELP
"plug-in/gimppluginmanager.h") ],
code => <<'CODE'
{
if (gimp_pdb_item_is_attached (GIMP_ITEM (drawable), TRUE, error))
if (gimp_pdb_item_is_attached (GIMP_ITEM (drawable), TRUE, error) &&
gimp_pdb_item_is_not_group (GIMP_ITEM (drawable), error))
{
const gchar *undo_desc = _("Plug-In");
@ -148,7 +149,8 @@ HELP
%invoke = (
code => <<'CODE'
{
if (gimp_pdb_item_is_writable (GIMP_ITEM (drawable), error))
if (gimp_pdb_item_is_writable (GIMP_ITEM (drawable), error) &&
gimp_pdb_item_is_not_group (GIMP_ITEM (drawable), error))
gimp_drawable_fill_by_type (drawable, context, (GimpFillType) fill_type);
else
success = FALSE;
@ -1065,6 +1067,7 @@ HELP
code => <<'CODE'
{
if (gimp_pdb_item_is_writable (GIMP_ITEM (drawable), error) &&
gimp_pdb_item_is_not_group (GIMP_ITEM (drawable), error) &&
x_coord < gimp_item_get_width (GIMP_ITEM (drawable)) &&
y_coord < gimp_item_get_height (GIMP_ITEM (drawable)) &&
num_channels == gimp_drawable_bytes (drawable))
@ -1309,7 +1312,8 @@ HELP
%invoke = (
code => <<'CODE'
{
if (gimp_pdb_item_is_attached (GIMP_ITEM (drawable), TRUE, error))
if (gimp_pdb_item_is_attached (GIMP_ITEM (drawable), TRUE, error) &&
gimp_pdb_item_is_not_group (GIMP_ITEM (drawable), error))
gimp_drawable_offset (drawable, context, wrap_around, fill_type,
offset_x, offset_y);
else

View file

@ -165,10 +165,7 @@ HELP
{
gint x, y, width, height;
/* group items are transformable even though they appear locked */
success = (gimp_pdb_item_is_attached (GIMP_ITEM (drawable), FALSE, error) &&
(gimp_viewable_get_children (GIMP_VIEWABLE (drawable)) ||
gimp_pdb_item_is_writable (GIMP_ITEM (drawable), error)));
success = gimp_pdb_item_is_attached (GIMP_ITEM (drawable), TRUE, error);
if (success &&
gimp_drawable_mask_intersect (drawable, &x, &y, &width, &height))
@ -465,10 +462,7 @@ HELP
{
gint x, y, width, height;
/* group items are transformable even though they appear locked */
success = (gimp_pdb_item_is_attached (GIMP_ITEM (drawable), FALSE, error) &&
(gimp_viewable_get_children (GIMP_VIEWABLE (drawable)) ||
gimp_pdb_item_is_writable (GIMP_ITEM (drawable), error)));
success = gimp_pdb_item_is_attached (GIMP_ITEM (drawable), FALSE, error);
if (success &&
gimp_drawable_mask_intersect (drawable, &x, &y, &width, &height))

View file

@ -46,7 +46,8 @@ HELP
%invoke = (
code => <<CODE
{
if (gimp_pdb_item_is_attached (GIMP_ITEM (drawable), TRUE, error))
if (gimp_pdb_item_is_attached (GIMP_ITEM (drawable), TRUE, error) &&
gimp_pdb_item_is_not_group (GIMP_ITEM (drawable), error))
{
GimpImage *image = gimp_item_get_image (GIMP_ITEM (drawable));
GError *my_error = NULL;
@ -200,7 +201,8 @@ HELP
code => <<CODE
{
if (gimp->global_buffer &&
gimp_pdb_item_is_attached (GIMP_ITEM (drawable), TRUE, error))
gimp_pdb_item_is_attached (GIMP_ITEM (drawable), TRUE, error) &&
gimp_pdb_item_is_not_group (GIMP_ITEM (drawable), error))
{
floating_sel = gimp_edit_paste (gimp_item_get_image (GIMP_ITEM (drawable)),
drawable, gimp->global_buffer,
@ -277,7 +279,8 @@ HELP
%invoke = (
code => <<CODE
{
if (gimp_pdb_item_is_attached (GIMP_ITEM (drawable), TRUE, error))
if (gimp_pdb_item_is_attached (GIMP_ITEM (drawable), TRUE, error) &&
gimp_pdb_item_is_not_group (GIMP_ITEM (drawable), error))
{
GimpImage *image = gimp_item_get_image (GIMP_ITEM (drawable));
GError *my_error = NULL;
@ -435,7 +438,9 @@ HELP
{
GimpBuffer *buffer = gimp_pdb_get_buffer (gimp, buffer_name, error);
if (buffer && gimp_pdb_item_is_attached (GIMP_ITEM (drawable), TRUE, error))
if (buffer &&
gimp_pdb_item_is_attached (GIMP_ITEM (drawable), TRUE, error) &&
gimp_pdb_item_is_not_group (GIMP_ITEM (drawable), error))
{
floating_sel = gimp_edit_paste (gimp_item_get_image (GIMP_ITEM (drawable)),
drawable, buffer,
@ -510,7 +515,8 @@ HELP
%invoke = (
code => <<CODE
{
if (gimp_pdb_item_is_attached (GIMP_ITEM (drawable), TRUE, error))
if (gimp_pdb_item_is_attached (GIMP_ITEM (drawable), TRUE, error) &&
gimp_pdb_item_is_not_group (GIMP_ITEM (drawable), error))
{
GimpImage *image = gimp_item_get_image (GIMP_ITEM (drawable));
@ -550,7 +556,8 @@ HELP
%invoke = (
code => <<CODE
{
if (gimp_pdb_item_is_attached (GIMP_ITEM (drawable), TRUE, error))
if (gimp_pdb_item_is_attached (GIMP_ITEM (drawable), TRUE, error) &&
gimp_pdb_item_is_not_group (GIMP_ITEM (drawable), error))
{
GimpImage *image = gimp_item_get_image (GIMP_ITEM (drawable));
@ -618,7 +625,8 @@ HELP
"core/gimpchannel.h") ],
code => <<'CODE'
{
if (gimp_pdb_item_is_attached (GIMP_ITEM (drawable), TRUE, error))
if (gimp_pdb_item_is_attached (GIMP_ITEM (drawable), TRUE, error) &&
gimp_pdb_item_is_not_group (GIMP_ITEM (drawable), error))
{
GimpImage *image = gimp_item_get_image (GIMP_ITEM (drawable));
gboolean do_seed_fill;
@ -702,7 +710,8 @@ HELP
"core/gimpchannel.h") ],
code => <<'CODE'
{
if (gimp_pdb_item_is_attached (GIMP_ITEM (drawable), TRUE, error))
if (gimp_pdb_item_is_attached (GIMP_ITEM (drawable), TRUE, error) &&
gimp_pdb_item_is_not_group (GIMP_ITEM (drawable), error))
{
GimpImage *image = gimp_item_get_image (GIMP_ITEM (drawable));
gboolean do_seed_fill;
@ -779,7 +788,8 @@ HELP
headers => [ qw("core/gimpdrawable-blend.h") ],
code => <<'CODE'
{
success = gimp_pdb_item_is_attached (GIMP_ITEM (drawable), TRUE, error);
success = (gimp_pdb_item_is_attached (GIMP_ITEM (drawable), TRUE, error) &&
gimp_pdb_item_is_not_group (GIMP_ITEM (drawable), error));
if (success && supersample)
{
@ -835,7 +845,8 @@ HELP
headers => [ qw("core/gimpstrokeoptions.h") ],
code => <<'CODE'
{
if (gimp_pdb_item_is_attached (GIMP_ITEM (drawable), TRUE, error))
if (gimp_pdb_item_is_attached (GIMP_ITEM (drawable), TRUE, error) &&
gimp_pdb_item_is_not_group (GIMP_ITEM (drawable), error))
{
GimpImage *image = gimp_item_get_image (GIMP_ITEM (drawable));
GimpStrokeOptions *options = gimp_stroke_options_new (gimp, context, TRUE);
@ -879,6 +890,7 @@ HELP
code => <<'CODE'
{
if (gimp_pdb_item_is_attached (GIMP_ITEM (drawable), TRUE, error) &&
gimp_pdb_item_is_not_group (GIMP_ITEM (drawable), error) &&
gimp_pdb_item_is_attached (GIMP_ITEM (vectors), FALSE, error))
{
GimpStrokeOptions *options = gimp_stroke_options_new (gimp, context, TRUE);

View file

@ -150,7 +150,8 @@ HELP
%invoke = (
code => <<'CODE'
{
if (gimp_pdb_item_is_attached (GIMP_ITEM (drawable), TRUE, error))
if (gimp_pdb_item_is_attached (GIMP_ITEM (drawable), TRUE, error) &&
gimp_pdb_item_is_not_group (GIMP_ITEM (drawable), error))
floating_sel_attach (layer, drawable);
else
success = FALSE;

View file

@ -343,10 +343,7 @@ HELP
%invoke = (
code => <<'CODE'
{
/* group items are transformable even though they appear locked */
if (gimp_pdb_item_is_attached (GIMP_ITEM (layer), FALSE, error) &&
(gimp_viewable_get_children (GIMP_VIEWABLE (layer)) ||
gimp_pdb_item_is_writable (GIMP_ITEM (layer), error)))
if (gimp_pdb_item_is_attached (GIMP_ITEM (layer), TRUE, error))
{
if (progress)
gimp_progress_start (progress, _("Scaling"), FALSE);
@ -397,10 +394,7 @@ HELP
%invoke = (
code => <<'CODE'
{
/* group items are transformable even though they appear locked */
if (gimp_pdb_item_is_attached (GIMP_ITEM (layer), FALSE, error) &&
(gimp_viewable_get_children (GIMP_VIEWABLE (layer)) ||
gimp_pdb_item_is_writable (GIMP_ITEM (layer), error)))
if (gimp_pdb_item_is_attached (GIMP_ITEM (layer), TRUE, error))
{
if (progress)
gimp_progress_start (progress, _("Scaling"), FALSE);
@ -552,7 +546,8 @@ HELP
%invoke = (
code => <<'CODE'
{
if (gimp_pdb_item_is_writable (GIMP_ITEM (layer), error))
if (gimp_pdb_item_is_writable (GIMP_ITEM (layer), error) &&
gimp_pdb_item_is_not_group (GIMP_ITEM (layer), error))
gimp_layer_add_alpha (layer);
else
success = FALSE;
@ -583,7 +578,8 @@ HELP
%invoke = (
code => <<'CODE'
{
if (gimp_pdb_item_is_writable (GIMP_ITEM (layer), error))
if (gimp_pdb_item_is_writable (GIMP_ITEM (layer), error) &&
gimp_pdb_item_is_not_group (GIMP_ITEM (layer), error))
gimp_layer_flatten (layer, context);
else
success = FALSE;

View file

@ -54,7 +54,9 @@ HELP
{
GimpPaintInfo *info = gimp_pdb_get_paint_info (gimp, "gimp-airbrush", error);
if (info && gimp_pdb_item_is_attached (GIMP_ITEM (drawable), TRUE, error))
if (info &&
gimp_pdb_item_is_attached (GIMP_ITEM (drawable), TRUE, error) &&
gimp_pdb_item_is_not_group (GIMP_ITEM (drawable), error))
{
GimpPaintOptions *options = gimp_paint_options_new (info);
@ -99,7 +101,9 @@ HELP
{
GimpPaintInfo *info = gimp_pdb_get_paint_info (gimp, "gimp-airbrush", error);
if (info && gimp_pdb_item_is_attached (GIMP_ITEM (drawable), TRUE, error))
if (info &&
gimp_pdb_item_is_attached (GIMP_ITEM (drawable), TRUE, error) &&
gimp_pdb_item_is_not_group (GIMP_ITEM (drawable), error))
{
GimpPaintOptions *options = gimp_paint_options_new (info);
@ -155,7 +159,9 @@ HELP
{
GimpPaintInfo *info = gimp_pdb_get_paint_info (gimp, "gimp-clone", error);
if (info && gimp_pdb_item_is_attached (GIMP_ITEM (drawable), TRUE, error))
if (info &&
gimp_pdb_item_is_attached (GIMP_ITEM (drawable), TRUE, error) &&
gimp_pdb_item_is_not_group (GIMP_ITEM (drawable), error))
{
GimpPaintOptions *options = gimp_paint_options_new (info);
@ -204,7 +210,9 @@ HELP
{
GimpPaintInfo *info = gimp_pdb_get_paint_info (gimp, "gimp-clone", error);
if (info && gimp_pdb_item_is_attached (GIMP_ITEM (drawable), TRUE, error))
if (info &&
gimp_pdb_item_is_attached (GIMP_ITEM (drawable), TRUE, error) &&
gimp_pdb_item_is_not_group (GIMP_ITEM (drawable), error))
{
GimpPaintOptions *options = gimp_paint_options_new (info);
@ -245,7 +253,9 @@ HELP
{
GimpPaintInfo *info = gimp_pdb_get_paint_info (gimp, "gimp-convolve", error);
if (info && gimp_pdb_item_is_attached (GIMP_ITEM (drawable), TRUE, error))
if (info &&
gimp_pdb_item_is_attached (GIMP_ITEM (drawable), TRUE, error) &&
gimp_pdb_item_is_not_group (GIMP_ITEM (drawable), error))
{
GimpPaintOptions *options = gimp_paint_options_new (info);
@ -288,7 +298,9 @@ HELP
{
GimpPaintInfo *info = gimp_pdb_get_paint_info (gimp, "gimp-convolve", error);
if (info && gimp_pdb_item_is_attached (GIMP_ITEM (drawable), TRUE, error))
if (info &&
gimp_pdb_item_is_attached (GIMP_ITEM (drawable), TRUE, error) &&
gimp_pdb_item_is_not_group (GIMP_ITEM (drawable), error))
{
GimpPaintOptions *options = gimp_paint_options_new (info);
@ -332,7 +344,9 @@ HELP
{
GimpPaintInfo *info = gimp_pdb_get_paint_info (gimp, "gimp-eraser", error);
if (info && gimp_pdb_item_is_attached (GIMP_ITEM (drawable), TRUE, error))
if (info &&
gimp_pdb_item_is_attached (GIMP_ITEM (drawable), TRUE, error) &&
gimp_pdb_item_is_not_group (GIMP_ITEM (drawable), error))
{
GimpPaintOptions *options = gimp_paint_options_new (info);
@ -376,7 +390,9 @@ HELP
{
GimpPaintInfo *info = gimp_pdb_get_paint_info (gimp, "gimp-eraser", error);
if (info && gimp_pdb_item_is_attached (GIMP_ITEM (drawable), TRUE, error))
if (info &&
gimp_pdb_item_is_attached (GIMP_ITEM (drawable), TRUE, error) &&
gimp_pdb_item_is_not_group (GIMP_ITEM (drawable), error))
{
GimpPaintOptions *options = gimp_paint_options_new (info);
@ -425,7 +441,9 @@ HELP
{
GimpPaintInfo *info = gimp_pdb_get_paint_info (gimp, "gimp-eraser", error);
if (info && gimp_pdb_item_is_attached (GIMP_ITEM (drawable), TRUE, error))
if (info &&
gimp_pdb_item_is_attached (GIMP_ITEM (drawable), TRUE, error) &&
gimp_pdb_item_is_not_group (GIMP_ITEM (drawable), error))
{
GimpPaintOptions *options = gimp_paint_options_new (info);
@ -479,7 +497,9 @@ HELP
{
GimpPaintInfo *info = gimp_pdb_get_paint_info (gimp, "gimp-heal", error);
if (info && gimp_pdb_item_is_attached (GIMP_ITEM (drawable), TRUE, error))
if (info &&
gimp_pdb_item_is_attached (GIMP_ITEM (drawable), TRUE, error) &&
gimp_pdb_item_is_not_group (GIMP_ITEM (drawable), error))
{
GimpPaintOptions *options = gimp_paint_options_new (info);
@ -524,7 +544,9 @@ HELP
{
GimpPaintInfo *info = gimp_pdb_get_paint_info (gimp, "gimp-heal", error);
if (info && gimp_pdb_item_is_attached (GIMP_ITEM (drawable), TRUE, error))
if (info &&
gimp_pdb_item_is_attached (GIMP_ITEM (drawable), TRUE, error) &&
gimp_pdb_item_is_not_group (GIMP_ITEM (drawable), error))
{
GimpPaintOptions *options = gimp_paint_options_new (info);
@ -576,7 +598,9 @@ HELP
{
GimpPaintInfo *info = gimp_pdb_get_paint_info (gimp, "gimp-paintbrush", error);
if (info && gimp_pdb_item_is_attached (GIMP_ITEM (drawable), TRUE, error))
if (info &&
gimp_pdb_item_is_attached (GIMP_ITEM (drawable), TRUE, error) &&
gimp_pdb_item_is_not_group (GIMP_ITEM (drawable), error))
{
GimpPaintOptions *options = gimp_paint_options_new (info);
@ -633,7 +657,9 @@ HELP
{
GimpPaintInfo *info = gimp_pdb_get_paint_info (gimp, "gimp-paintbrush", error);
if (info && gimp_pdb_item_is_attached (GIMP_ITEM (drawable), TRUE, error))
if (info &&
gimp_pdb_item_is_attached (GIMP_ITEM (drawable), TRUE, error) &&
gimp_pdb_item_is_not_group (GIMP_ITEM (drawable), error))
{
GimpPaintOptions *options = gimp_paint_options_new (info);
@ -673,7 +699,9 @@ HELP
{
GimpPaintInfo *info = gimp_pdb_get_paint_info (gimp, "gimp-pencil", error);
if (info && gimp_pdb_item_is_attached (GIMP_ITEM (drawable), TRUE, error))
if (info &&
gimp_pdb_item_is_attached (GIMP_ITEM (drawable), TRUE, error) &&
gimp_pdb_item_is_not_group (GIMP_ITEM (drawable), error))
{
GimpPaintOptions *options = gimp_paint_options_new (info);
@ -712,7 +740,9 @@ HELP
{
GimpPaintInfo *info = gimp_pdb_get_paint_info (gimp, "gimp-smudge", error);
if (info && gimp_pdb_item_is_attached (GIMP_ITEM (drawable), TRUE, error))
if (info &&
gimp_pdb_item_is_attached (GIMP_ITEM (drawable), TRUE, error) &&
gimp_pdb_item_is_not_group (GIMP_ITEM (drawable), error))
{
GimpPaintOptions *options = gimp_paint_options_new (info);
@ -757,7 +787,9 @@ HELP
{
GimpPaintInfo *info = gimp_pdb_get_paint_info (gimp, "gimp-smudge", error);
if (info && gimp_pdb_item_is_attached (GIMP_ITEM (drawable), TRUE, error))
if (info &&
gimp_pdb_item_is_attached (GIMP_ITEM (drawable), TRUE, error) &&
gimp_pdb_item_is_not_group (GIMP_ITEM (drawable), error))
{
GimpPaintOptions *options = gimp_paint_options_new (info);
@ -801,7 +833,9 @@ HELP
{
GimpPaintInfo *info = gimp_pdb_get_paint_info (gimp, "gimp-dodge-burn", error);
if (info && gimp_pdb_item_is_attached (GIMP_ITEM (drawable), TRUE, error))
if (info &&
gimp_pdb_item_is_attached (GIMP_ITEM (drawable), TRUE, error) &&
gimp_pdb_item_is_not_group (GIMP_ITEM (drawable), error))
{
GimpPaintOptions *options = gimp_paint_options_new (info);
@ -848,7 +882,9 @@ HELP
{
GimpPaintInfo *info = gimp_pdb_get_paint_info (gimp, "gimp-dodge-burn", error);
if (info && gimp_pdb_item_is_attached (GIMP_ITEM (drawable), TRUE, error))
if (info &&
gimp_pdb_item_is_attached (GIMP_ITEM (drawable), TRUE, error) &&
gimp_pdb_item_is_not_group (GIMP_ITEM (drawable), error))
{
GimpPaintOptions *options = gimp_paint_options_new (info);

View file

@ -266,7 +266,8 @@ sub path_stroke_current {
GimpDrawable *drawable = gimp_image_get_active_drawable (image);
if (vectors && drawable &&
gimp_pdb_item_is_writable (GIMP_ITEM (drawable), error))
gimp_pdb_item_is_writable (GIMP_ITEM (drawable), error) &&
gimp_pdb_item_is_not_group (GIMP_ITEM (drawable), error))
{
GimpStrokeOptions *options = gimp_stroke_options_new (gimp, context, TRUE);

View file

@ -183,7 +183,8 @@ HELP
%invoke = (
code => <<'CODE'
{
if (gimp_pdb_item_is_attached (GIMP_ITEM (drawable), TRUE, error))
if (gimp_pdb_item_is_attached (GIMP_ITEM (drawable), TRUE, error) &&
gimp_pdb_item_is_not_group (GIMP_ITEM (drawable), error))
{
GimpImage *image = gimp_item_get_image (GIMP_ITEM (drawable));

View file

@ -72,7 +72,9 @@ HELP
%invoke = (
code => <<'CODE'
{
if (drawable && ! gimp_pdb_item_is_attached (GIMP_ITEM (drawable), TRUE, error))
if (drawable &&
(! gimp_pdb_item_is_attached (GIMP_ITEM (drawable), TRUE, error) ||
! gimp_pdb_item_is_not_group (GIMP_ITEM (drawable), error)))
success = FALSE;
if (success)
@ -192,7 +194,9 @@ sub text {
%invoke = (
code => <<'CODE'
{
if (drawable && ! gimp_pdb_item_is_attached (GIMP_ITEM (drawable), TRUE, error))
if (drawable &&
(! gimp_pdb_item_is_attached (GIMP_ITEM (drawable), TRUE, error) ||
! gimp_pdb_item_is_not_group (GIMP_ITEM (drawable), error)))
success = FALSE;
if (success)

View file

@ -1077,7 +1077,8 @@ HELP
%invoke = (
code => <<"CODE"
{
if (gimp_pdb_item_is_writable (GIMP_ITEM (vectors), error))
if (gimp_pdb_item_is_writable (GIMP_ITEM (vectors), error) &&
gimp_pdb_item_is_not_group (GIMP_ITEM (vectors), error))
{
GimpStroke *stroke;
GimpCoords coord0 = GIMP_COORDS_DEFAULT_VALUES;
@ -1300,7 +1301,8 @@ HELP
%invoke = (
code => <<"CODE"
{
if (gimp_pdb_item_is_writable (GIMP_ITEM (vectors), error))
if (gimp_pdb_item_is_writable (GIMP_ITEM (vectors), error) &&
gimp_pdb_item_is_not_group (GIMP_ITEM (vectors), error))
{
GimpStroke *stroke;
GimpCoords coord0 = GIMP_COORDS_DEFAULT_VALUES;