From b455d0c84c808c58f79a8f40acffac1b5df10f22 Mon Sep 17 00:00:00 2001 From: Sven Neumann Date: Sat, 22 Mar 2003 20:30:30 +0000 Subject: [PATCH] always flush the image when applying or discarding a layer mask. The 2003-03-22 Sven Neumann * app/gui/layers-commands.c: always flush the image when applying or discarding a layer mask. The active drawable may change and make a menu update necessary (fixes bug #108958). * app/widgets/gimplayertreeview.c: call gimp_image_flush() when switching between layer and mask editing so the menus get updated. --- ChangeLog | 9 +++++++++ app/actions/layers-commands.c | 16 ++-------------- app/gui/layers-commands.c | 16 ++-------------- app/widgets/gimplayertreeview.c | 11 +++++++---- 4 files changed, 20 insertions(+), 32 deletions(-) diff --git a/ChangeLog b/ChangeLog index 5965c42dec..fcff2ff80b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +2003-03-22 Sven Neumann + + * app/gui/layers-commands.c: always flush the image when applying + or discarding a layer mask. The active drawable may change and + make a menu update necessary (fixes bug #108958). + + * app/widgets/gimplayertreeview.c: call gimp_image_flush() when + switching between layer and mask editing so the menus get updated. + 2003-03-22 Michael Natterer * app/widgets/gimpcontainereditor.c: allow to create a diff --git a/app/actions/layers-commands.c b/app/actions/layers-commands.c index 50cb1ddb51..77745bddd1 100644 --- a/app/actions/layers-commands.c +++ b/app/actions/layers-commands.c @@ -343,14 +343,8 @@ layers_apply_layer_mask_cmd_callback (GtkWidget *widget, if (gimp_layer_get_mask (active_layer)) { - gboolean flush; - - flush = ! active_layer->mask->apply_mask || active_layer->mask->show_mask; - gimp_layer_apply_mask (active_layer, GIMP_MASK_APPLY, TRUE); - - if (flush) - gimp_image_flush (gimage); + gimp_image_flush (gimage); } } @@ -364,14 +358,8 @@ layers_delete_layer_mask_cmd_callback (GtkWidget *widget, if (gimp_layer_get_mask (active_layer)) { - gboolean flush; - - flush = active_layer->mask->apply_mask || active_layer->mask->show_mask; - gimp_layer_apply_mask (active_layer, GIMP_MASK_DISCARD, TRUE); - - if (flush) - gimp_image_flush (gimage); + gimp_image_flush (gimage); } } diff --git a/app/gui/layers-commands.c b/app/gui/layers-commands.c index 50cb1ddb51..77745bddd1 100644 --- a/app/gui/layers-commands.c +++ b/app/gui/layers-commands.c @@ -343,14 +343,8 @@ layers_apply_layer_mask_cmd_callback (GtkWidget *widget, if (gimp_layer_get_mask (active_layer)) { - gboolean flush; - - flush = ! active_layer->mask->apply_mask || active_layer->mask->show_mask; - gimp_layer_apply_mask (active_layer, GIMP_MASK_APPLY, TRUE); - - if (flush) - gimp_image_flush (gimage); + gimp_image_flush (gimage); } } @@ -364,14 +358,8 @@ layers_delete_layer_mask_cmd_callback (GtkWidget *widget, if (gimp_layer_get_mask (active_layer)) { - gboolean flush; - - flush = active_layer->mask->apply_mask || active_layer->mask->show_mask; - gimp_layer_apply_mask (active_layer, GIMP_MASK_DISCARD, TRUE); - - if (flush) - gimp_image_flush (gimage); + gimp_image_flush (gimage); } } diff --git a/app/widgets/gimplayertreeview.c b/app/widgets/gimplayertreeview.c index 7d50e6152e..a6dfd25bb6 100644 --- a/app/widgets/gimplayertreeview.c +++ b/app/widgets/gimplayertreeview.c @@ -1058,7 +1058,10 @@ gimp_layer_tree_view_layer_clicked (GimpCellRendererViewable *cell, mask = GIMP_LAYER_MASK (renderer->viewable); if (gimp_layer_mask_get_edit (mask)) - gimp_layer_mask_set_edit (mask, FALSE); + { + gimp_layer_mask_set_edit (mask, FALSE); + gimp_image_flush (gimp_item_get_image (GIMP_ITEM (mask))); + } g_object_unref (renderer); } @@ -1103,10 +1106,10 @@ gimp_layer_tree_view_mask_clicked (GimpCellRendererViewable *cell, gimp_layer_mask_set_apply (mask, ! gimp_layer_mask_get_apply (mask)); flush = TRUE; } - else + else if (! gimp_layer_mask_get_edit (mask)) { - if (! gimp_layer_mask_get_edit (mask)) - gimp_layer_mask_set_edit (mask, TRUE); + gimp_layer_mask_set_edit (mask, TRUE); + flush = TRUE; } if (flush)