Commit b3645631 authored by Ari Pollak's avatar Ari Pollak

New upstream version 2.8.20

parent 7c6d74dc
......@@ -36,6 +36,7 @@ The following people have contributed code to GIMP:
Roberto Boyd
Stanislav Brabec
Hans Breuer
Ingo Brückl
Simon Budig
João S. O. Bueno
Seth Burgess
......@@ -164,6 +165,7 @@ The following people have contributed code to GIMP:
Mikael Magnusson
Luidnel Maignan
Ian Main
Thomas Manni
Kjartan Maraas
John Marshall
Kelly Martin
......@@ -220,6 +222,7 @@ The following people have contributed code to GIMP:
Tom Rathborne
Martin Renold
Jens Restemeier
Kristian Rietveld
Maurits Rijk
Daniel Risacher
Clarence Risher
......
This diff is collapsed.
This diff is collapsed.
......@@ -7,6 +7,105 @@ This is the stable branch of GIMP. No new features are being added
here, just bug-fixes.
Overview of Changes from GIMP 2.8.18 to GIMP 2.8.20
===================================================
Core:
- Avoid D-Bus error message when built without D-Bus support
- fix OS X min required conditional in gimpimagewindow.c
- Saving to existing .xcf.bz and .xcf.gz files didn't truncate them
and could lead to unnecessarily large files
- Text layer created by gimp-text-fontname doesn't respect border
when resized
- avoid seeking when saving XCF files to prevent corruption with
file network shares (fixed since 2014, but not mentioned in NEWS yet)
GUI:
- Flow on Paint Dynamics editor dialog: the 'y' axis is indicating
'Rate' instead 'Flow'
- Vertical ruler shows artifacts if the status bar isn't showing
- Tablet stylus misbehaves when crossing the edge of a dock in
multi-window-mode
- Disable the new "automatic window tabbing" feature introduced on macOS
Sierra
- Improve the visiblity of slider handles with dark themes
- Make it harder to switch to renaming if selecting already selected
items in resource lists
Tools:
- make toggling to color picker mode of paint tools more robust
Libgimp:
- call gimp_file_entry_set_filename() with filename encoding
Windows Installer:
- Reduce the memory requirement when running the installer (has
already been shipped in a 2.8.18 installer-only update)
- Ship an updated libcairo to fix GTK+ UI rendering problems, like
missing palette border/bevel and shadowa under tab labels
macOS DMG:
- Ship the Tango icon theme with the DMG for a complete set of icons
- fix the way mime data is copied into the bundle
- no longer copy Pango modules into the bundle
- prevent a crash caused by drag&drop on OSX by patching the included
GTK+
- ship a patch for gettext to make sure the preferred UI language
will be used
Plug-ins:
- Prevent the Python console from closing by the Escape key
- Help browser does not launch on OS X
- Filter 'Edge Detect/Difference of Gaussians' returns empty image
- only use -xobjective-c for compile commands
- mkgen.pl: fix calls to write_file() routine to write to current
directory
- When printing, the images are composed onto a white background to
prevent printing a black box instead of a transaprent image
- Fix color visison deficiency display filters to apply gamma
correction directly
Updated Translations:
- Catalan
- Czech
- Danish
- Finnish
- French
- German
- Greek
- Hungarian
- Icelandic
- Italian
- Polish
- Portuguese
- Slovak
- Slovenian
- Scottish Gaelic
- Spanish
- Swedish
General:
- Bug fixes
Overview of Changes from GIMP 2.8.16 to GIMP 2.8.18
===================================================
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
......@@ -219,7 +219,7 @@ gimp_dynamics_init (GimpDynamics *dynamics)
private->flow_output =
gimp_dynamics_create_output (dynamics,
"flow-output",
GIMP_DYNAMICS_OUTPUT_RATE);
GIMP_DYNAMICS_OUTPUT_FLOW);
private->size_output =
gimp_dynamics_create_output (dynamics,
......
This diff is collapsed.
......@@ -27,6 +27,7 @@ static const gchar * const authors[] =
"Hendrik Boom",
"Richard Bowers",
"Hans Breuer",
"Ingo Brückl",
"Simon Budig",
"João S. O. Bueno",
"Seth Burgess",
......@@ -69,6 +70,7 @@ static const gchar * const authors[] =
"Tor Lillqvist",
"Mikael Magnusson",
"Luidnel Maignan",
"Thomas Manni",
"Takeshi Matsuyama",
"Téo Mazars",
"Mike Melancon",
......@@ -89,6 +91,7 @@ static const gchar * const authors[] =
"Mircea Purdea",
"Dennis Ranke",
"Martin Renold",
"Kristian Rietveld",
"Gilles Rochefort",
"Marco Rossini",
"Karthikeyan S",
......
......@@ -34,8 +34,6 @@
#include "core/gimplist.h"
#include "core/gimptemplate.h"
#include "pdb/gimppdb.h"
#include "widgets/gimpcolorpanel.h"
#include "widgets/gimpcontainercombobox.h"
#include "widgets/gimpcontainerview.h"
......@@ -293,6 +291,14 @@ prefs_response (GtkWidget *widget,
config_copy = g_object_get_data (G_OBJECT (dialog), "config-copy");
gimp_config_reset (config_copy);
/* don't use the default value if there is no help browser */
if (! gimp_help_browser_is_installed (gimp))
{
g_object_set (config_copy,
"help-browser", GIMP_HELP_BROWSER_WEB_BROWSER,
NULL);
}
}
gtk_widget_destroy (confirm);
......@@ -1033,6 +1039,35 @@ prefs_profile_combo_box_new (Gimp *gimp,
return prefs_profile_combo_add_tooltip (combo, config, property_name);
}
static GtkWidget *
prefs_hint_box_new (const gchar *stock_id,
const gchar *text)
{
GtkWidget *hbox;
GtkWidget *image;
GtkWidget *label;
hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 6);
image = gtk_image_new_from_stock (stock_id, GTK_ICON_SIZE_BUTTON);
gtk_box_pack_start (GTK_BOX (hbox), image, FALSE, FALSE, 0);
gtk_widget_show (image);
label = gtk_label_new (text);
gimp_label_set_attributes (GTK_LABEL (label),
PANGO_ATTR_STYLE, PANGO_STYLE_ITALIC,
-1);
gtk_label_set_line_wrap (GTK_LABEL (label), TRUE);
gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
gtk_box_pack_start (GTK_BOX (hbox), label, TRUE, TRUE, 0);
gtk_widget_show (label);
gtk_widget_show (hbox);
return hbox;
}
static GtkWidget *
prefs_button_add (const gchar *stock_id,
const gchar *label,
......@@ -1792,62 +1827,64 @@ prefs_dialog_new (Gimp *gimp,
_("Show help _buttons"),
GTK_BOX (vbox2));
{
GtkWidget *combo;
GtkWidget *hbox;
GtkWidget *image;
GtkWidget *label;
const gchar *icon;
const gchar *text;
table = prefs_table_new (2, GTK_CONTAINER (vbox2));
combo = prefs_boolean_combo_box_add (object, "user-manual-online",
_("Use the online version"),
_("Use a locally installed copy"),
_("User manual:"),
GTK_TABLE (table), 0, size_group);
gimp_help_set_help_data (combo, NULL, NULL);
if (gimp_help_user_manual_is_installed (gimp))
{
icon = GIMP_STOCK_INFO;
text = _("There's a local installation of the user manual.");
}
else
{
icon = GIMP_STOCK_WARNING;
text = _("The user manual is not installed locally.");
}
hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 6);
gtk_table_attach_defaults (GTK_TABLE (table), hbox, 1, 2, 1, 2);
gtk_widget_show (hbox);
image = gtk_image_new_from_stock (icon, GTK_ICON_SIZE_BUTTON);
gtk_box_pack_start (GTK_BOX (hbox), image, FALSE, FALSE, 0);
gtk_widget_show (image);
label = gtk_label_new (text);
gimp_label_set_attributes (GTK_LABEL (label),
PANGO_ATTR_STYLE, PANGO_STYLE_ITALIC,
-1);
gtk_label_set_line_wrap (GTK_LABEL (label), TRUE);
gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
table = prefs_table_new (2, GTK_CONTAINER (vbox2));
button = prefs_boolean_combo_box_add (object, "user-manual-online",
_("Use the online version"),
_("Use a locally installed copy"),
_("User manual:"),
GTK_TABLE (table), 0, size_group);
gimp_help_set_help_data (button, NULL, NULL);
if (gimp_help_user_manual_is_installed (gimp))
{
hbox = prefs_hint_box_new (GIMP_STOCK_INFO,
_("There's a local installation "
"of the user manual."));
}
else
{
hbox = prefs_hint_box_new (GIMP_STOCK_WARNING,
_("The user manual is not installed "
"locally."));
}
gtk_box_pack_start (GTK_BOX (hbox), label, TRUE, TRUE, 0);
gtk_widget_show (label);
}
gtk_table_attach_defaults (GTK_TABLE (table), hbox, 1, 2, 1, 2);
gtk_widget_show (hbox);
/* Help Browser */
if (gimp_pdb_lookup_procedure (gimp->pdb,
"extension-gimp-help-browser")) {
vbox2 = prefs_frame_new (_("Help Browser"), GTK_CONTAINER (vbox), FALSE);
table = prefs_table_new (1, GTK_CONTAINER (vbox2));
prefs_enum_combo_box_add (object, "help-browser", 0, 0,
_("H_elp browser to use:"),
GTK_TABLE (table), 0, size_group);
}
#ifdef HAVE_WEBKIT
/* If there is no webkit available, assume we are on a platform
* that doesn't use the help browser, so don't bother showing
* the combo.
*/
vbox2 = prefs_frame_new (_("Help Browser"), GTK_CONTAINER (vbox), FALSE);
if (gimp_help_browser_is_installed (gimp))
{
table = prefs_table_new (1, GTK_CONTAINER (vbox2));
button = prefs_enum_combo_box_add (object, "help-browser", 0, 0,
_("H_elp browser to use:"),
GTK_TABLE (table), 0, size_group);
}
else
{
hbox = prefs_hint_box_new (GIMP_STOCK_WARNING,
_("The GIMP help browser doesn't seem to "
"be installed. Using the web browser "
"instead."));
gtk_box_pack_start (GTK_BOX (vbox2), hbox, FALSE, FALSE, 0);
gtk_widget_show (hbox);
g_object_set (config,
"help-browser", GIMP_HELP_BROWSER_WEB_BROWSER,
NULL);
}
#else
g_object_set (config,
"help-browser", GIMP_HELP_BROWSER_WEB_BROWSER,
NULL);
#endif /* HAVE_WEBKIT */
g_object_unref (size_group);
size_group = NULL;
......
This diff is collapsed.
......@@ -320,6 +320,19 @@ gimp_display_shell_canvas_tool_events (GtkWidget *canvas,
GIMP_LOG (TOOL_EVENTS, "event (display %p): %s",
display, gimp_print_event (event));
/* See bug 771444 */
if (shell->pointer_grabbed &&
event->type == GDK_MOTION_NOTIFY)
{
GimpDeviceManager *manager = gimp_devices_get_manager (gimp);
GimpDeviceInfo *info;
info = gimp_device_manager_get_current_device (manager);
if (info->device != event->motion.device)
return FALSE;
}
/* Find out what device the event occurred upon */
if (! gimp->busy &&
! shell->inferior_ignore_mode &&
......
......@@ -547,7 +547,7 @@ gimp_image_window_map (GtkWidget *widget)
* as soon as GTK+ has proper support for this, we will migrate to the
* new-style full screen mode.
*/
#if MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_7
#if defined (MAC_OS_X_VERSION_10_7) && MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_7
ns_window.collectionBehavior |= NSWindowCollectionBehaviorFullScreenAuxiliary;
#else
/* Hard code the define ... */
......
This diff is collapsed.
This diff is collapsed.
#ifndef __GIT_VERSION_H__
#define __GIT_VERSION_H__
#define GIMP_GIT_VERSION "GIMP_2_8_16-114-gcd2bbf7"
#define GIMP_GIT_LAST_COMMIT_YEAR "2016"
#define GIMP_GIT_VERSION "GIMP_2_8_18-91-g91b41bba51"
#define GIMP_GIT_LAST_COMMIT_YEAR "2017"
#endif /* __GIT_VERSION_H__ */
This diff is collapsed.
......@@ -76,9 +76,21 @@
#include "session.h"
#include "splash.h"
#include "themes.h"
#ifdef GDK_WINDOWING_QUARTZ
#import <AppKit/AppKit.h>
#include <gtkosxapplication.h>
/* Forward declare since we are building against old SDKs. */
#if !defined(MAC_OS_X_VERSION_10_12) || \
MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_12
@interface NSWindow(ForwardDeclarations)
+ (void)setAllowsAutomaticWindowTabbing:(BOOL)allow;
@end
#endif
#endif /* GDK_WINDOWING_QUARTZ */
#include "gimp-intl.h"
......@@ -227,6 +239,17 @@ gui_init (Gimp *gimp,
/* disable automatic startup notification */
gtk_window_set_auto_startup_notification (FALSE);
#ifdef GDK_WINDOWING_QUARTZ
/* Before the first window is created (typically the splash window),
* we need to disable automatic tabbing behavior introduced on Sierra.
* This is known to cause all kinds of weird issues (see for instance
* Bugzilla #776294) and needs proper GTK+ support if we would want to
* enable it.
*/
if ([NSWindow respondsToSelector:@selector(setAllowsAutomaticWindowTabbing:)])
[NSWindow setAllowsAutomaticWindowTabbing:NO];
#endif /* GDK_WINDOWING_QUARTZ */
gimp_dnd_init (gimp);
themes_init (gimp);
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
# Makefile.in generated by automake 1.11.6 from Makefile.am.
# Makefile.in generated by automake 1.15 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
# Foundation, Inc.
# Copyright (C) 1994-2014 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
......@@ -15,23 +14,61 @@
@SET_MAKE@
VPATH = @srcdir@
am__make_dryrun = \
{ \
am__dry=no; \
am__is_gnu_make = { \
if test -z '$(MAKELEVEL)'; then \
false; \
elif test -n '$(MAKE_HOST)'; then \
true; \
elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
true; \
else \
false; \
fi; \
}
am__make_running_with_option = \
case $${target_option-} in \
?) ;; \
*) echo "am__make_running_with_option: internal error: invalid" \
"target option '$${target_option-}' specified" >&2; \
exit 1;; \
esac; \
has_opt=no; \
sane_makeflags=$$MAKEFLAGS; \
if $(am__is_gnu_make); then \
sane_makeflags=$$MFLAGS; \
else \
case $$MAKEFLAGS in \
*\\[\ \ ]*) \
echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
| grep '^AM OK$$' >/dev/null || am__dry=yes;; \
*) \
for am__flg in $$MAKEFLAGS; do \
case $$am__flg in \
*=*|--*) ;; \
*n*) am__dry=yes; break;; \
esac; \
done;; \
bs=\\; \
sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
| sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
esac; \
fi; \
skip_next=no; \
strip_trailopt () \
{ \
flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
}; \
for flg in $$sane_makeflags; do \
test $$skip_next = yes && { skip_next=no; continue; }; \
case $$flg in \
*=*|--*) continue;; \
-*I) strip_trailopt 'I'; skip_next=yes;; \
-*I?*) strip_trailopt 'I';; \
-*O) strip_trailopt 'O'; skip_next=yes;; \
-*O?*) strip_trailopt 'O';; \
-*l) strip_trailopt 'l'; skip_next=yes;; \
-*l?*) strip_trailopt 'l';; \
-[dEDm]) skip_next=yes;; \
-[JT]) skip_next=yes;; \
esac; \
case $$flg in \
*$$target_option*) has_opt=yes; break;; \
esac; \
test $$am__dry = yes; \
}
done; \
test $$has_opt = yes
am__make_dryrun = (target_option=n; $(am__make_running_with_option))
am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
pkgdatadir = $(datadir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
......@@ -51,26 +88,38 @@ POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
subdir = app/tests/files
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
$(top_srcdir)/m4macros/alsa.m4 \
am__aclocal_m4_deps = $(top_srcdir)/m4macros/gtk-doc.m4 \
$(top_srcdir)/m4macros/intltool.m4 \
$(top_srcdir)/m4macros/libtool.m4 \
$(top_srcdir)/m4macros/ltoptions.m4 \
$(top_srcdir)/m4macros/ltsugar.m4 \
$(top_srcdir)/m4macros/ltversion.m4 \
$(top_srcdir)/m4macros/lt~obsolete.m4 \
$(top_srcdir)/acinclude.m4 $(top_srcdir)/m4macros/alsa.m4 \
$(top_srcdir)/m4macros/binreloc.m4 \
$(top_srcdir)/m4macros/detectcflags.m4 \
$(top_srcdir)/m4macros/gimpprint.m4 \
$(top_srcdir)/m4macros/pythondev.m4 $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
mkinstalldirs = $(install_sh) -d
CONFIG_HEADER = $(top_builddir)/config.h
CONFIG_CLEAN_FILES =
CONFIG_CLEAN_VPATH_FILES =
AM_V_P = $(am__v_P_@AM_V@)
am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
am__v_P_0 = false
am__v_P_1 = :
AM_V_GEN = $(am__v_GEN_@AM_V@)
am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
am__v_GEN_0 = @echo " GEN " $@;
am__v_GEN_0 = @echo " GEN " $@;
am__v_GEN_1 =
AM_V_at = $(am__v_at_@AM_V@)
am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
am__v_at_0 = @
am__v_at_1 =
SOURCES =
DIST_SOURCES =
am__can_run_installinfo = \
......@@ -78,6 +127,8 @@ am__can_run_installinfo = \
n|no|NO) false;; \
*) (install-info --version) >/dev/null 2>&1;; \
esac
am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
am__DIST_COMMON = $(srcdir)/Makefile.in
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
AA_LIBS = @AA_LIBS@
ACLOCAL = @ACLOCAL@
......@@ -435,7 +486,6 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__confi
echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu app/tests/files/Makefile'; \
$(am__cd) $(top_srcdir) && \
$(AUTOMAKE) --gnu app/tests/files/Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
*config.status*) \
......@@ -459,11 +509,11 @@ mostlyclean-libtool:
clean-libtool: