Commit 4be5597e authored by Ari Pollak's avatar Ari Pollak

Imported Upstream version 2.4.0~rc2

parent d884b291
......@@ -13,6 +13,7 @@ The following people have contributed code to GIMP:
Sven Anders
Henrik Brix Andersen
Karl-Johan Andersson
Nicola Archibald
John Beale
Zach Beane
Tom Bech
......@@ -133,6 +134,7 @@ The following people have contributed code to GIMP:
Chris Mohler
Chris Moller
David Monniaux
Tim Mooney
Adam D Moss
Balazs Nagy
Yukihiro Nakai
......@@ -157,6 +159,7 @@ The following people have contributed code to GIMP:
Akkana Peck
Asbjorn Pettersen
Mike Phillips
Nils Philippsen
Ari Pollak
Raphaël Quinet
Tom Rathborne
......@@ -206,6 +209,7 @@ The following people have contributed code to GIMP:
Calvin Williamson
Matthew Wilson
Karl Günter Wünsch
Yoshinori Yamakawa
Shirasaki Yasuhiro
......
This diff is collapsed.
......@@ -224,6 +224,8 @@ GTK_LIBS = @GTK_LIBS@
GTK_REQUIRED_VERSION = @GTK_REQUIRED_VERSION@
HAL_CFLAGS = @HAL_CFLAGS@
HAL_LIBS = @HAL_LIBS@
HAVE_CARBON_FALSE = @HAVE_CARBON_FALSE@
HAVE_CARBON_TRUE = @HAVE_CARBON_TRUE@
HAVE_DX_DINPUT_FALSE = @HAVE_DX_DINPUT_FALSE@
HAVE_DX_DINPUT_TRUE = @HAVE_DX_DINPUT_TRUE@
HAVE_FINITE = @HAVE_FINITE@
......
......@@ -7,6 +7,33 @@ This is the development branch of GIMP. Here's where all the shiny
new stuff is being done that will one day be released as GIMP 2.4.
Changes in GIMP 2.4.0-rc2
=========================
- more improvements and bug fixes in the rectangle tools
- antialias the display for zoom levels between 100% and 200%
- fix zoomed-out display problems
- improve handling of JPEG settings
- fix script-fu error reporting
- on OS X, get rid of menubars in windows and use the global menubar
- fix plug-ins using GimpZoomPreview
- throw properly catchable exceptions from foreign script-fu function
(like PDB wrappers)
- bug fixes
Changes in GIMP 2.4.0-rc1
=========================
- further improvement to the Print plug-in
- completed the color management functionality for 2.4
- store JPEG setting with the image and use them when saving as JPEG
- further improved the rectangle tools, in particular handling of the
fixed aspect ratio
- added color profile selector widget
- further improved the display quality for zoomed-out views
Changes in GIMP 2.3.19
======================
......
......@@ -2,13 +2,12 @@ The GNU Image Manipulation Program Version 2.4
----------------------------------------------
This is a release candidate for GIMP 2.4, the new stable version of
GIMP. Please realize that this is in not yet the 2.4.0 release. This
GIMP. Please realize that this is not yet the 2.4.0 release. This
release candidate should be feature complete and pretty close to what
you will get with 2.4.0. But there might still be bugs and even some
minor changes pending in some places. you way a final product. A lot
of new features are incomplete and some things may even be completely
broken. If you need to get work done, please stick to the stable
version, GIMP 2.2 until GIMP 2.4 is released.
minor changes pending in some places. If you need to get work done,
please stick to the stable version, GIMP 2.2 until GIMP 2.4 is
released.
GIMP 2.4 replaces earlier GIMP 2.x versions. It is advised that you
uninstall them before installing GIMP 2.4. If you want to keep your
......@@ -53,12 +52,9 @@ The latest version of GIMP can be found at:
We have several mailing lists dedicated to GIMP user and development
discussion. There is more info at
https://lists.xcf.berkeley.edu/mailman/listinfo/<listname>
http://www.gimp.org/mail_lists.html
with <listname> replaced by "gimp-announce", "gimp-user", "gimp-win-users"
or "gimp-developer" (without the quotes, of course) depending on the list
you want to subscribe to. Links to the mailing list archives can be
found at the same addresses as given above.
Links to several archives of the mailing lists are included in that page.
Gimp-announce is a low-traffic list with announcements about new
releases of GIMP and plug-ins. Gimp-user is a mailing list dedicated
......
This diff is collapsed.
......@@ -92,6 +92,7 @@ INCLUDES = \
-I$(includedir)
AM_LDFLAGS = $(mwindows) $(munix) \
$(CARBON_LDFLAGS) \
-u $(SYMPREFIX)xcf_init \
-u $(SYMPREFIX)internal_procs_init \
-u $(SYMPREFIX)gimp_coords_mix \
......@@ -219,13 +220,17 @@ endif
#
dist-dump-gimprc: gimp-console-$(GIMP_APP_VERSION)$(EXEEXT)
./$< --dump-gimprc-system > gimprc.tmp \
&& (cmp -s gimprc.tmp $(top_srcdir)/etc/gimprc || \
cp gimprc.tmp $(top_srcdir)/etc/gimprc) \
&& rm gimprc.tmp
&& sed -e "s/num-processors [0-9]*/num-processors 1/" \
gimprc.tmp > gimprc.tmp2 \
&& (cmp -s gimprc.tmp2 $(top_srcdir)/etc/gimprc || \
cp gimprc.tmp2 $(top_srcdir)/etc/gimprc) \
&& rm gimprc.tmp gimprc.tmp2
./$< --dump-gimprc-manpage > gimprc.tmp \
&& (cmp -s gimprc.tmp $(top_srcdir)/docs/gimprc.5.in || \
cp gimprc.tmp $(top_srcdir)/docs/gimprc.5.in) \
&& rm gimprc.tmp
&& sed -e "s/num-processors [0-9]*/num-processors 1/" \
gimprc.tmp > gimprc.tmp2 \
&& (cmp -s gimprc.tmp2 $(top_srcdir)/docs/gimprc.5.in ||\
cp gimprc.tmp2 $(top_srcdir)/docs/gimprc.5.in) \
&& rm gimprc.tmp gimprc.tmp2
dist-hook: dist-check-gimp-console dist-dump-gimprc
......
......@@ -285,6 +285,8 @@ GTK_LIBS = @GTK_LIBS@
GTK_REQUIRED_VERSION = @GTK_REQUIRED_VERSION@
HAL_CFLAGS = @HAL_CFLAGS@
HAL_LIBS = @HAL_LIBS@
HAVE_CARBON_FALSE = @HAVE_CARBON_FALSE@
HAVE_CARBON_TRUE = @HAVE_CARBON_TRUE@
HAVE_DX_DINPUT_FALSE = @HAVE_DX_DINPUT_FALSE@
HAVE_DX_DINPUT_TRUE = @HAVE_DX_DINPUT_TRUE@
HAVE_FINITE = @HAVE_FINITE@
......@@ -589,6 +591,7 @@ INCLUDES = \
-I$(includedir)
AM_LDFLAGS = $(mwindows) $(munix) \
$(CARBON_LDFLAGS) \
-u $(SYMPREFIX)xcf_init \
-u $(SYMPREFIX)internal_procs_init \
-u $(SYMPREFIX)gimp_coords_mix \
......@@ -1177,13 +1180,17 @@ uninstall-local:
#
dist-dump-gimprc: gimp-console-$(GIMP_APP_VERSION)$(EXEEXT)
./$< --dump-gimprc-system > gimprc.tmp \
&& (cmp -s gimprc.tmp $(top_srcdir)/etc/gimprc || \
cp gimprc.tmp $(top_srcdir)/etc/gimprc) \
&& rm gimprc.tmp
&& sed -e "s/num-processors [0-9]*/num-processors 1/" \
gimprc.tmp > gimprc.tmp2 \
&& (cmp -s gimprc.tmp2 $(top_srcdir)/etc/gimprc || \
cp gimprc.tmp2 $(top_srcdir)/etc/gimprc) \
&& rm gimprc.tmp gimprc.tmp2
./$< --dump-gimprc-manpage > gimprc.tmp \
&& (cmp -s gimprc.tmp $(top_srcdir)/docs/gimprc.5.in || \
cp gimprc.tmp $(top_srcdir)/docs/gimprc.5.in) \
&& rm gimprc.tmp
&& sed -e "s/num-processors [0-9]*/num-processors 1/" \
gimprc.tmp > gimprc.tmp2 \
&& (cmp -s gimprc.tmp2 $(top_srcdir)/docs/gimprc.5.in ||\
cp gimprc.tmp2 $(top_srcdir)/docs/gimprc.5.in) \
&& rm gimprc.tmp gimprc.tmp2
dist-hook: dist-check-gimp-console dist-dump-gimprc
......
......@@ -240,6 +240,8 @@ GTK_LIBS = @GTK_LIBS@
GTK_REQUIRED_VERSION = @GTK_REQUIRED_VERSION@
HAL_CFLAGS = @HAL_CFLAGS@
HAL_LIBS = @HAL_LIBS@
HAVE_CARBON_FALSE = @HAVE_CARBON_FALSE@
HAVE_CARBON_TRUE = @HAVE_CARBON_TRUE@
HAVE_DX_DINPUT_FALSE = @HAVE_DX_DINPUT_FALSE@
HAVE_DX_DINPUT_TRUE = @HAVE_DX_DINPUT_TRUE@
HAVE_FINITE = @HAVE_FINITE@
......
......@@ -572,7 +572,7 @@ view_actions_update (GimpActionGroup *group,
else
{
gimp_action_group_set_action_label (group, "view-zoom-revert",
N_("Re_vert Zoom"));
_("Re_vert Zoom"));
}
SET_SENSITIVE ("view-zoom-out", display);
......
......@@ -211,6 +211,8 @@ GTK_LIBS = @GTK_LIBS@
GTK_REQUIRED_VERSION = @GTK_REQUIRED_VERSION@
HAL_CFLAGS = @HAL_CFLAGS@
HAL_LIBS = @HAL_LIBS@
HAVE_CARBON_FALSE = @HAVE_CARBON_FALSE@
HAVE_CARBON_TRUE = @HAVE_CARBON_TRUE@
HAVE_DX_DINPUT_FALSE = @HAVE_DX_DINPUT_FALSE@
HAVE_DX_DINPUT_TRUE = @HAVE_DX_DINPUT_TRUE@
HAVE_FINITE = @HAVE_FINITE@
......
......@@ -198,6 +198,14 @@ tile_manager_get (TileManager *tm,
{
if (wantwrite)
{
if (tile_num == tm->cached_num)
{
tile_release (tm->cached_tile, FALSE);
tm->cached_tile = NULL;
tm->cached_num = -1;
}
if ((*tile_ptr)->share_count > 1)
{
/* Copy-on-write required */
......@@ -759,11 +767,11 @@ read_pixel_data_1 (TileManager *tm,
if (num != tm->cached_num) /* must fetch a new tile */
{
if (tm->cached_tile)
tile_release (tm->cached_tile, FALSE);
if (tm->cached_tile)
tile_release (tm->cached_tile, FALSE);
tm->cached_num = num;
tm->cached_tile = tile_manager_get (tm, num, TRUE, FALSE);
tm->cached_num = num;
tm->cached_tile = tile_manager_get (tm, num, TRUE, FALSE);
}
if (tm->cached_tile)
......
......@@ -303,6 +303,8 @@ GTK_LIBS = @GTK_LIBS@
GTK_REQUIRED_VERSION = @GTK_REQUIRED_VERSION@
HAL_CFLAGS = @HAL_CFLAGS@
HAL_LIBS = @HAL_LIBS@
HAVE_CARBON_FALSE = @HAVE_CARBON_FALSE@
HAVE_CARBON_TRUE = @HAVE_CARBON_TRUE@
HAVE_DX_DINPUT_FALSE = @HAVE_DX_DINPUT_FALSE@
HAVE_DX_DINPUT_TRUE = @HAVE_DX_DINPUT_TRUE@
HAVE_FINITE = @HAVE_FINITE@
......
......@@ -218,6 +218,8 @@ GTK_LIBS = @GTK_LIBS@
GTK_REQUIRED_VERSION = @GTK_REQUIRED_VERSION@
HAL_CFLAGS = @HAL_CFLAGS@
HAL_LIBS = @HAL_LIBS@
HAVE_CARBON_FALSE = @HAVE_CARBON_FALSE@
HAVE_CARBON_TRUE = @HAVE_CARBON_TRUE@
HAVE_DX_DINPUT_FALSE = @HAVE_DX_DINPUT_FALSE@
HAVE_DX_DINPUT_TRUE = @HAVE_DX_DINPUT_TRUE@
HAVE_FINITE = @HAVE_FINITE@
......
......@@ -274,6 +274,8 @@ GTK_LIBS = @GTK_LIBS@
GTK_REQUIRED_VERSION = @GTK_REQUIRED_VERSION@
HAL_CFLAGS = @HAL_CFLAGS@
HAL_LIBS = @HAL_LIBS@
HAVE_CARBON_FALSE = @HAVE_CARBON_FALSE@
HAVE_CARBON_TRUE = @HAVE_CARBON_TRUE@
HAVE_DX_DINPUT_FALSE = @HAVE_DX_DINPUT_FALSE@
HAVE_DX_DINPUT_TRUE = @HAVE_DX_DINPUT_TRUE@
HAVE_FINITE = @HAVE_FINITE@
......
......@@ -811,14 +811,13 @@ sample_linear (PixelSurround *surround,
*/
for (i = 0; i < alpha; i++)
{
gint newval;
newval = (a_recip *
gint newval =
ROUND ((a_recip *
BILINEAR (alphachan[0] * data[i],
alphachan[bytes] * data[bytes + i],
alphachan[rowstride] * data[rowstride + i],
alphachan[rowstride + bytes] * data[rowstride + bytes + i],
du, dv));
du, dv)));
color[i] = CLAMP (newval, 0, 255);
}
......@@ -1187,25 +1186,26 @@ sample_cubic (PixelSurround *surround,
*/
for (i = 0; i < alpha; i++)
{
gint newval = (a_recip *
gimp_drawable_transform_cubic
(dv,
CUBIC_SCALED_ROW (du,
i + data + rowstride * 0,
data + alpha + rowstride * 0,
bytes),
CUBIC_SCALED_ROW (du,
i + data + rowstride * 1,
data + alpha + rowstride * 1,
bytes),
CUBIC_SCALED_ROW (du,
i + data + rowstride * 2,
data + alpha + rowstride * 2,
bytes),
CUBIC_SCALED_ROW (du,
i + data + rowstride * 3,
data + alpha + rowstride * 3,
bytes)));
gint newval =
ROUND ((a_recip *
gimp_drawable_transform_cubic
(dv,
CUBIC_SCALED_ROW (du,
i + data + rowstride * 0,
data + alpha + rowstride * 0,
bytes),
CUBIC_SCALED_ROW (du,
i + data + rowstride * 1,
data + alpha + rowstride * 1,
bytes),
CUBIC_SCALED_ROW (du,
i + data + rowstride * 2,
data + alpha + rowstride * 2,
bytes),
CUBIC_SCALED_ROW (du,
i + data + rowstride * 3,
data + alpha + rowstride * 3,
bytes))));
color[i] = CLAMP (newval, 0, 255);
}
......@@ -1306,7 +1306,7 @@ sample_lanczos (PixelSurround *surround,
}
newval *= arecip;
color[b] = CLAMP (newval, 0, 255);
color[b] = CLAMP (ROUND (newval), 0, 255);
}
color[alpha] = RINT (aval);
......
......@@ -192,7 +192,7 @@ INCLUDES = \
DEFINES = \
-DGIMP_COMPILATION \
-DGIMP_APP_VERSION=\"2.3\" \
-DGIMP_APP_VERSION=\"2.4\" \
-DG_LOG_DOMAIN=\"Gimp-Core\"
all : \
......
......@@ -223,6 +223,8 @@ GTK_LIBS = @GTK_LIBS@
GTK_REQUIRED_VERSION = @GTK_REQUIRED_VERSION@
HAL_CFLAGS = @HAL_CFLAGS@
HAL_LIBS = @HAL_LIBS@
HAVE_CARBON_FALSE = @HAVE_CARBON_FALSE@
HAVE_CARBON_TRUE = @HAVE_CARBON_TRUE@
HAVE_DX_DINPUT_FALSE = @HAVE_DX_DINPUT_FALSE@
HAVE_DX_DINPUT_TRUE = @HAVE_DX_DINPUT_TRUE@
HAVE_FINITE = @HAVE_FINITE@
......
......@@ -6,6 +6,7 @@ static const gchar * const authors[] =
"Spencer Kimball",
"Peter Mattis",
"Henrik Brix Andersen",
"Nicola Archibald",
"Hans Breuer",
"Simon Budig",
"João S. O. Bueno Calligaris",
......@@ -45,6 +46,7 @@ static const gchar * const authors[] =
"Loren Merritt",
"Chris Mohler",
"Chris Moller",
"Tim Mooney",
"Adam D Moss",
"Michael Natterer",
"David Neary",
......@@ -53,6 +55,8 @@ static const gchar * const authors[] =
"David Odin",
"Robert Ögren",
"Akkana Peck",
"Nils Philippsen",
"Ari Pollak",
"Raphaël Quinet",
"Maurits Rijk",
"Clarence Risher",
......@@ -72,6 +76,7 @@ static const gchar * const authors[] =
"Helvetix Victorinox",
"Matthew Wilson",
"Karl Günter Wünsch",
"Yoshinori Yamakawa",
NULL
};
......
......@@ -1298,9 +1298,11 @@ prefs_display_options_frame_add (Gimp *gimp,
gtk_box_pack_start (GTK_BOX (hbox), checks_vbox, TRUE, TRUE, 0);
gtk_widget_show (checks_vbox);
#ifndef HAVE_CARBON
prefs_check_button_add (object, "show-menubar",
_("Show _menubar"),
GTK_BOX (checks_vbox));
#endif /* !HAVE_CARBON */
prefs_check_button_add (object, "show-rulers",
_("Show _rulers"),
GTK_BOX (checks_vbox));
......
......@@ -227,6 +227,8 @@ GTK_LIBS = @GTK_LIBS@
GTK_REQUIRED_VERSION = @GTK_REQUIRED_VERSION@
HAL_CFLAGS = @HAL_CFLAGS@
HAL_LIBS = @HAL_LIBS@
HAVE_CARBON_FALSE = @HAVE_CARBON_FALSE@
HAVE_CARBON_TRUE = @HAVE_CARBON_TRUE@
HAVE_DX_DINPUT_FALSE = @HAVE_DX_DINPUT_FALSE@
HAVE_DX_DINPUT_TRUE = @HAVE_DX_DINPUT_TRUE@
HAVE_FINITE = @HAVE_FINITE@
......
......@@ -553,10 +553,10 @@ gimp_display_shell_draw_area (GimpDisplayShell *shell,
if (shell->highlight)
{
rect.x = SCALEX (shell, shell->highlight->x);
rect.y = SCALEY (shell, shell->highlight->y);
rect.width = SCALEX (shell, shell->highlight->width);
rect.height = SCALEY (shell, shell->highlight->height);
rect.x = ceil (shell->scale_x * shell->highlight->x);
rect.y = ceil (shell->scale_y * shell->highlight->y);
rect.width = floor (shell->scale_x * shell->highlight->width);
rect.height = floor (shell->scale_y * shell->highlight->height);
}
/* display the image in RENDER_BUF_WIDTH x RENDER_BUF_HEIGHT
......@@ -576,15 +576,6 @@ gimp_display_shell_draw_area (GimpDisplayShell *shell,
i - shell->disp_yoffset,
dx, dy,
shell->highlight ? &rect : NULL);
#ifdef STRESS_TEST
/* Invalidate the projection just after we render it! */
gimp_image_invalidate_without_render (shell->display->image,
j - shell->disp_xoffset,
i - shell->disp_yoffset,
dx, dy,
0, 0, 0, 0);
#endif
}
}
}
......
This diff is collapsed.
......@@ -456,7 +456,7 @@ gimp_display_shell_destroy (GtkObject *object)
if (shell->highlight)
{
g_free (shell->highlight);
g_slice_free (GdkRectangle, shell->highlight);
shell->highlight = NULL;
}
......@@ -796,9 +796,11 @@ gimp_display_shell_new (GimpDisplay *display,
main_vbox = gtk_vbox_new (FALSE, 1);
gtk_container_add (GTK_CONTAINER (shell), main_vbox);
#ifndef HAVE_CARBON
shell->menubar =
gtk_ui_manager_get_widget (GTK_UI_MANAGER (shell->menubar_manager),
"/image-menubar");
#endif /* !HAVE_CARBON */
if (shell->menubar)