widgets: Prevent deleting temporary filters

Resolves #12791 (again)
After cleaning up and separating the filter pop-up code
from GimpItemTreeView to GimpDrawableTreeView-Filters,
we accidentally lost the checks that prevent deleting filters
that have not yet been applied (thus causing a crash).
This patch restores the checks for the filter to not be temporary
before you can delete it.
This commit is contained in:
Alx Sa 2026-03-26 15:26:10 +00:00
parent 8bdb5cbfd7
commit ca5438c6da

View file

@ -433,6 +433,7 @@ gimp_drawable_filters_editor_set_sensitive (GimpDrawableTreeView *view)
GimpContainer *filters;
gboolean is_group = FALSE;
gboolean is_editable = FALSE;
gboolean is_temporary;
gboolean has_visible_filters;
gint index;
@ -440,6 +441,8 @@ gimp_drawable_filters_editor_set_sensitive (GimpDrawableTreeView *view)
index = gimp_container_get_child_index (filters,
GIMP_OBJECT (editor->filter));
is_temporary = (gimp_drawable_filter_get_temporary (editor->filter) ||
! gimp_drawable_filter_get_mask (editor->filter));
/* do not allow merging down effects on group layers */
if (gimp_viewable_get_children (GIMP_VIEWABLE (editor->drawable)))
@ -456,7 +459,7 @@ gimp_drawable_filters_editor_set_sensitive (GimpDrawableTreeView *view)
gtk_widget_set_sensitive (editor->visible_button,
TRUE);
gtk_widget_set_sensitive (editor->edit_button,
is_editable);
is_editable && ! is_temporary);
gtk_widget_set_sensitive (editor->raise_button,
index > first_editable);
gtk_widget_set_sensitive (editor->lower_button,
@ -464,10 +467,11 @@ gimp_drawable_filters_editor_set_sensitive (GimpDrawableTreeView *view)
gtk_widget_set_sensitive (editor->merge_button,
! is_group &&
has_visible_filters &&
! is_temporary &&
(! GIMP_IS_RASTERIZABLE (editor->drawable) ||
gimp_rasterizable_is_rasterized (GIMP_RASTERIZABLE (editor->drawable))));
gtk_widget_set_sensitive (editor->remove_button,
is_editable);
is_editable && ! is_temporary);
if (is_group ||
(GIMP_IS_RASTERIZABLE (editor->drawable) &&