Commit Graph

42810 Commits

Author SHA1 Message Date
a65042aebf Issue #3512 - feather selection doesn't work at edges of images
Add a "gboolean edge_lock" parameter to GimpChannel::feather() and a
"Selected areas continue outside the image" toggle to the "Feather
Selection" dialog, just like they exist for shrink selection and
border selection. At the end, convert the boolean to the right abyss
policy for gegl:gaussian-blur.

(cherry picked from commit aace6b179b)
2019-06-16 16:55:03 +02:00
ddb704634e Update Polish translation 2019-06-16 13:36:56 +02:00
c71a146220 Installer: forgot about .xcf extension 2019-06-16 09:18:38 +02:00
e8ac2ed19b Installer: minor fixes 2019-06-16 00:28:10 +02:00
fa1d71f714 Installer: ported install script to Inno Setup 6, add per-user install support
Rewrote file association handling to work both for all users and per-user
2019-06-15 23:55:44 +02:00
8623119e7a Update French translation 2019-06-15 13:30:11 +00:00
538156f715 Update French translation 2019-06-15 13:16:04 +00:00
ad7434bb48 Installer: install 64-bit Python on 64-bit Windows 2019-06-14 20:27:11 +02:00
cd8192ad5b Installer: changes for 2.10.12 2019-06-14 08:23:36 +02:00
f17e3b157d Remove <U+FEFF> character before shebang header, OSX is very strict on that 2019-06-13 14:45:15 +02:00
73a0ad7c31 configure.ac: post-release version bump to 2.10.13 2019-06-12 23:37:45 +02:00
3d8535b55f configure.ac: bump versions for the 2.10.12 release 2019-06-12 23:17:10 +02:00
9b205f1583 NEWS: formatting, typos 2019-06-12 23:16:19 +02:00
3809645bc5 NEWS: create news section for GIMP 2.10.12. 2019-06-12 23:10:00 +02:00
4938615236 Update Russian translation 2019-06-12 22:49:57 +03:00
fa87116fe6 Offset tool: mark forgotten messages for translation 2019-06-12 22:49:57 +03:00
add350f335 AUTHORS: regenerated 2019-06-12 21:43:19 +02:00
4abf2306b3 build: depend on babl-0.1.66
(cherry picked from commit b3dcb5aaac)
2019-06-12 21:36:44 +02:00
e70c08cdd0 app: add missing parameter in test-xcf.c 2019-06-12 21:06:56 +02:00
aedee5ef82 desktop: Update gimp-data-extras.metainfo with gimp's new appstream ID
(cherry picked from commit 6786343909)
2019-06-12 17:25:06 +02:00
4c8c4c7e96 authors.xml: add Oleksii Samorukov and Yoshio Ono.
(cherry picked from commit 3ebad22539)
2019-06-12 17:23:51 +02:00
76f1a02631 plug-ins: get rid of compilation warning.
Note that I am using twice TIFFErrorHandler type. This is because
TIFFWarningHandler does not exist, despite what the docs says and
upstream code actually uses twice the same handler type.

(cherry picked from commit de866d8815)
2019-06-12 17:23:51 +02:00
b7b275f908 Update Swedish translation 2019-06-11 20:09:16 +00:00
4fe8a76f9b Update Swedish translation 2019-06-11 19:18:26 +00:00
e8f7b3575d Update Swedish translation 2019-06-11 19:06:43 +00:00
727b83cbe6 tools: fix windows file handling in gimp-test-clipboard.c
Use g_open() for proper filename encoding and _O_BINARY to avoid line
ending conversions.

(cherry picked from commit a9b36245c9)
2019-06-11 19:33:10 +02:00
bf3ea7539e desktop: give 2.10.12 release date.
Let's make the release happen!

(cherry picked from commit fa6b57cfbd)
2019-06-11 17:33:20 +02:00
0667fd27c6 Issue #3493: GIMP changes R-channel, when it should not.
Our TIFF loading code was not taking into account the case when extra
channels were stored in the TIFF file while ExtraSamples field is not
set. Yet as a side effect of a later channel count, we were setting
`alpha` to TRUE while `save_transp_pixels` was left uninitialized (hence
undefined behavior).

For now let's make sure we have no undefined behavior. When the
ExtraSamples field is missing and at least one extra channel is stored,
we will consider the first extra channel as non-premultiplied alpha
(this is also what we were doing when ExtraSamples was set to
"Unspecified data" and apparently according to Massimo, it would be a
common behavior in other software).

