Revision: 116754 https://trac.macports.org/changeset/116754 Author: devans@macports.org Date: 2014-02-05 15:41:12 -0800 (Wed, 05 Feb 2014) Log Message: ----------- gimp2: apply latest upstream patches, intltool configuration, increment revision. Modified Paths: -------------- trunk/dports/graphics/gimp2/Portfile Added Paths: ----------- trunk/dports/graphics/gimp2/files/patch-ICC-profile-with-long-description-bz723177.diff trunk/dports/graphics/gimp2/files/patch-crash-removing-tag-from-palette-bz722975.diff trunk/dports/graphics/gimp2/files/patch-dont-reset-brush-size-before-each-paint-stroke-bz721249.diff trunk/dports/graphics/gimp2/files/patch-halt-transform-tool-when-switching.diff trunk/dports/graphics/gimp2/files/patch-plugins-bmp-dont-check-biClrUsed-bz697431.diff trunk/dports/graphics/gimp2/files/patch-remove-confirm-on-close-preference.diff trunk/dports/graphics/gimp2/files/patch-snapping-behavior-scale-tool-bz722034.diff trunk/dports/graphics/gimp2/files/patch-writing-character-constants-bz721775.diff trunk/dports/graphics/gimp2/files/patch-wrong-name-transfer-tool-dialogs-bz701159.diff Modified: trunk/dports/graphics/gimp2/Portfile =================================================================== --- trunk/dports/graphics/gimp2/Portfile 2014-02-05 23:37:41 UTC (rev 116753) +++ trunk/dports/graphics/gimp2/Portfile 2014-02-05 23:41:12 UTC (rev 116754) @@ -8,7 +8,7 @@ conflicts gimp2-devel gimp3-devel # please remember to update the gimp metapackage to match version 2.8.10 -revision 5 +revision 6 license {GPL-2+ LGPL} categories graphics maintainers devans @@ -102,6 +102,15 @@ patch-gimp-paint-options-set-default-brush-size.diff \ patch-remove-accelerator-markers-python-fu-tooltips.diff \ patch-create-filechooserbutton-bz699978.diff \ + patch-crash-removing-tag-from-palette-bz722975.diff \ + patch-ICC-profile-with-long-description-bz723177.diff \ + patch-remove-confirm-on-close-preference.diff \ + patch-snapping-behavior-scale-tool-bz722034.diff \ + patch-plugins-bmp-dont-check-biClrUsed-bz697431.diff \ + patch-dont-reset-brush-size-before-each-paint-stroke-bz721249.diff \ + patch-writing-character-constants-bz721775.diff \ + patch-halt-transform-tool-when-switching.diff \ + patch-wrong-name-transfer-tool-dialogs-bz701159.diff \ patch-plug-ins-twain-tw_mac.c.diff # gcc-4.2 5493 and 5666.3_13: gimpcpuaccel.c:180: error: can't find a register in class 'BREG' while reloading 'asm' @@ -140,7 +149,12 @@ # It doesn't build any more anyways: # https://trac.macports.org/ticket/35168 -# Don't do intltool's INTLTOOL_PERL dance +# update m4macros/intltool.m4 and autoreconf + +post-patch { + copy -force ${prefix}/share/aclocal/intltool.m4 ${worksrcpath}/m4macros +} + use_autoreconf yes autoreconf.args -fvi Added: trunk/dports/graphics/gimp2/files/patch-ICC-profile-with-long-description-bz723177.diff =================================================================== --- trunk/dports/graphics/gimp2/files/patch-ICC-profile-with-long-description-bz723177.diff (rev 0) +++ trunk/dports/graphics/gimp2/files/patch-ICC-profile-with-long-description-bz723177.diff 2014-02-05 23:41:12 UTC (rev 116754) @@ -0,0 +1,29 @@ +From 8b6b6add69d3f0d66287a3d2b4e951f28e0d7103 Mon Sep 17 00:00:00 2001 +From: Michael Natterer <mitch@gimp.org> +Date: Tue, 28 Jan 2014 17:54:46 +0000 +Subject: Bug 723177 - After opening an ICC profile with a long description... + +...dialogs are too wide + +Ellipsize GimpColorProfileComboBox' label. + +(cherry picked from commit 219bf3529942f9b12d65cf93705dbeaf0a9812cb) +--- +diff --git a/libgimpwidgets/gimpcolorprofilecombobox.c b/libgimpwidgets/gimpcolorprofilecombobox.c +index 10bde3a..0a1b319 100644 +--- libgimpwidgets/gimpcolorprofilecombobox.c ++++ libgimpwidgets/gimpcolorprofilecombobox.c +@@ -130,6 +130,11 @@ gimp_color_profile_combo_box_init (GimpColorProfileComboBox *combo_box) + { + GtkCellRenderer *cell = gtk_cell_renderer_text_new (); + ++ g_object_set (cell, ++ "ellipsize", PANGO_ELLIPSIZE_END, ++ NULL); ++ ++ + gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (combo_box), cell, TRUE); + gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (combo_box), cell, + "text", GIMP_COLOR_PROFILE_STORE_LABEL, +-- +cgit v0.9.2 Added: trunk/dports/graphics/gimp2/files/patch-crash-removing-tag-from-palette-bz722975.diff =================================================================== --- trunk/dports/graphics/gimp2/files/patch-crash-removing-tag-from-palette-bz722975.diff (rev 0) +++ trunk/dports/graphics/gimp2/files/patch-crash-removing-tag-from-palette-bz722975.diff 2014-02-05 23:41:12 UTC (rev 116754) @@ -0,0 +1,146 @@ +From 2ec7e24d805d1f524fe455ed08ac641c5244a6e6 Mon Sep 17 00:00:00 2001 +From: Michael Natterer <mitch@gimp.org> +Date: Sun, 26 Jan 2014 20:03:28 +0000 +Subject: Bug 722975 - crash when removing tag from palette while filtering by same tag + +Each of the following cleans up tag refcounting, fixes access to +released memory, or other small glitches. Not sure which change +actually fixed the bug: + +gimp_data_remove_tag(): remove the found tag, not the passed in tag +(which is to be treated only as a value for comparison). + +gimp_tagged_remove_tag(): don't continue the loop after the tag to +remove has been found, there can only be one matching tag, and the +list element has become invalid. + +gimptagentry.c: keep references around for the members of +entry->common_tags, and make sure the references are always dropped +properly. In assign_tags(), reference the "add" and "remove" lists for +paranoia and safety reasons. + +(cherry picked from commit 7fca15c27dd944890a67bb6db90c0b1fd4238f2f) +--- +diff --git a/app/core/gimpdata.c b/app/core/gimpdata.c +index 711d38f..76806ff 100644 +--- app/core/gimpdata.c ++++ app/core/gimpdata.c +@@ -421,7 +421,7 @@ gimp_data_remove_tag (GimpTagged *tagged, + if (gimp_tag_equals (tag, this)) + { + private->tags = g_list_delete_link (private->tags, list); +- g_object_unref (tag); ++ g_object_unref (this); + return TRUE; + } + } +diff --git a/app/core/gimptagged.c b/app/core/gimptagged.c +index 9c44940..b04304a 100644 +--- app/core/gimptagged.c ++++ app/core/gimptagged.c +@@ -153,6 +153,8 @@ gimp_tagged_remove_tag (GimpTagged *tagged, + } + + g_object_unref (tag_ref); ++ ++ return; + } + } + } +diff --git a/app/widgets/gimptagentry.c b/app/widgets/gimptagentry.c +index 5593801..73227e1 100644 +--- app/widgets/gimptagentry.c ++++ app/widgets/gimptagentry.c +@@ -227,7 +227,7 @@ gimp_tag_entry_dispose (GObject *object) + + if (entry->common_tags) + { +- g_list_free (entry->common_tags); ++ g_list_free_full (entry->common_tags, (GDestroyNotify) g_object_unref); + entry->common_tags = NULL; + } + +@@ -761,7 +761,7 @@ gimp_tag_entry_assign_tags (GimpTagEntry *tag_entry) + } + else + { +- add_list = g_list_prepend (add_list, tag); ++ add_list = g_list_prepend (add_list, g_object_ref (tag)); + } + + common_tags = g_list_prepend (common_tags, tag); +@@ -778,7 +778,8 @@ gimp_tag_entry_assign_tags (GimpTagEntry *tag_entry) + if (! g_list_find_custom (dont_remove_list, tag_iter->data, + gimp_tag_compare_func)) + { +- remove_list = g_list_prepend (remove_list, tag_iter->data); ++ remove_list = g_list_prepend (remove_list, ++ g_object_ref (tag_iter->data)); + } + } + +@@ -792,20 +793,20 @@ gimp_tag_entry_assign_tags (GimpTagEntry *tag_entry) + + for (tag_iter = remove_list; tag_iter; tag_iter = g_list_next (tag_iter)) + { +- gimp_tagged_remove_tag (tagged, GIMP_TAG (tag_iter->data)); ++ gimp_tagged_remove_tag (tagged, tag_iter->data); + } + + for (tag_iter = add_list; tag_iter; tag_iter = g_list_next (tag_iter)) + { +- gimp_tagged_add_tag (tagged, GIMP_TAG (tag_iter->data)); ++ gimp_tagged_add_tag (tagged, tag_iter->data); + } + } + +- g_list_free (add_list); +- g_list_free (remove_list); ++ g_list_free_full (add_list, (GDestroyNotify) g_object_unref); ++ g_list_free_full (remove_list, (GDestroyNotify) g_object_unref); + + /* common tags list with changes applied. */ +- g_list_free (tag_entry->common_tags); ++ g_list_free_full (tag_entry->common_tags, (GDestroyNotify) g_object_unref); + tag_entry->common_tags = common_tags; + } + +@@ -903,7 +904,7 @@ gimp_tag_entry_set_selected_items (GimpTagEntry *tag_entry, + + if (tag_entry->common_tags) + { +- g_list_free (tag_entry->common_tags); ++ g_list_free_full (tag_entry->common_tags, (GDestroyNotify) g_object_unref); + tag_entry->common_tags = NULL; + } + +@@ -956,7 +957,7 @@ gimp_tag_entry_load_selection (GimpTagEntry *tag_entry, + } + } + +- g_hash_table_foreach (refcounts, gimp_tag_entry_find_common_tags,tag_entry); ++ g_hash_table_foreach (refcounts, gimp_tag_entry_find_common_tags, tag_entry); + + g_hash_table_destroy (refcounts); + +@@ -996,7 +997,8 @@ gimp_tag_entry_find_common_tags (gpointer key, + /* FIXME: more efficient list length */ + if (ref_count == g_list_length (tag_entry->selected_items)) + { +- tag_entry->common_tags = g_list_prepend (tag_entry->common_tags, key); ++ tag_entry->common_tags = g_list_prepend (tag_entry->common_tags, ++ g_object_ref (key)); + } + } + +@@ -1215,7 +1217,7 @@ gimp_tag_entry_container_changed (GimpContainer *container, + { + if (gimp_tagged_get_tags (GIMP_TAGGED (list->data)) && + gimp_container_have (GIMP_CONTAINER (tag_entry->container), +- GIMP_OBJECT(list->data))) ++ GIMP_OBJECT (list->data))) + { + break; + } +-- +cgit v0.9.2 Added: trunk/dports/graphics/gimp2/files/patch-dont-reset-brush-size-before-each-paint-stroke-bz721249.diff =================================================================== --- trunk/dports/graphics/gimp2/files/patch-dont-reset-brush-size-before-each-paint-stroke-bz721249.diff (rev 0) +++ trunk/dports/graphics/gimp2/files/patch-dont-reset-brush-size-before-each-paint-stroke-bz721249.diff 2014-02-05 23:41:12 UTC (rev 116754) @@ -0,0 +1,41 @@ +From 6cb5fcafb04c515f8773f81d6867efcedd95688e Mon Sep 17 00:00:00 2001 +From: Michael Natterer <mitch@gimp.org> +Date: Mon, 03 Feb 2014 22:05:56 +0000 +Subject: Bug 721249 - pdb.gimp_context_set_brush_size() dont't work + +Don't reset the brush size before each PDB paint stroke. + +(cherry picked from commit 9fe869236bbf178ac9699e0e789f78aa085e5ef6) +--- +diff --git a/app/pdb/paint-tools-cmds.c b/app/pdb/paint-tools-cmds.c +index d1d6de3..ba1c826 100644 +--- app/pdb/paint-tools-cmds.c ++++ app/pdb/paint-tools-cmds.c +@@ -62,10 +62,6 @@ paint_tools_stroke (Gimp *gimp, + + n_strokes /= 2; /* #doubles -> #points */ + +- /* FIXME: i'm most certain that this is wrong, see bug 721249 --mitch */ +- gimp_paint_options_set_default_brush_size (options, +- gimp_context_get_brush (context)); +- + /* undefine the paint-relevant context properties and get them + * from the current context + */ +diff --git a/tools/pdbgen/pdb/paint_tools.pdb b/tools/pdbgen/pdb/paint_tools.pdb +index 8544a56..d084e25 100644 +--- tools/pdbgen/pdb/paint_tools.pdb ++++ tools/pdbgen/pdb/paint_tools.pdb +@@ -987,10 +987,6 @@ paint_tools_stroke (Gimp *gimp, + + n_strokes /= 2; /* #doubles -> #points */ + +- /* FIXME: i'm most certain that this is wrong, see bug 721249 --mitch */ +- gimp_paint_options_set_default_brush_size (options, +- gimp_context_get_brush (context)); +- + /* undefine the paint-relevant context properties and get them + * from the current context + */ +-- +cgit v0.9.2 Added: trunk/dports/graphics/gimp2/files/patch-halt-transform-tool-when-switching.diff =================================================================== --- trunk/dports/graphics/gimp2/files/patch-halt-transform-tool-when-switching.diff (rev 0) +++ trunk/dports/graphics/gimp2/files/patch-halt-transform-tool-when-switching.diff 2014-02-05 23:41:12 UTC (rev 116754) @@ -0,0 +1,33 @@ +From 72942f4e6b4aa25698b6432f7a20494f61ec3fca Mon Sep 17 00:00:00 2001 +From: Michael Natterer <mitch@gimp.org> +Date: Tue, 04 Feb 2014 22:28:01 +0000 +Subject: app: halt the transform tool when switching layer|selection|path transform + +(cherry picked from commit 1335bc42c89c7b739bba54400b6adcee3abd7423) +--- +diff --git a/app/tools/gimptransformtool.c b/app/tools/gimptransformtool.c +index 009659c..8c31222 100644 +--- app/tools/gimptransformtool.c ++++ app/tools/gimptransformtool.c +@@ -667,12 +667,17 @@ gimp_transform_tool_options_notify (GimpTool *tool, + + GIMP_TOOL_CLASS (parent_class)->options_notify (tool, options, pspec); + ++ if (! strcmp (pspec->name, "type")) ++ { ++ gimp_tool_control (tool, GIMP_TOOL_ACTION_HALT, tool->display); ++ return; ++ } ++ + if (tr_tool->use_grid) + { + gimp_draw_tool_pause (GIMP_DRAW_TOOL (tr_tool)); + +- if (! strcmp (pspec->name, "type") || +- ! strcmp (pspec->name, "direction")) ++ if (! strcmp (pspec->name, "direction")) + { + if (tr_tool->function != TRANSFORM_CREATING) + { +-- +cgit v0.9.2 Added: trunk/dports/graphics/gimp2/files/patch-plugins-bmp-dont-check-biClrUsed-bz697431.diff =================================================================== --- trunk/dports/graphics/gimp2/files/patch-plugins-bmp-dont-check-biClrUsed-bz697431.diff (rev 0) +++ trunk/dports/graphics/gimp2/files/patch-plugins-bmp-dont-check-biClrUsed-bz697431.diff 2014-02-05 23:41:12 UTC (rev 116754) @@ -0,0 +1,22 @@ +From 76ee47eff95e8dfad303d473c8a54b15720c83c0 Mon Sep 17 00:00:00 2001 +From: Téo Mazars <teomazars@gmail.com> +Date: Thu, 30 Jan 2014 19:31:26 +0000 +Subject: plug-ins: don't check biClrUsed if bpp > 8 (in bug 697431) + +(cherry picked from commit 54f83a5ba273e45a9184f13d1f4b0f5697d56555) +--- +diff --git a/plug-ins/file-bmp/bmp-read.c b/plug-ins/file-bmp/bmp-read.c +index e59dfb8..f088a48 100644 +--- plug-ins/file-bmp/bmp-read.c ++++ plug-ins/file-bmp/bmp-read.c +@@ -487,7 +487,7 @@ ReadBMP (const gchar *name, + goto out; + } + +- if (Bitmap_Head.biClrUsed > 256) ++ if (Bitmap_Head.biClrUsed > 256 && Bitmap_Head.biBitCnt <= 8) + { + g_set_error (error, G_FILE_ERROR, G_FILE_ERROR_FAILED, + _("'%s' is not a valid BMP file"), +-- +cgit v0.9.2 Added: trunk/dports/graphics/gimp2/files/patch-remove-confirm-on-close-preference.diff =================================================================== --- trunk/dports/graphics/gimp2/files/patch-remove-confirm-on-close-preference.diff (rev 0) +++ trunk/dports/graphics/gimp2/files/patch-remove-confirm-on-close-preference.diff 2014-02-05 23:41:12 UTC (rev 116754) @@ -0,0 +1,172 @@ +From b101f38f0a7cd0b31a8c9c2b90842f75d20e97c0 Mon Sep 17 00:00:00 2001 +From: Michael Natterer <mitch@gimp.org> +Date: Mon, 07 May 2012 12:02:36 +0000 +Subject: app: remove the "confirm-on-close" preference + +the warning dialog cannot be disabled any longer now. + +(cherry picked from commit e2c8a60665499cc945838fbd5a99964b09ec8892) +--- +diff --git a/app/config/gimpdisplayconfig.c b/app/config/gimpdisplayconfig.c +index 91c8c3d..36a46b2 100644 +--- app/config/gimpdisplayconfig.c ++++ app/config/gimpdisplayconfig.c +@@ -59,7 +59,6 @@ enum + PROP_SHOW_PAINT_TOOL_CURSOR, + PROP_IMAGE_TITLE_FORMAT, + PROP_IMAGE_STATUS_FORMAT, +- PROP_CONFIRM_ON_CLOSE, + PROP_MONITOR_XRESOLUTION, + PROP_MONITOR_YRESOLUTION, + PROP_MONITOR_RES_FROM_GDK, +@@ -76,6 +75,7 @@ enum + PROP_USE_EVENT_HISTORY, + + /* ignored, only for backward compatibility: */ ++ PROP_CONFIRM_ON_CLOSE, + PROP_XOR_COLOR + }; + +@@ -185,10 +185,6 @@ gimp_display_config_class_init (GimpDisplayConfigClass *klass) + IMAGE_STATUS_FORMAT_BLURB, + GIMP_CONFIG_DEFAULT_IMAGE_STATUS_FORMAT, + GIMP_PARAM_STATIC_STRINGS); +- GIMP_CONFIG_INSTALL_PROP_BOOLEAN (object_class, PROP_CONFIRM_ON_CLOSE, +- "confirm-on-close", CONFIRM_ON_CLOSE_BLURB, +- TRUE, +- GIMP_PARAM_STATIC_STRINGS); + GIMP_CONFIG_INSTALL_PROP_RESOLUTION (object_class, PROP_MONITOR_XRESOLUTION, + "monitor-xresolution", + MONITOR_XRESOLUTION_BLURB, +@@ -267,6 +263,10 @@ gimp_display_config_class_init (GimpDisplayConfigClass *klass) + GIMP_PARAM_STATIC_STRINGS); + + /* only for backward compatibility: */ ++ GIMP_CONFIG_INSTALL_PROP_BOOLEAN (object_class, PROP_CONFIRM_ON_CLOSE, ++ "confirm-on-close", NULL, ++ TRUE, ++ GIMP_PARAM_STATIC_STRINGS); + GIMP_CONFIG_INSTALL_PROP_RGB (object_class, PROP_XOR_COLOR, + "xor-color", NULL, + FALSE, &color, +@@ -366,9 +366,6 @@ gimp_display_config_set_property (GObject *object, + g_free (display_config->image_status_format); + display_config->image_status_format = g_value_dup_string (value); + break; +- case PROP_CONFIRM_ON_CLOSE: +- display_config->confirm_on_close = g_value_get_boolean (value); +- break; + case PROP_MONITOR_XRESOLUTION: + display_config->monitor_xres = g_value_get_double (value); + break; +@@ -416,6 +413,8 @@ gimp_display_config_set_property (GObject *object, + case PROP_USE_EVENT_HISTORY: + display_config->use_event_history = g_value_get_boolean (value); + break; ++ ++ case PROP_CONFIRM_ON_CLOSE: + case PROP_XOR_COLOR: + /* ignored */ + break; +@@ -481,9 +480,6 @@ gimp_display_config_get_property (GObject *object, + case PROP_IMAGE_STATUS_FORMAT: + g_value_set_string (value, display_config->image_status_format); + break; +- case PROP_CONFIRM_ON_CLOSE: +- g_value_set_boolean (value, display_config->confirm_on_close); +- break; + case PROP_MONITOR_XRESOLUTION: + g_value_set_double (value, display_config->monitor_xres); + break; +@@ -526,6 +522,8 @@ gimp_display_config_get_property (GObject *object, + case PROP_USE_EVENT_HISTORY: + g_value_set_boolean (value, display_config->use_event_history); + break; ++ ++ case PROP_CONFIRM_ON_CLOSE: + case PROP_XOR_COLOR: + /* ignored */ + break; +diff --git a/app/config/gimpdisplayconfig.h b/app/config/gimpdisplayconfig.h +index 427e50e..2c6a7e5 100644 +--- app/config/gimpdisplayconfig.h ++++ app/config/gimpdisplayconfig.h +@@ -56,7 +56,6 @@ struct _GimpDisplayConfig + gboolean show_paint_tool_cursor; + gchar *image_title_format; + gchar *image_status_format; +- gboolean confirm_on_close; + gdouble monitor_xres; + gdouble monitor_yres; + gboolean monitor_res_from_gdk; +diff --git a/app/config/gimprc-blurbs.h b/app/config/gimprc-blurbs.h +index d8f6e44..2af5a29 100644 +--- app/config/gimprc-blurbs.h ++++ app/config/gimprc-blurbs.h +@@ -42,9 +42,6 @@ N_("Specifies how the area around the image should be drawn.") + #define COLOR_PROFILE_POLICY_BLURB \ + N_("How to handle embedded color profiles when opening a file.") + +-#define CONFIRM_ON_CLOSE_BLURB \ +-N_("Ask for confirmation before closing an image without saving.") +- + #define CURSOR_FORMAT_BLURB \ + N_("Sets the pixel format to use for mouse pointers.") + +diff --git a/app/dialogs/preferences-dialog.c b/app/dialogs/preferences-dialog.c +index a8e6d5b..259a5ee 100644 +--- app/dialogs/preferences-dialog.c ++++ app/dialogs/preferences-dialog.c +@@ -1559,13 +1559,6 @@ prefs_dialog_new (Gimp *gimp, + _("Maximum _filesize for thumbnailing:"), + GTK_TABLE (table), 1, size_group); + +- /* File Saving */ +- vbox2 = prefs_frame_new (_("Saving Images"), GTK_CONTAINER (vbox), FALSE); +- +- prefs_check_button_add (object, "confirm-on-close", +- _("Confirm closing of unsa_ved images"), +- GTK_BOX (vbox2)); +- + g_object_unref (size_group); + size_group = NULL; + +diff --git a/app/display/gimpdisplayshell-close.c b/app/display/gimpdisplayshell-close.c +index 6857e50..bc37295 100644 +--- app/display/gimpdisplayshell-close.c ++++ app/display/gimpdisplayshell-close.c +@@ -98,8 +98,7 @@ gimp_display_shell_close (GimpDisplayShell *shell, + if (! kill_it && + image && + gimp_image_get_display_count (image) == 1 && +- gimp_image_is_dirty (image) && +- shell->display->config->confirm_on_close) ++ gimp_image_is_dirty (image)) + { + /* If there's a save dialog active for this image, then raise it. + * (see bug #511965) +-- +cgit v0.9.2 +From 523f807d75efdf69473996b0fd7ede07200835c4 Mon Sep 17 00:00:00 2001 +From: Michael Natterer <mitch@gimp.org> +Date: Mon, 07 May 2012 12:07:43 +0000 +Subject: app: set GIMP_CONFIG_PARAM_IGNORE on "confirm-on-close" + +(cherry picked from commit bfb875755976cd4b2cd4b02d5f3a32ebaf24642f) +--- +diff --git a/app/config/gimpdisplayconfig.c b/app/config/gimpdisplayconfig.c +index 36a46b2..4613535 100644 +--- app/config/gimpdisplayconfig.c ++++ app/config/gimpdisplayconfig.c +@@ -266,7 +266,8 @@ gimp_display_config_class_init (GimpDisplayConfigClass *klass) + GIMP_CONFIG_INSTALL_PROP_BOOLEAN (object_class, PROP_CONFIRM_ON_CLOSE, + "confirm-on-close", NULL, + TRUE, +- GIMP_PARAM_STATIC_STRINGS); ++ GIMP_PARAM_STATIC_STRINGS | ++ GIMP_CONFIG_PARAM_IGNORE); + GIMP_CONFIG_INSTALL_PROP_RGB (object_class, PROP_XOR_COLOR, + "xor-color", NULL, + FALSE, &color, +-- +cgit v0.9.2 Added: trunk/dports/graphics/gimp2/files/patch-snapping-behavior-scale-tool-bz722034.diff =================================================================== --- trunk/dports/graphics/gimp2/files/patch-snapping-behavior-scale-tool-bz722034.diff (rev 0) +++ trunk/dports/graphics/gimp2/files/patch-snapping-behavior-scale-tool-bz722034.diff 2014-02-05 23:41:12 UTC (rev 116754) @@ -0,0 +1,91 @@ +From aed3e3c741000ace5656030697cb0733c1c509ac Mon Sep 17 00:00:00 2001 +From: Michael Natterer <mitch@gimp.org> +Date: Wed, 29 Jan 2014 22:40:35 +0000 +Subject: Bug 722034 - Incorrect snapping behaviour for scale tool + +Always snap to the center of transform tool handles. + +(cherry picked from commit 5054241ca61dbdf869701b429a84d0c239a2d22a) +--- +diff --git a/app/display/gimpcanvashandle.c b/app/display/gimpcanvashandle.c +index 45ad673..c776fb4 100644 +--- app/display/gimpcanvashandle.c ++++ app/display/gimpcanvashandle.c +@@ -452,6 +452,21 @@ gimp_canvas_handle_new (GimpDisplayShell *shell, + } + + void ++gimp_canvas_handle_get_position (GimpCanvasItem *handle, ++ gdouble *x, ++ gdouble *y) ++{ ++ g_return_if_fail (GIMP_IS_CANVAS_HANDLE (handle)); ++ g_return_if_fail (x != NULL); ++ g_return_if_fail (y != NULL); ++ ++ g_object_get (handle, ++ "x", x, ++ "y", y, ++ NULL); ++} ++ ++void + gimp_canvas_handle_set_position (GimpCanvasItem *handle, + gdouble x, + gdouble y) +diff --git a/app/display/gimpcanvashandle.h b/app/display/gimpcanvashandle.h +index 7dea56b..2aeae08 100644 +--- app/display/gimpcanvashandle.h ++++ app/display/gimpcanvashandle.h +@@ -57,9 +57,13 @@ GimpCanvasItem * gimp_canvas_handle_new (GimpDisplayShell *shell, + gint width, + gint height); + ++void gimp_canvas_handle_get_position (GimpCanvasItem *handle, ++ gdouble *x, ++ gdouble *y); + void gimp_canvas_handle_set_position (GimpCanvasItem *handle, + gdouble x, + gdouble y); ++ + void gimp_canvas_handle_set_angles (GimpCanvasItem *handle, + gdouble start_handle, + gdouble slice_handle); +diff --git a/app/tools/gimptransformtool.c b/app/tools/gimptransformtool.c +index 3df8f01..009659c 100644 +--- app/tools/gimptransformtool.c ++++ app/tools/gimptransformtool.c +@@ -54,6 +54,7 @@ + #include "widgets/gimpwidgets-utils.h" + + #include "display/gimpcanvasgroup.h" ++#include "display/gimpcanvashandle.h" + #include "display/gimpdisplay.h" + #include "display/gimpdisplayshell.h" + #include "display/gimpdisplayshell-transform.h" +@@ -341,6 +342,23 @@ gimp_transform_tool_button_press (GimpTool *tool, + tr_tool->prev_trans_info[i] = tr_tool->trans_info[i]; + + gimp_tool_control_activate (tool->control); ++ ++ if (GIMP_IS_CANVAS_HANDLE (tr_tool->handles[tr_tool->function])) ++ { ++ gdouble x, y; ++ ++ gimp_canvas_handle_get_position (tr_tool->handles[tr_tool->function], ++ &x, &y); ++ ++ gimp_tool_control_set_snap_offsets (tool->control, ++ SIGNED_ROUND (x - coords->x), ++ SIGNED_ROUND (y - coords->y), ++ 0, 0); ++ } ++ else ++ { ++ gimp_tool_control_set_snap_offsets (tool->control, 0, 0, 0, 0); ++ } + } + + static void +-- +cgit v0.9.2 Added: trunk/dports/graphics/gimp2/files/patch-writing-character-constants-bz721775.diff =================================================================== --- trunk/dports/graphics/gimp2/files/patch-writing-character-constants-bz721775.diff (rev 0) +++ trunk/dports/graphics/gimp2/files/patch-writing-character-constants-bz721775.diff 2014-02-05 23:41:12 UTC (rev 116754) @@ -0,0 +1,21 @@ +From 6c2cd97b868e7742f9a3ade611713e46a1759d1c Mon Sep 17 00:00:00 2001 +From: Kevin Cozens <kevin@ve3syb.ca> +Date: Mon, 03 Feb 2014 22:30:04 +0000 +Subject: Removed extraneous 'x' when writing character constants. Fixes bug #721775. + +--- +diff --git a/plug-ins/script-fu/tinyscheme/scheme.c b/plug-ins/script-fu/tinyscheme/scheme.c +index 8abddcd..1d288f5 100644 +--- plug-ins/script-fu/tinyscheme/scheme.c ++++ plug-ins/script-fu/tinyscheme/scheme.c +@@ -2177,7 +2177,7 @@ static void atom2str(scheme *sc, pointer l, int f, char **pp, int *plen) { + snprintf(p,STRBUFFSIZE,"#\\x%x",c); break; + } + #endif +- snprintf(p,STRBUFFSIZE,"#\\x%c",c); break; ++ snprintf(p,STRBUFFSIZE,"#\\%c",c); break; + } + } + } else if (is_symbol(l)) { +-- +cgit v0.9.2 Added: trunk/dports/graphics/gimp2/files/patch-wrong-name-transfer-tool-dialogs-bz701159.diff =================================================================== --- trunk/dports/graphics/gimp2/files/patch-wrong-name-transfer-tool-dialogs-bz701159.diff (rev 0) +++ trunk/dports/graphics/gimp2/files/patch-wrong-name-transfer-tool-dialogs-bz701159.diff 2014-02-05 23:41:12 UTC (rev 116754) @@ -0,0 +1,247 @@ +From d94f38c18db41dce4a22a9e55a84c92c2161f169 Mon Sep 17 00:00:00 2001 +From: Michael Natterer <mitch@gimp.org> +Date: Tue, 04 Feb 2014 23:54:39 +0000 +Subject: Bug 701159 - Wrong name in transform tool dialogs... + +...when acting on a path or selection + +Factor out the code that checks if an active item exists and if it's +transformable (not locked etc.) and use that function in more places. +This fixes both the wrong dialog labels and the tool running into +broken states when the selection or a path are being transformed. + +(cherry picked from commit b13c68fda6dcedd43d7e2f4633191f9ddc6cdf3f) +--- +diff --git a/app/tools/gimptransformtool.c b/app/tools/gimptransformtool.c +index 8c31222..ff976ea 100644 +--- app/tools/gimptransformtool.c ++++ app/tools/gimptransformtool.c +@@ -151,6 +151,12 @@ static void gimp_transform_tool_response (GtkWidget + gint response_id, + GimpTransformTool *tr_tool); + ++static GimpItem *gimp_transform_tool_get_active_item (GimpTransformTool *tr_tool, ++ GimpImage *image); ++static GimpItem *gimp_transform_tool_check_active_item (GimpTransformTool *tr_tool, ++ GimpImage *display, ++ GError **error); ++ + + G_DEFINE_TYPE (GimpTransformTool, gimp_transform_tool, GIMP_TYPE_DRAW_TOOL) + +@@ -236,18 +242,17 @@ gimp_transform_tool_initialize (GimpTool *tool, + GimpTransformTool *tr_tool = GIMP_TRANSFORM_TOOL (tool); + GimpImage *image = gimp_display_get_image (display); + GimpDrawable *drawable = gimp_image_get_active_drawable (image); ++ GimpItem *item; + + if (! GIMP_TOOL_CLASS (parent_class)->initialize (tool, display, error)) + { + return FALSE; + } + +- if (gimp_item_is_content_locked (GIMP_ITEM (drawable))) +- { +- g_set_error_literal (error, GIMP_ERROR, GIMP_FAILED, +- _("The active layer's pixels are locked.")); +- return FALSE; +- } ++ item = gimp_transform_tool_check_active_item (tr_tool, image, error); ++ ++ if (! item) ++ return FALSE; + + if (display != tool->display) + { +@@ -578,13 +583,10 @@ gimp_transform_tool_cursor_update (GimpTool *tool, + GdkModifierType state, + GimpDisplay *display) + { +- GimpTransformTool *tr_tool = GIMP_TRANSFORM_TOOL (tool); +- GimpTransformOptions *options = GIMP_TRANSFORM_TOOL_GET_OPTIONS (tool); +- GimpCursorType cursor; +- GimpCursorModifier modifier = GIMP_CURSOR_MODIFIER_NONE; +- GimpImage *image = gimp_display_get_image (display); +- +- cursor = gimp_tool_control_get_cursor (tool->control); ++ GimpTransformTool *tr_tool = GIMP_TRANSFORM_TOOL (tool); ++ GimpImage *image = gimp_display_get_image (display); ++ GimpCursorType cursor = gimp_tool_control_get_cursor (tool->control); ++ GimpCursorModifier modifier = GIMP_CURSOR_MODIFIER_NONE; + + if (tr_tool->use_handles) + { +@@ -633,24 +635,8 @@ gimp_transform_tool_cursor_update (GimpTool *tool, + modifier = GIMP_CURSOR_MODIFIER_MOVE; + } + +- switch (options->type) +- { +- GimpDrawable *drawable; +- +- case GIMP_TRANSFORM_TYPE_LAYER: +- drawable = gimp_image_get_active_drawable (image); +- if (gimp_item_is_content_locked (GIMP_ITEM (drawable))) +- modifier = GIMP_CURSOR_MODIFIER_BAD; +- break; +- +- case GIMP_TRANSFORM_TYPE_SELECTION: +- break; +- +- case GIMP_TRANSFORM_TYPE_PATH: +- if (! gimp_image_get_active_vectors (image)) +- modifier = GIMP_CURSOR_MODIFIER_BAD; +- break; +- } ++ if (! gimp_transform_tool_check_active_item (tr_tool, image, NULL)) ++ modifier = GIMP_CURSOR_MODIFIER_BAD; + + gimp_tool_control_set_cursor (tool->control, cursor); + gimp_tool_control_set_cursor_modifier (tool->control, modifier); +@@ -1073,50 +1059,23 @@ gimp_transform_tool_transform (GimpTransformTool *tr_tool, + GimpTransformOptions *options = GIMP_TRANSFORM_TOOL_GET_OPTIONS (tool); + GimpContext *context = GIMP_CONTEXT (options); + GimpImage *image = gimp_display_get_image (display); +- GimpItem *active_item = NULL; ++ GimpItem *active_item; + TileManager *orig_tiles = NULL; +- gint orig_offset_x; +- gint orig_offset_y; ++ gint orig_offset_x = 0; ++ gint orig_offset_y = 0; + TileManager *new_tiles; + gint new_offset_x; + gint new_offset_y; +- const gchar *null_message = NULL; +- const gchar *locked_message = NULL; + gchar *undo_desc = NULL; +- gboolean new_layer; ++ gboolean new_layer = FALSE; ++ GError *error = NULL; + +- switch (options->type) +- { +- case GIMP_TRANSFORM_TYPE_LAYER: +- active_item = GIMP_ITEM (gimp_image_get_active_drawable (image)); +- null_message = _("There is no layer to transform."); +- locked_message = _("The active layer's pixels are locked."); +- break; +- +- case GIMP_TRANSFORM_TYPE_SELECTION: +- active_item = GIMP_ITEM (gimp_image_get_mask (image)); +- /* cannot happen, so don't translate these messages */ +- null_message = "There is no selection to transform."; +- locked_message = "The selection's pixels are locked."; +- break; +- +- case GIMP_TRANSFORM_TYPE_PATH: +- active_item = GIMP_ITEM (gimp_image_get_active_vectors (image)); +- null_message = _("There is no path to transform."); +- locked_message = _("The active path's strokes are locked."); +- break; +- } ++ active_item = gimp_transform_tool_check_active_item (tr_tool, image, &error); + + if (! active_item) + { +- gimp_tool_message_literal (tool, display, null_message); +- gimp_tool_control (tool, GIMP_TOOL_ACTION_HALT, display); +- return; +- } +- +- if (gimp_item_is_content_locked (active_item)) +- { +- gimp_tool_message_literal (tool, display, locked_message); ++ gimp_tool_message_literal (tool, display, error->message); ++ g_clear_error (&error); + gimp_tool_control (tool, GIMP_TOOL_ACTION_HALT, display); + return; + } +@@ -1396,10 +1355,12 @@ gimp_transform_tool_prepare (GimpTransformTool *tr_tool, + { + GimpTransformOptions *options = GIMP_TRANSFORM_TOOL_GET_OPTIONS (tr_tool); + GimpImage *image = gimp_display_get_image (display); +- GimpDrawable *drawable = gimp_image_get_active_drawable (image); ++ GimpItem *item; ++ ++ item = gimp_transform_tool_get_active_item (tr_tool, image); + + gimp_viewable_dialog_set_viewable (GIMP_VIEWABLE_DIALOG (tr_tool->dialog), +- GIMP_VIEWABLE (drawable), ++ GIMP_VIEWABLE (item), + GIMP_CONTEXT (options)); + gimp_tool_dialog_set_shell (GIMP_TOOL_DIALOG (tr_tool->dialog), + gimp_display_get_shell (display)); +@@ -1464,3 +1425,70 @@ gimp_transform_tool_response (GtkWidget *widget, + break; + } + } ++ ++static GimpItem * ++gimp_transform_tool_get_active_item (GimpTransformTool *tr_tool, ++ GimpImage *image) ++{ ++ GimpTransformOptions *options = GIMP_TRANSFORM_TOOL_GET_OPTIONS (tr_tool); ++ ++ switch (options->type) ++ { ++ case GIMP_TRANSFORM_TYPE_LAYER: ++ return GIMP_ITEM (gimp_image_get_active_drawable (image)); ++ ++ case GIMP_TRANSFORM_TYPE_SELECTION: ++ return GIMP_ITEM (gimp_image_get_mask (image)); ++ ++ case GIMP_TRANSFORM_TYPE_PATH: ++ return GIMP_ITEM (gimp_image_get_active_vectors (image)); ++ } ++ ++ return NULL; ++} ++ ++static GimpItem * ++gimp_transform_tool_check_active_item (GimpTransformTool *tr_tool, ++ GimpImage *image, ++ GError **error) ++{ ++ GimpTransformOptions *options = GIMP_TRANSFORM_TOOL_GET_OPTIONS (tr_tool); ++ GimpItem *item; ++ const gchar *null_message = NULL; ++ const gchar *locked_message = NULL; ++ ++ item = gimp_transform_tool_get_active_item (tr_tool, image); ++ ++ switch (options->type) ++ { ++ case GIMP_TRANSFORM_TYPE_LAYER: ++ null_message = _("There is no layer to transform."); ++ locked_message = _("The active layer's pixels are locked."); ++ break; ++ ++ case GIMP_TRANSFORM_TYPE_SELECTION: ++ /* cannot happen, so don't translate these messages */ ++ null_message = "There is no selection to transform."; ++ locked_message = "The selection's pixels are locked."; ++ break; ++ ++ case GIMP_TRANSFORM_TYPE_PATH: ++ null_message = _("There is no path to transform."); ++ locked_message = _("The active path's strokes are locked."); ++ break; ++ } ++ ++ if (! item) ++ { ++ g_set_error_literal (error, GIMP_ERROR, GIMP_FAILED, null_message); ++ return NULL; ++ } ++ ++ if (gimp_item_is_content_locked (item)) ++ { ++ g_set_error_literal (error, GIMP_ERROR, GIMP_FAILED, locked_message); ++ return NULL; ++ } ++ ++ return item; ++} +-- +cgit v0.9.2
participants (1)
-
devans@macports.org