Commit 15545dd8 authored by Ari Pollak's avatar Ari Pollak

Imported Upstream version 2.6.3

parent 96563501
2008-11-21 Sven Neumann <sven@gimp.org>
* Made 2.6.3 release.
2008-11-19 Sven Neumann <sven@gimp.org>
Merged from trunk:
Bug 558454 – Plugin Map Color Range disappears from GIMP
* plug-ins/script-fu/scripts/Makefile.am
* plug-ins/script-fu/scripts/plug-in-compat.init: new file
providing compatibility with plug-ins from older GIMP
versions. Contains a reimplementation of plug-in-color-map based
on ideas and code from Eric Lamarque.
* plug-ins/script-fu/scheme-wrapper.c (tinyscheme_init): load the
plug-in-compat.init file.
2008-11-18 Martin Nordholts <martinn@svn.gnome.org>
Merged from trunk:
Bug 559239 – Error while loading psd-data
* plug-ins/file-psd/psd-layer-res-load.c (load_layer_resource):
Layer resource data should not be padded.
2008-11-15 Sven Neumann <sven@gimp.org>
Merged from trunk:
* app/display/gimpdisplayshell-scroll.[ch]: removed function
gimp_display_shell_scroll_get_scaled_viewport_offset() as it was
only returning -shell->offset_x and -shell->offset_y and it
started to show up in profiles.
* app/display/gimpdisplayshell-draw.c
* app/display/gimpdisplayshell-transform.c
* app/display/gimpdisplayshell-scale.c: use the shell offsets
directly.
2008-11-15 Martin Nordholts <martinn@svn.gnome.org>
Merged from trunk:
Bug 560903 – Explicit zooming with e.g. '1' should handle
zoom-focus better
* app/display/display-enums.h: Added
GIMP_ZOOM_FOCUS_RETAIN_CENTERING_ELSE_BEST_GUESS.
* app/display/gimpdisplayshell-scale.c
(gimp_display_shell_scale_get_zoom_focus): Take the new enum into
account; if the image is centered, keep it centered, else use the
best-guess method.
* app/actions/view-commands.c (view_zoom_explicit_cmd_callback):
Use the new enum for explicit zooming.
* app/display/display-enums.c: Regenerated.
2008-11-15 Martin Nordholts <martinn@svn.gnome.org>
Merged from trunk:
Bug 560245 – Zoom selection always centered in the Navigation tab
* app/display/gimpdisplayshell-scale.c (gimp_display_shell_scale):
Also take the image center and not only the zoom focus point into
account when deciding whether or not to center the image after
zoom.
2008-11-14 Sven Neumann <sven@gimp.org>
Merged from trunk:
* app/display/gimpdisplayshell-preview.c
(gimp_display_shell_draw_quad): check that the resulting area has
positive width and height.
2008-11-13 Sven Neumann <sven@gimp.org>
Merged from trunk:
Bug 559292 – SOTA Chrome cannot accept different textures
* app/pdb/gimppdb-utils.c (gimp_pdb_image_is_base_type)
(gimp_pdb_image_is_not_base_type): gimp_object_get_name() may
return NULL for images. Use gimp_image_get_uri() instead.
2008-11-11 Sven Neumann <sven@gimp.org>
Merged from trunk:
Bug 560375 – Clearing an already empty document history crashes GIMP
* app/actions/documents-commands.c (documents_clear_cmd_callback):
gtk_recent_manager_purge_items() may return 0 but not set an
error.
2008-11-11 Michael Natterer <mitch@gimp.org>
Merged from trunk:
Bug 559580 – Image windows need better default locations
* app/display/gimpdisplayshell.c (gimp_display_shell_style_set):
Only set GDK_HINT_USER_POS on the empty display because it gets a
position set by gimp. All other displays should be placed by the
window manager. Fixes all displays appearing at 0,0.
2008-11-11 Sven Neumann <sven@gimp.org>
Merged from trunk:
Bug 560283 – "Scale image..." causes distortion around edges.
* app/paint-funcs/scale-region.c (scale): corrected fix for
bug #556248.
2008-11-11 Sven Neumann <sven@gimp.org>
Merged from trunk:
* plug-ins/common/file-pdf.c: fixed size of the GimpParam array
used for the return values.
2008-11-10 Martin Nordholts <martinn@svn.gnome.org>
Merged from trunk:
Bug 559716 – Changing crop size in Crop Tool Options can make UI
unresponsive
* app/tools/gimprectangletool.c: Accept a broader range of x, y,
width and height values from the tool options so we don't end up
in an infinite signal emission loop.
2008-11-10 Michael Natterer <mitch@gimp.org>
Merged from trunk:
* app/core/gimpdrawable-curves.c (gimp_drawable_curves_explicit):
use GIMP_CURVE_FREE, not _SMOOTH. Fixes the resp. PDB call.
2008-11-09 Martin Nordholts <martinn@svn.gnome.org>
Merged from trunk:
Bug 558549 – Stroking a single-point path with a paint tool
crashes GIMP
* app/paint/gimppaintcore-stroke.c
(gimp_paint_core_stroke_vectors): Return an error message if there
were not enough points to stroke.
* app/dialogs/stroke-dialog.c (stroke_dialog_response): Guard
against crashes if an implementator forgets to set an error.
2008-11-09 Martin Nordholts <martinn@svn.gnome.org>
Merged from trunk:
* app/display/gimpdisplayshell-scale.c
(gimp_display_shell_scale_update_rulers): Avoid critical warnings
when converting an image window with a unit other than pixels into
a the empty image window. Probably fixes some of the crashes
reported by Windows users.
2008-11-04 Sven Neumann <sven@gimp.org>
Merged from trunk:
* app/display/gimpdisplayshell-dnd.c
(gimp_display_shell_drop_uri_list): when dropping multiple images
to the empty image window, open them as seperate images.
2008-11-04 Sven Neumann <sven@gimp.org>
* app/file/file-procedure.c
* app/file/file-save.c
* app/pdb/gimpprocedure.c: be careful when passing literal strings
to g_set_error().
2008-11-03 Michael Natterer <mitch@gimp.org>
Merged from trunk:
Bug 559015 – Move tool gives bad information about px moved
* app/tools/gimpeditselectiontool.c (gimp_edit_selection_tool_init):
set cursor precision to PIXEL_BORDER because that's what the move
tool snaps to.
Unrelated: set CENTER_CROSS_SIZE to an odd number so it's drawn
symmetrically.
2008-10-31 Sven Neumann <sven@gimp.org>
Bug 558660 – help behavior for locales without manual translation
* app/widgets/gimphelp.c (gimp_help_user_manual_is_installed):
as a fallback check for the english user manual.
2008-10-30 Sven Neumann <sven@gimp.org>
* configure.in: bumped version to 2.6.3 (interface age 3).
2008-10-30 Sven Neumann <sven@gimp.org>
* Made 2.6.2 release.
......@@ -17,7 +227,7 @@
2008-10-29 Sven Neumann <sven@gimp.org>
Merged from trunk:
Merged from trunk:
Bug 557950 – Scaling in Gimp 2.6 is much slower than in Gimp 2.4
......
......@@ -7,6 +7,42 @@ This is the stable branch of GIMP. No new features are being added
here, just bug-fixes.
Overview of Changes since GIMP 2.6.2 to GIMP 2.6.3
==================================================
* Bugs fixed:
558454 – Plugin Map Color Range disappears from GIMP
559239 – Error while loading psd-data
560903 – Explicit zooming with e.g. '1' should handle
zoom-focus better
560245 – Zoom selection always centered in the Navigation tab
559490 – Wrong lang tags for 'no'
559292 – SOTA Chrome cannot accept different textures
560375 – Clearing an already empty document history crashes GIMP
559580 – Image windows need better default locations
560283 – "Scale image..." causes distortion around edges
559716 – Changing crop size in Crop Tool Options can make UI
unresponsive
558549 – Stroking a single-point path with a paint tool
crashes GIMP
559015 – Move tool gives bad information about px moved
558660 – help behavior for locales without manual translation
* Updated translations:
Belarusian (be)
Dutch (nl)
German (de)
Japanese (ja)
Lithuanian (lt)
Norwegian Bokmål (nb)
Norwegian Nynorsk (nn)
Polish (pl)
Romanian (ro)
Overview of Changes from GIMP 2.6.1 to GIMP 2.6.2
=================================================
......
......@@ -864,8 +864,9 @@ main ()
dnl IT_PROG_INTLTOOL([MINIMUM-VERSION], [no-xml])
# serial 40 IT_PROG_INTLTOOL
AC_DEFUN([IT_PROG_INTLTOOL],
[AC_PREREQ([2.50])dnl
AC_DEFUN([IT_PROG_INTLTOOL], [
AC_PREREQ([2.50])dnl
AC_REQUIRE([AM_NLS])dnl
case "$am__api_version" in
1.[01234])
......@@ -938,6 +939,7 @@ AC_SUBST(INTLTOOL_POLICY_RULE)
AC_PATH_PROG(XGETTEXT, xgettext)
AC_PATH_PROG(MSGMERGE, msgmerge)
AC_PATH_PROG(MSGFMT, msgfmt)
AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT)
if test -z "$XGETTEXT" -o -z "$MSGMERGE" -o -z "$MSGFMT"; then
AC_MSG_ERROR([GNU gettext tools not found; required for intltool])
fi
......@@ -1009,6 +1011,9 @@ dnl The following CONFIG_COMMANDS should be exetuted at the very end
dnl of config.status.
AC_CONFIG_COMMANDS_PRE([
AC_CONFIG_COMMANDS([$1/stamp-it], [
if [ ! grep "^# INTLTOOL_MAKEFILE$" "$1/Makefile.in" ]; then
AC_MSG_ERROR([$1/Makefile.in.in was not created by intltoolize.])
fi
rm -f "$1/stamp-it" "$1/stamp-it.tmp" "$1/POTFILES" "$1/Makefile.tmp"
>"$1/stamp-it.tmp"
[sed '/^#/d
......@@ -1017,22 +1022,17 @@ AC_CONFIG_COMMANDS_PRE([
'"s|^| $ac_top_srcdir/|" \
"$srcdir/$1/POTFILES.in" | sed '$!s/$/ \\/' >"$1/POTFILES"
]
if test ! -f "$1/Makefile"; then
AC_MSG_ERROR([$1/Makefile is not ready.])
fi
mv "$1/Makefile" "$1/Makefile.tmp"
[sed '/^POTFILES =/,/[^\\]$/ {
/^POTFILES =/!d
r $1/POTFILES
}
' "$1/Makefile.tmp" >"$1/Makefile"]
' "$1/Makefile.in" >"$1/Makefile"]
rm -f "$1/Makefile.tmp"
mv "$1/stamp-it.tmp" "$1/stamp-it"
])
])dnl
])
# deprecated macros
AU_ALIAS([AC_PROG_INTLTOOL], [IT_PROG_INTLTOOL])
# A hint is needed for aclocal from Automake <= 1.9.4:
......@@ -1041,7 +1041,7 @@ AU_ALIAS([AC_PROG_INTLTOOL], [IT_PROG_INTLTOOL])
# libtool.m4 - Configure libtool for the host system. -*-Autoconf-*-
# serial 52 Debian 1.5.26-1ubuntu1 AC_PROG_LIBTOOL
# serial 52 Debian 1.5.26-4 AC_PROG_LIBTOOL
# AC_PROVIDE_IFELSE(MACRO-NAME, IF-PROVIDED, IF-NOT-PROVIDED)
......@@ -7691,6 +7691,38 @@ AC_SUBST([SED])
AC_MSG_RESULT([$SED])
])
# nls.m4 serial 3 (gettext-0.15)
dnl Copyright (C) 1995-2003, 2005-2006 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
dnl
dnl This file can can be used in projects which are not available under
dnl the GNU General Public License or the GNU Library General Public
dnl License but which still want to provide support for the GNU gettext
dnl functionality.
dnl Please note that the actual code of the GNU gettext library is covered
dnl by the GNU Library General Public License, and the rest of the GNU
dnl gettext package package is covered by the GNU General Public License.
dnl They are *not* in the public domain.
dnl Authors:
dnl Ulrich Drepper <drepper@cygnus.com>, 1995-2000.
dnl Bruno Haible <haible@clisp.cons.org>, 2000-2003.
AC_PREREQ(2.50)
AC_DEFUN([AM_NLS],
[
AC_MSG_CHECKING([whether NLS is requested])
dnl Default is enabled NLS
AC_ARG_ENABLE(nls,
[ --disable-nls do not use Native Language Support],
USE_NLS=$enableval, USE_NLS=yes)
AC_MSG_RESULT($USE_NLS)
AC_SUBST(USE_NLS)
])
# pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*-
#
# Copyright © 2004 Scott James Remnant <scott@netsplit.com>.
......
......@@ -232,8 +232,10 @@ documents_clear_cmd_callback (GtkAction *action,
gimp_container_clear (gimp->documents);
if (! gtk_recent_manager_purge_items (gtk_recent_manager_get_default (),
&error))
gtk_recent_manager_purge_items (gtk_recent_manager_get_default (),
&error);
if (error)
{
gimp_message (gimp, G_OBJECT (dialog), GIMP_MESSAGE_ERROR,
"%s", error->message);
......
......@@ -218,7 +218,7 @@ view_zoom_explicit_cmd_callback (GtkAction *action,
gimp_display_shell_scale (shell,
GIMP_ZOOM_TO,
(gdouble) value / 10000,
GIMP_ZOOM_FOCUS_IMAGE_CENTER);
GIMP_ZOOM_FOCUS_RETAIN_CENTERING_ELSE_BEST_GUESS);
}
}
......
......@@ -129,7 +129,7 @@ gimp_drawable_curves_explicit (GimpDrawable *drawable,
gimp_data_freeze (GIMP_DATA (curve));
gimp_curve_set_curve_type (curve, GIMP_CURVE_SMOOTH);
gimp_curve_set_curve_type (curve, GIMP_CURVE_FREE);
for (i = 0; i < 256; i++)
gimp_curve_set_curve (curve,
......
......@@ -318,9 +318,10 @@ stroke_dialog_response (GtkWidget *widget,
if (! gimp_item_stroke (item, drawable, context, desc, FALSE, NULL,
&error))
{
gimp_message (context->gimp, G_OBJECT (widget),
gimp_message (context->gimp,
G_OBJECT (widget),
GIMP_MESSAGE_WARNING,
error->message);
error ? error->message : "NULL");
g_clear_error (&error);
return;
}
......
......@@ -166,6 +166,7 @@ gimp_zoom_focus_get_type (void)
{ GIMP_ZOOM_FOCUS_BEST_GUESS, "GIMP_ZOOM_FOCUS_BEST_GUESS", "best-guess" },
{ GIMP_ZOOM_FOCUS_POINTER, "GIMP_ZOOM_FOCUS_POINTER", "pointer" },
{ GIMP_ZOOM_FOCUS_IMAGE_CENTER, "GIMP_ZOOM_FOCUS_IMAGE_CENTER", "image-center" },
{ GIMP_ZOOM_FOCUS_RETAIN_CENTERING_ELSE_BEST_GUESS, "GIMP_ZOOM_FOCUS_RETAIN_CENTERING_ELSE_BEST_GUESS", "retain-centering-else-best-guess" },
{ 0, NULL, NULL }
};
......@@ -174,6 +175,7 @@ gimp_zoom_focus_get_type (void)
{ GIMP_ZOOM_FOCUS_BEST_GUESS, "GIMP_ZOOM_FOCUS_BEST_GUESS", NULL },
{ GIMP_ZOOM_FOCUS_POINTER, "GIMP_ZOOM_FOCUS_POINTER", NULL },
{ GIMP_ZOOM_FOCUS_IMAGE_CENTER, "GIMP_ZOOM_FOCUS_IMAGE_CENTER", NULL },
{ GIMP_ZOOM_FOCUS_RETAIN_CENTERING_ELSE_BEST_GUESS, "GIMP_ZOOM_FOCUS_RETAIN_CENTERING_ELSE_BEST_GUESS", NULL },
{ 0, NULL, NULL }
};
......
......@@ -87,9 +87,20 @@ GType gimp_zoom_focus_get_type (void) G_GNUC_CONST;
typedef enum
{
GIMP_ZOOM_FOCUS_BEST_GUESS, /* Make a best guess */
GIMP_ZOOM_FOCUS_POINTER, /* Use the mouse cursor (if within canvas) */
GIMP_ZOOM_FOCUS_IMAGE_CENTER /* Use the image center */
/* Make a best guess */
GIMP_ZOOM_FOCUS_BEST_GUESS,
/* Use the mouse cursor (if within canvas) */
GIMP_ZOOM_FOCUS_POINTER,
/* Use the image center */
GIMP_ZOOM_FOCUS_IMAGE_CENTER,
/* If the image is centered, retain the centering. Else use
* _BEST_GUESS
*/
GIMP_ZOOM_FOCUS_RETAIN_CENTERING_ELSE_BEST_GUESS
} GimpZoomFocus;
......
......@@ -461,9 +461,12 @@ gimp_display_shell_drop_uri_list (GtkWidget *widget,
GimpImage *image = shell->display->image;
GimpContext *context = gimp_get_user_context (shell->display->gimp);
GList *list;
gboolean open_as_layers;
GIMP_LOG (DND, NULL);
open_as_layers = (shell->display->image != NULL);
for (list = uri_list; list; list = g_list_next (list))
{
const gchar *uri = list->data;
......@@ -471,17 +474,7 @@ gimp_display_shell_drop_uri_list (GtkWidget *widget,
GError *error = NULL;
gboolean warn = FALSE;
if (! shell->display->image)
{
image = file_open_with_display (shell->display->gimp, context,
GIMP_PROGRESS (shell->display),
uri, FALSE,
&status, &error);
if (! image && status != GIMP_PDB_CANCEL)
warn = TRUE;
}
else
if (open_as_layers)
{
GList *new_layers;
......@@ -510,6 +503,30 @@ gimp_display_shell_drop_uri_list (GtkWidget *widget,
warn = TRUE;
}
}
else if (shell->display->image)
{
/* open any subsequent images in a new display */
GimpImage *new_image;
new_image = file_open_with_display (shell->display->gimp, context,
NULL,
uri, FALSE,
&status, &error);
if (! new_image && status != GIMP_PDB_CANCEL)
warn = TRUE;
}
else
{
/* open the first image in the empty display */
image = file_open_with_display (shell->display->gimp, context,
GIMP_PROGRESS (shell->display),
uri, FALSE,
&status, &error);
if (! image && status != GIMP_PDB_CANCEL)
warn = TRUE;
}
if (warn)
{
......
......@@ -573,7 +573,9 @@ gimp_display_shell_draw_area (const GimpDisplayShell *shell,
if (! shell->display->image)
return;
gimp_display_shell_scroll_get_scaled_viewport_offset (shell, &sx, &sy);
sx = - shell->offset_x;
sy = - shell->offset_y;
gimp_display_shell_draw_get_scaled_image_size (shell, &sw, &sh);
/* check if the passed in area intersects with
......
......@@ -349,14 +349,13 @@ gimp_display_shell_draw_quad (GimpDrawable *texture,
gfloat *v,
guchar opacity)
{
gint x2[3], y2[3];
gfloat u2[3], v2[3];
gint minx, maxx, miny, maxy; /* screen bounds of the quad */
gint dwidth, dheight; /* dimensions of dest */
GdkPixbuf *area; /* quad sized area with dest pixels */
gint c;
gint x2[3], y2[3];
gfloat u2[3], v2[3];
gint minx, maxx, miny, maxy; /* screen bounds of the quad */
gint dwidth, dheight; /* dimensions of dest */
gint c;
g_return_if_fail(GDK_IS_DRAWABLE (dest));
g_return_if_fail (GDK_IS_DRAWABLE (dest));
x2[0] = x[3]; y2[0] = y[3]; u2[0] = u[3]; v2[0] = v[3];
x2[1] = x[2]; y2[1] = y[2]; u2[1] = u[2]; v2[1] = v[2];
......@@ -382,21 +381,27 @@ gimp_display_shell_draw_quad (GimpDrawable *texture,
}
if (minx < 0) minx = 0;
if (miny < 0) miny = 0;
if (maxx > dwidth - 1) maxx=dwidth - 1;
if (maxy > dheight - 1) maxy=dheight - 1;
if (maxx > dwidth - 1) maxx = dwidth - 1;
if (maxy > dheight - 1) maxy = dheight - 1;
if (minx <= maxx && miny <= maxy)
{
GdkPixbuf *area;
area = gdk_pixbuf_new (GDK_COLORSPACE_RGB, TRUE, 8,
maxx - minx + 1, maxy - miny + 1);
g_return_if_fail (area != NULL);
area = gdk_pixbuf_new (GDK_COLORSPACE_RGB, TRUE, 8,
maxx - minx + 1, maxy - miny + 1);
gimp_display_shell_draw_tri (texture, dest, area, minx, miny,
mask, mask_offx, mask_offy,
x, y, u, v, opacity);
gimp_display_shell_draw_tri (texture, dest, area, minx, miny,
mask, mask_offx, mask_offy,
x2, y2, u2, v2, opacity);
g_return_if_fail (area != NULL);
g_object_unref (area);
gimp_display_shell_draw_tri (texture, dest, area, minx, miny,
mask, mask_offx, mask_offy,
x, y, u, v, opacity);
gimp_display_shell_draw_tri (texture, dest, area, minx, miny,
mask, mask_offx, mask_offy,
x2, y2, u2, v2, opacity);
g_object_unref (area);
}
}
/**
......
This diff is collapsed.
......@@ -432,18 +432,12 @@ gimp_display_shell_scroll_get_scaled_viewport (const GimpDisplayShell *shell,
gint *w,
gint *h)
{
gint scaled_viewport_offset_x;
gint scaled_viewport_offset_y;
g_return_if_fail (GIMP_IS_DISPLAY_SHELL (shell));
gimp_display_shell_scroll_get_scaled_viewport_offset (shell,
&scaled_viewport_offset_x,
&scaled_viewport_offset_y);
if (x) *x = -scaled_viewport_offset_x;
if (y) *y = -scaled_viewport_offset_y;
if (w) *w = shell->disp_width;
if (h) *h = shell->disp_height;
*x = shell->offset_x;
*y = shell->offset_y;
*w = shell->disp_width;
*h = shell->disp_height;
}
/**
......@@ -466,30 +460,10 @@ gimp_display_shell_scroll_get_viewport (const GimpDisplayShell *shell,
{
g_return_if_fail (GIMP_IS_DISPLAY_SHELL (shell));
if (x) *x = shell->offset_x / shell->scale_x;
if (y) *y = shell->offset_y / shell->scale_y;
if (w) *w = shell->disp_width / shell->scale_x;
if (h) *h = shell->disp_height / shell->scale_y;
}
/**
* gimp_display_shell_scroll_get_scaled_viewport_offset:
* @shell:
* @x:
* @y:
*
* Gets the scaled image offset in viewport coordinates
*
**/
void
gimp_display_shell_scroll_get_scaled_viewport_offset (const GimpDisplayShell *shell,
gint *x,
gint *y)
{
g_return_if_fail (GIMP_IS_DISPLAY_SHELL (shell));
if (x) *x = -shell->offset_x;