Note that it is an improvement from previous code (no undefined
behaviour anymore, instead we handle explicitly the TIFF error). Yet
this is not perfect yet. Ideally we should pop-up a dialog asking what
to do with this extra channel: either open as a channel (no alpha), or
as premultiplied or non-premultiplied alpha.

(cherry picked from commit b090bc5213)
2019-06-11 15:50:48 +02:00
6a854e45fa Issue #2194: Action search dialog behaves as a full window using a...
... tiling window manager.
Completing commit e6364ffa81 by additionally making sure the search
dialog is non-modal. Otherwise it prevents positionning it wherever we
want and it stays in the center, potentially hiding the canvas and
darkening the main window.

(cherry picked from commit aa1171ada2)
2019-06-11 02:23:07 +02:00
33aada6b6f Update Spanish translation 2019-06-10 08:18:45 +00:00
Ell
9c8e1704c4 Issue #3484 - While moving a nested layer group, some area isn't updated
In gimp_group_layer_translate(), when translating a nested group
layer, call gimp_drawable_update_all() to update the child-layers'
original area *before* updating the group's offset, at which point
the group parent's size is updated, causing subsequent area-updates
during translation to be clipped to the parent's new bounds,
preventing the original areas from being properly cleared.

(cherry picked from commit 4a20a75dc3)
2019-06-10 03:55:44 -04:00
Ell
854374b2ce app: add gimp_drawable_update_all()
Add a new GimpDrawable::update_all() virtual function, and a
corresponding gimp_drawable_update_all() function, which updates
the full contents of the drawable.  Unlike calling
`gimp_drawable_update (drawable, 0, 0, -1, -1)`, which updates the
entire drawable area, gimp_drawable_update_all() only updates the
area that has actual content.  While the default implentation does
simply update the entire drawable area, GimpGroupLayer overrides
this function to recursively update its child layers, rather than
the its entire area.

(cherry picked from commit 3e5cbb03d9)
2019-06-10 03:55:43 -04:00
1f0abe57cc Update Polish translation 2019-06-09 17:26:11 +02:00
d66e7dccac app: add GeglOperation *operation argument to GimpLayerModeBlendFunc
Some blend funcs depend on constants from the specifc color space we are
operating in and needs the space or operation propagated to the worker function
of the operation as discovered in issue #3451.

This commit propagates the operation, leaving the specific blend functions
needing it to call gegl_operation_get_source_space or similar without needing
that overhead for the rest.

(cherry picked from commit 8e90468308)
2019-06-09 12:48:59 +02:00
c897aabcc8 plug-ins: PNG export TRC chosen similarly to TIFF.
While we tend to default to sRGB for 8-bit max formats (such as JPEG or
WebP) when no explicitly-assigned profile was set, there is no need to
do so for PNG too. Indeed since we have the ability to export 16-bit
PNG, let's consider this is ok to export 16-bit linear data when writing
GIMP's default linear profile.

