[gimp] Bug 794469 - Shift-click to create layer/channel/path...
- From: Michael Natterer <mitch src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gimp] Bug 794469 - Shift-click to create layer/channel/path...
- Date: Sun, 25 Mar 2018 12:13:10 +0000 (UTC)
commit 1b623a99c858aedbc2d0bdbd66647b29be87716f
Author: Michael Natterer <mitch gimp org>
Date: Sun Mar 25 14:08:50 2018 +0200
Bug 794469 - Shift-click to create layer/channel/path...
...should really use last values
When creating a layer or channel "from last values", really use the
values last set be the user in the respective dialogs. In particular,
don't use properties of the active layer or channel. I have no idea
what we were thinking when adding that obscure logic.
app/actions/channels-commands.c | 36 +++++-------------------
app/actions/layers-commands.c | 57 ++++++++++++--------------------------
2 files changed, 26 insertions(+), 67 deletions(-)
---
diff --git a/app/actions/channels-commands.c b/app/actions/channels-commands.c
index 734cb75..db47f73 100644
--- a/app/actions/channels-commands.c
+++ b/app/actions/channels-commands.c
@@ -182,44 +182,24 @@ channels_new_last_vals_cmd_callback (GtkAction *action,
gpointer data)
{
GimpImage *image;
- GimpChannel *new_channel;
- gint width, height;
- GimpRGB color;
+ GimpChannel *channel;
GimpDialogConfig *config;
return_if_no_image (image, data);
config = GIMP_DIALOG_CONFIG (image->gimp->config);
- if (GIMP_IS_CHANNEL (GIMP_ACTION (action)->viewable))
- {
- GimpChannel *template = GIMP_CHANNEL (GIMP_ACTION (action)->viewable);
-
- width = gimp_item_get_width (GIMP_ITEM (template));
- height = gimp_item_get_height (GIMP_ITEM (template));
- color = template->color;
- }
- else
- {
- width = gimp_image_get_width (image);
- height = gimp_image_get_height (image);
- color = config->channel_new_color;
- }
+ channel = gimp_channel_new (image,
+ gimp_image_get_width (image),
+ gimp_image_get_height (image),
+ config->channel_new_name,
+ &config->channel_new_color);
- gimp_image_undo_group_start (image, GIMP_UNDO_GROUP_EDIT_PASTE,
- _("New Channel"));
-
- new_channel = gimp_channel_new (image, width, height,
- config->channel_new_name, &color);
-
- gimp_drawable_fill (GIMP_DRAWABLE (new_channel),
+ gimp_drawable_fill (GIMP_DRAWABLE (channel),
action_data_get_context (data),
GIMP_FILL_TRANSPARENT);
- gimp_image_add_channel (image, new_channel,
+ gimp_image_add_channel (image, channel,
GIMP_IMAGE_ACTIVE_PARENT, -1, TRUE);
-
- gimp_image_undo_group_end (image);
-
gimp_image_flush (image);
}
diff --git a/app/actions/layers-commands.c b/app/actions/layers-commands.c
index 7fcf527..6f27b4f 100644
--- a/app/actions/layers-commands.c
+++ b/app/actions/layers-commands.c
@@ -358,11 +358,7 @@ layers_new_last_vals_cmd_callback (GtkAction *action,
{
GimpImage *image;
GtkWidget *widget;
- GimpLayer *floating_sel;
- GimpLayer *new_layer;
- gint width, height;
- gint off_x, off_y;
- gdouble opacity;
+ GimpLayer *layer;
GimpDialogConfig *config;
return_if_no_image (image, data);
@@ -373,48 +369,31 @@ layers_new_last_vals_cmd_callback (GtkAction *action,
/* If there is a floating selection, the new command transforms
* the current fs into a new layer
*/
- if ((floating_sel = gimp_image_get_floating_selection (image)))
+ if (gimp_image_get_floating_selection (image))
{
layers_new_cmd_callback (action, data);
return;
}
- if (GIMP_IS_LAYER (GIMP_ACTION (action)->viewable))
- {
- GimpLayer *template = GIMP_LAYER (GIMP_ACTION (action)->viewable);
-
- gimp_item_get_offset (GIMP_ITEM (template), &off_x, &off_y);
- width = gimp_item_get_width (GIMP_ITEM (template));
- height = gimp_item_get_height (GIMP_ITEM (template));
- opacity = gimp_layer_get_opacity (template);
- }
- else
- {
- width = gimp_image_get_width (image);
- height = gimp_image_get_height (image);
- off_x = 0;
- off_y = 0;
- opacity = 1.0;
- }
-
- gimp_image_undo_group_start (image, GIMP_UNDO_GROUP_EDIT_PASTE,
- _("New Layer"));
-
- new_layer = gimp_layer_new (image, width, height,
- gimp_image_get_layer_format (image, TRUE),
- config->layer_new_name,
- opacity, config->layer_new_mode);
+ layer = gimp_layer_new (image,
+ gimp_image_get_width (image),
+ gimp_image_get_height (image),
+ gimp_image_get_layer_format (image, TRUE),
+ config->layer_new_name,
+ config->layer_new_opacity,
+ config->layer_new_mode);
- gimp_drawable_fill (GIMP_DRAWABLE (new_layer),
+ gimp_drawable_fill (GIMP_DRAWABLE (layer),
action_data_get_context (data),
config->layer_new_fill_type);
- gimp_item_translate (GIMP_ITEM (new_layer), off_x, off_y, FALSE);
-
- gimp_image_add_layer (image, new_layer,
- GIMP_IMAGE_ACTIVE_PARENT, -1, TRUE);
-
- gimp_image_undo_group_end (image);
+ gimp_layer_set_blend_space (layer,
+ config->layer_new_blend_space, FALSE);
+ gimp_layer_set_composite_space (layer,
+ config->layer_new_composite_space, FALSE);
+ gimp_layer_set_composite_mode (layer,
+ config->layer_new_composite_mode, FALSE);
+ gimp_image_add_layer (image, layer, GIMP_IMAGE_ACTIVE_PARENT, -1, TRUE);
gimp_image_flush (image);
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]