Moreover let's follow the profile's (fallback to storage's) TRC also
when exporting to a specific precision (as chosen manually in the
dialog), not only when sticking to "Automatic", unless we are downsizing
a high bit depth work image to 8-bit without a manually assigned profile
(the only case we forcefully export as sRGB data, hence convert the
profile if linear storage).

(cherry picked from commit 24ed5870ad)
2019-06-07 19:09:00 +02:00
e7cd743b05 plug-ins: simplify code a bit by removing useless variable.
(cherry picked from commit 8cd3f5a853)
2019-06-07 19:06:40 +02:00
39672c8559 plug-ins: add the 8-bit linear with no assigned profile exception...
... in JPEG export.
Same as the WebP export, which is quite similar (8-bit max format), when
no profile was explicitly set, we want to convert any data from storage
format to non-linear (unlike when exporting high bit depth formats, such
as TIFF).
We only make an exception for 8-bit linear. This commit adds this
exception.

(cherry picked from commit 0461022198)
2019-06-07 19:05:23 +02:00
bb9571db60 plug-ins: remove the "Advanced Options" expander in WebP export dialog.
Similarly to other export dialogs, we don't consider anymore metadata or
profile writing as being advanced options. Since these were the only
options shown in our current WebP export dialog, I removed the expander
altogether and moved everything out.

See also commit 540cfa9611.

(cherry picked from commit 26ba915ca5)
2019-06-07 19:02:04 +02:00
5c8860bd49 plug-ins: fix profile writing in save_animation() in WebP export.
Profile and output linearity decision was doubled as save_layer() and
save_animation() and I realize that I forgot to update the
save_animation() one in earlier commits.

To avoid code copy-paste and divergence, I added an internal
webp_decide_output() function which I use in both aforementionned calls.

(cherry picked from commit 6712228e5e)
2019-06-07 19:01:56 +02:00
0aad97cc18 plug-ins: add a "Save color profile" checkbox in WebP export.
Unlike most other formats, it didn't have one yet!

(cherry picked from commit 96e37dfdaf)
2019-06-07 19:01:49 +02:00
1bdac39a92 plug-ins: improve decision on exported data format in Webp.
Same as other formats, we make sure that an explicitly set profile TRC
is always followed. When no profile is set, we always export as sRGB
when there is precision downsizing to avoid shadow posterization, since
WebP stores 8-bit max per channel (as far as I know, or at least as far
as we implemented it in our plug-in).
We only take the storage format into account when it is 8-bit linear
with profile export. In such case, we avoid conversion from 8-bit linear
to 8-bit sRGB.

This is different to TIFF export for instance, where we fallback on
following storage format TRC as we are able to export all sort of
precisions, hence with minimum quality loss.

(cherry picked from commit 2a1eabc177)
2019-06-07 19:01:34 +02:00
a11cc8a63d plug-ins: improve decision of exported data format in TIFF export.
Same as we did for PNG and JPEG, we want to always export data with the
TRC of a profile manually assigned, and in particular NOT the curve of
the storage in GIMP (i.e. you may work on 32-bit linear, yet if you
assigned a sRGB TRC profile, this is what you should export). The
storage format will only dictate the exported data TRC when writing out
the default profile (i.e. no explicit profile assignement).
As a last case, when no profile is saved, we always export as sRGB.

As for the export precision, we always follow the storage one's, except
sometimes for 8-bit images. We promote 8-bit images to 16-bit if and
only if the storage does not match the export data linearity, to avoid
too much quality loss during format conversion.

(cherry picked from commit 8d9e70011d)
2019-06-07 18:57:40 +02:00
Ell
7acb6f36ab app: indentation fix in gimp:offset
(cherry picked from commit 8c1567f901)
2019-06-07 03:54:39 -04:00
Ell
618b6a62bd app: in gimp:offset, fix OFFSET_TRANSPARENT fast-path for chunked input
(cherry picked from commit 533091055e)
2019-06-07 03:49:49 -04:00
Ell
257e35dda1 app: avoid duplicate offset actions
Blacklist the "tools-offset" action in the GUI, and only keep
"filters-offset", to avoid duplication.  Update gimp:offset's
description, so that "filters-offset" gets a proper tool-tip.

(cherry picked from commit 42d4255262)
2019-06-06 04:52:32 -04:00
Ell
0d7a57d782 app: add GimpFilterTool::region_changed() virtual function
Add a new GimpFilterTool::region_changed() virtual function, which
gets called whenever the filter region changes, either due to a
change to the tool's "region" option, or a change to the image
mask.

Override GimpFilterTool::region_changed() in GimpOperationTool and
GimpOffsetTool, instead of listening to a change to the "region"
option in GimpTool::options_notify(), so that the tools are
properly updated when the image mask changes.

(cherry picked from commit 066827e23c)
2019-06-06 03:15:10 -04:00
Ell
3af7c508ad app: in gimp_filter_tool_get_drawable_area(), don't return empty area
In gimp_filter_tool_get_drawable_area(), when the image mask
doesn't intersect the drawable, return a minimal area, instead of
an empty/invalid area.

(cherry picked from commit 428ee0e2ad)
2019-06-06 03:10:04 -04:00
Ell
175e3ea7d9 app: various fixes/cleanups to last commits
(cherry picked from commit 30429e30e2)
2019-06-06 03:10:03 -04:00
Ell
ca4612cc43 Issue #40 - Layer offset tool
Add a new Offset filter tool, as a front-end to gimp:offset.  The
tool replaces, and provides the same interface as, the drawable-
offset dialog, while also providing live preview and on-canvas
interaction.

Note that we don't simply use a custom propgui constructor for
gimp:offset, since we need a little more control.

(cherry picked from commit 3a4a00c71e)
2019-06-05 19:10:52 -04:00
Ell
003b138ee6 app: implement gimp_drawable_offset() in terms of gimp:offset
Implement gimp_drawable_offset() in terms of gimp:offset, added in
the previous commit.  Other than avoiding duplication, this also
allows gimp_drawable_offset() to respect the current selection and
component mask (see issue #39.)

(cherry picked from commit 5b2f3980bd)
2019-06-05 19:10:51 -04:00