commit 3d8535b55fdafffd5a46b57ae3779333e7fe3ac6
Author: Michael Natterer <mitch@gimp.org>
Date:   Wed Jun 12 23:17:10 2019 +0200

    configure.ac: bump versions for the 2.10.12 release

 configure.ac | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 9b205f15830025dee9b31b04e14c76fd6116ca17
Author: Michael Natterer <mitch@gimp.org>
Date:   Wed Jun 12 23:16:19 2019 +0200

    NEWS: formatting, typos

 NEWS | 53 +++++++++++++++++++++++++++++------------------------
 1 file changed, 29 insertions(+), 24 deletions(-)

commit 3809645bc59219ab8d756d6e570bb3b05f61a406
Author: Jehan <jehan@girinstud.io>
Date:   Wed Jun 12 23:10:00 2019 +0200

    NEWS: create news section for GIMP 2.10.12.

 NEWS | 116
 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 116 insertions(+)

commit 4938615236cf7813b2c018055b5e1937ec41d2f8
Author: Alexandre Prokoudine <alexandre.prokoudine@gmail.com>
Date:   Wed Jun 12 22:49:38 2019 +0300

    Update Russian translation

 po-plug-ins/ru.po |  566 +++++++++++-----------
 po/ru.po          | 1366
 ++++++++++++++++++++++++++++-------------------------
 2 files changed, 1011 insertions(+), 921 deletions(-)

commit fa87116fe6d2ce37b945c3be2e5508a097477ba7
Author: Alexandre Prokoudine <alexandre.prokoudine@gmail.com>
Date:   Wed Jun 12 22:44:33 2019 +0300

    Offset tool: mark forgotten messages for translation

 app/tools/gimpoffsettool.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit add350f335b8c4ef00eeaded50537317d3a0eb4f
Author: Michael Natterer <mitch@gimp.org>
Date:   Wed Jun 12 21:43:19 2019 +0200

    AUTHORS: regenerated

 AUTHORS | 2 ++
 1 file changed, 2 insertions(+)

commit 4abf2306b359c31f7ad5a6404f2534bec4c67539
Author: Øyvind Kolås <pippin@gimp.org>
Date:   Wed Jun 12 21:32:47 2019 +0200

    build: depend on babl-0.1.66

    (cherry picked from commit b3dcb5aaacbabf3ed4559f524bd60c3486d32334)

 app/sanity.c | 2 +-
 configure.ac | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

commit e70c08cdd01dcae7117f880dfc286e178fe4a262
Author: Michael Natterer <mitch@gimp.org>
Date:   Wed Jun 12 21:06:56 2019 +0200

    app: add missing parameter in test-xcf.c

 app/tests/test-xcf.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit aedee5ef825c95a323d1e64ff0c6cfd9e9027bb6
Author: Kalev Lember <klember@redhat.com>
Date:   Wed Jun 12 15:47:04 2019 +0200

    desktop: Update gimp-data-extras.metainfo with gimp's new appstream ID

    (cherry picked from commit 678634390907e20bb2f9c0c5ce0702fc97e9479d)

 desktop/gimp-data-extras.metainfo.xml.in.in | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 4c8c4c7e96e5d52c708099b208d72fe1e736da44
Author: Jehan <jehan@girinstud.io>
Date:   Wed Jun 12 14:33:49 2019 +0200

    authors.xml: add Oleksii Samorukov and Yoshio Ono.

    (cherry picked from commit 3ebad2253924e7224a2ccc26cbb8c9c77c1921a5)

 authors.xml | 2 ++
 1 file changed, 2 insertions(+)

commit 76f1a02631eb091d6d285f64710efa47f1716e61
Author: Jehan <jehan@girinstud.io>
Date:   Wed Jun 12 12:54:37 2019 +0200

    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 de866d881537a2931197ab4752c0047a5d29f766)

 plug-ins/file-tiff/file-tiff-io.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit b7b275f9088f6ab5187c1610e51987d485c056f1
Author: Anders Jonsson <anders.jonsson@norsjovallen.se>
Date:   Tue Jun 11 20:09:16 2019 +0000

    Update Swedish translation

 po/sv.po | 2224
 +++++++++++++++++++++++++++++++++-----------------------------
 1 file changed, 1192 insertions(+), 1032 deletions(-)

commit 4fe8a76f9b9c8f541080a27d9165e96bb14c4c1f
Author: Anders Jonsson <anders.jonsson@norsjovallen.se>
Date:   Tue Jun 11 19:18:26 2019 +0000

    Update Swedish translation

 po-plug-ins/sv.po | 325
 +++++++++++++++++++++++++++++-------------------------
 1 file changed, 174 insertions(+), 151 deletions(-)

commit e8f7b3575d09d262faf5593db7226dc66dabba74
Author: Anders Jonsson <anders.jonsson@norsjovallen.se>
Date:   Tue Jun 11 19:06:43 2019 +0000

    Update Swedish translation

 po-libgimp/sv.po | 509
 +++++++++++++++++++++++++++----------------------------
 1 file changed, 254 insertions(+), 255 deletions(-)

commit 727b83cbe651f2b9f3b13d7b366944675b25e50e
Author: Michael Natterer <mitch@gimp.org>
Date:   Tue Jun 11 19:30:48 2019 +0200

    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 a9b36245c9e976557e9d6ff29d74aac325a89273)

 tools/gimp-test-clipboard.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

commit bf3ea7539e02cbd61d75fe5f608046bae33cf852
Author: Jehan <jehan@girinstud.io>
Date:   Tue Jun 11 17:29:03 2019 +0200

    desktop: give 2.10.12 release date.

    Let's make the release happen!

    (cherry picked from commit fa6b57cfbd8649a2358ec7238d50057e1668b9d6)

 desktop/org.gimp.GIMP.appdata.xml.in.in | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 0667fd27c62db2f655c6c6892201b6afcc4bdd89
Author: Jehan <jehan@girinstud.io>
Date:   Tue Jun 11 15:33:15 2019 +0200

    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 b090bc521323d6a834c9c1e98d3c5dbd601f7d37)

 plug-ins/file-tiff/file-tiff-io.c   | 10 ++++++++
 plug-ins/file-tiff/file-tiff-load.c | 46
 +++++++++++++++++++++++++++----------
 2 files changed, 44 insertions(+), 12 deletions(-)

commit 6a854e45fa1087a3df461430a494576c44b600f3
Author: Jehan <jehan@girinstud.io>
Date:   Tue Jun 11 02:14:18 2019 +0200

    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 aa1171ada2a85428972a76eae0ce908fd45a841b)

 app/widgets/gimpsearchpopup.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit 33aada6b6fbe05242b5497b8379701671964bfaf
Author: Daniel Mustieles <daniel.mustieles@gmail.com>
Date:   Mon Jun 10 08:18:45 2019 +0000

    Update Spanish translation

 po/es.po | 1737
 +++++++++++++++++++++++++++++++++-----------------------------
 1 file changed, 915 insertions(+), 822 deletions(-)

commit 9c8e1704c4d06adcce3530062395051c79485049
Author: Ell <ell_se@yahoo.com>
Date:   Mon Jun 10 03:51:14 2019 -0400

    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 4a20a75dc32cf47a9aaa85bbd52f145816467c2a)

 app/core/gimpgrouplayer.c | 10 ++++++++++
 1 file changed, 10 insertions(+)

commit 854374b2ced5ab4b1db8e130a5513c5a30657172
Author: Ell <ell_se@yahoo.com>
Date:   Mon Jun 10 03:42:07 2019 -0400

    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 3e5cbb03d904ac59dbeb64d5a6d453c1a829ae90)

 app/core/gimpdrawable.c   | 17 +++++++++++++++++
 app/core/gimpdrawable.h   |  2 ++
 app/core/gimpgrouplayer.c | 25 +++++++++++++++++++++++++
 3 files changed, 44 insertions(+)

commit 1f0abe57cc256f8a0b0a5158e7c44c6fb9af5003
Author: Piotr Drąg <piotrdrag@gmail.com>
Date:   Sun Jun 9 17:26:11 2019 +0200

    Update Polish translation

 po/pl.po | 416
 ++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 211 insertions(+), 205 deletions(-)

commit d66e7dccac59ecc4c8c97fbd4ab1cfd4dd274831
Author: Øyvind Kolås <pippin@gimp.org>
Date:   Sun Jun 9 12:29:30 2019 +0200

    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 8e90468308c7aa8c8760a23e4d754bfb4f87ca52)

 .../layer-modes/gimpoperationlayermode-blend.c     | 297
 ++++++++++++---------
 .../layer-modes/gimpoperationlayermode-blend.h     | 297
 ++++++++++++---------
 .../layer-modes/gimpoperationlayermode.c           |   4 +-
 app/operations/operations-types.h                  |   3 +-
 4 files changed, 334 insertions(+), 267 deletions(-)

commit c897aabcc8e88b1c7ed7eea2b3343c487c2f9cbb
Author: Jehan <jehan@girinstud.io>
Date:   Fri Jun 7 18:18:33 2019 +0200

    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 24ed5870ade6e76ec828a752cf6b2a6d6c043f28)

 plug-ins/common/file-png.c | 100
 ++++++++++++++++++++++++++++++++-------------
 1 file changed, 72 insertions(+), 28 deletions(-)

commit e7cd743b0529a61b2638ca582309dd8d6df6bdee
Author: Jehan <jehan@girinstud.io>
Date:   Fri Jun 7 18:12:58 2019 +0200

    plug-ins: simplify code a bit by removing useless variable.

    (cherry picked from commit 8cd3f5a8536aa29a2280db24777c9a566d5accd6)

 plug-ins/file-webp/file-webp-save.c | 7 -------
 1 file changed, 7 deletions(-)

commit 39672c855958b09d88bf580bfdc82a3290f2c10a
Author: Jehan <jehan@girinstud.io>
Date:   Thu Jun 6 16:16:38 2019 +0200

    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 0461022198624b1bb1fafcd2d886cd015e7faa22)

 plug-ins/file-jpeg/jpeg-save.c | 61
 +++++++++++++++++++++++++-----------------
 1 file changed, 36 insertions(+), 25 deletions(-)

commit bb9571db601930e318b6244cdb7f5bca49c1f44e
Author: Jehan <jehan@girinstud.io>
Date:   Thu Jun 6 16:06:59 2019 +0200

    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 540cfa961171a2f8d26c183ce2291f4c507e9813.

    (cherry picked from commit 26ba915ca554693076324e69f59c071c6f1f1708)

 plug-ins/file-webp/file-webp-dialog.c | 23 +++--------------------
 1 file changed, 3 insertions(+), 20 deletions(-)

commit 5c8860bd49f8919b2da63125c19ebf7995f3e68e
Author: Jehan <jehan@girinstud.io>
Date:   Thu Jun 6 16:01:29 2019 +0200

    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 6712228e5e65ac26b2e245937ab0b21940ae4ca1)

 plug-ins/file-webp/file-webp-save.c | 127
 ++++++++++++++++++++----------------
 1 file changed, 71 insertions(+), 56 deletions(-)

commit 0aad97cc1838cf2cb3734820bd465e7717b9d09e
Author: Jehan <jehan@girinstud.io>
Date:   Thu Jun 6 15:29:07 2019 +0200

    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 96e37dfdaf796fc804bf12e4eab1e32ed27f6ca9)

 plug-ins/file-webp/file-webp-dialog.c |  9 +++++
 plug-ins/file-webp/file-webp-save.c   | 66
 ++++++++++++++++++++---------------
 plug-ins/file-webp/file-webp-save.h   |  1 +
 plug-ins/file-webp/file-webp.c        |  7 ++--
 4 files changed, 51 insertions(+), 32 deletions(-)

commit 1bdac39a9251e68d9cbe0c96cadfcff5f54f0333
Author: Jehan <jehan@girinstud.io>
Date:   Thu Jun 6 14:33:40 2019 +0200

    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 2a1eabc1777c7c25b36b13ae3a48adf8311e6074)

 plug-ins/file-webp/file-webp-save.c | 48
 ++++++++++++++++++++++++-------------
 1 file changed, 31 insertions(+), 17 deletions(-)

commit a11cc8a63d03e0999cd26a185784a8e3782b63b3
Author: Jehan <jehan@girinstud.io>
Date:   Wed Jun 5 17:16:43 2019 +0200

    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 8d9e70011d493e82632e9b1195872274ed4bfdec)

 plug-ins/file-tiff/file-tiff-save.c | 93
 +++++++++++++------------------------
 1 file changed, 32 insertions(+), 61 deletions(-)

commit 7acb6f36abd4034988ab026142885f0a05ed9b14
Author: Ell <ell_se@yahoo.com>
Date:   Fri Jun 7 03:53:23 2019 -0400

    app: indentation fix in gimp:offset

    (cherry picked from commit 8c1567f901af20b7104f34844066b16b54f2cdf4)

 app/operations/gimpoperationoffset.c | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

commit 618b6a62bd0ce7bc276ad20053d050e4037f0c69
Author: Ell <ell_se@yahoo.com>
Date:   Fri Jun 7 03:45:17 2019 -0400

    app: in gimp:offset, fix OFFSET_TRANSPARENT fast-path for chunked
    input

    (cherry picked from commit 533091055ee75ea406f335a99f6d0b397bab1d31)

 app/operations/gimpoperationoffset.c | 41
 ++++++++++++++++++++++--------------
 1 file changed, 25 insertions(+), 16 deletions(-)

commit 257e35dda15ddfc24a8ae6c257acf39997dc29c9
Author: Ell <ell_se@yahoo.com>
Date:   Thu Jun 6 04:47:46 2019 -0400

    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 42d4255262740add4d6228d4f32299f1594c09d5)

 app/operations/gimpoperationoffset.c | 6 ++++--
 app/widgets/gimpaction.c             | 1 +
 po/POTFILES.in                       | 1 +
 3 files changed, 6 insertions(+), 2 deletions(-)

commit 0d7a57d7820667bc2c399310dd9d89dbbc4e5008
Author: Ell <ell_se@yahoo.com>
Date:   Thu Jun 6 02:58:48 2019 -0400

    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 066827e23c4e72a7483061de1ce28da393f4692a)

 app/tools/gimpfiltertool.c    | 23 ++++++++++++--
 app/tools/gimpfiltertool.h    |  1 +
 app/tools/gimpoffsettool.c    | 47 ++++++++++++-----------------
 app/tools/gimpoperationtool.c | 70
 ++++++++++++++++++-------------------------
 4 files changed, 70 insertions(+), 71 deletions(-)

commit 3af7c508ad93c5d6190580e5a993ff49765ea5e1
Author: Ell <ell_se@yahoo.com>
Date:   Thu Jun 6 02:56:23 2019 -0400

    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 428ee0e2ad9327145860787628aebb159a19a9b9)

 app/tools/gimpfiltertool.c | 16 +++++++++++-----
 1 file changed, 11 insertions(+), 5 deletions(-)

commit 175e3ea7d909e2a768854e8c7fcba6e9f08cf9c1
Author: Ell <ell_se@yahoo.com>
Date:   Thu Jun 6 02:20:27 2019 -0400

    app: various fixes/cleanups to last commits

    (cherry picked from commit 30429e30e27f5a82d067550509a023bb221cdd47)

 app/core/gimpdrawable-offset.c       | 17 +++++++++++++++++
 app/operations/gimpoperationoffset.c | 10 ++++++++--
 app/widgets/gimphelp-ids.h           |  1 -
 devel-docs/app/app-sections.txt      |  5 -----
 4 files changed, 25 insertions(+), 8 deletions(-)

commit ca4612cc438d6bb6e8c92248bcc49874af43dec3
Author: Ell <ell_se@yahoo.com>
Date:   Wed Jun 5 18:09:28 2019 -0400

    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 3a4a00c71e2d40d5e1ec2c9cf7ed2eb47e8db16e)

 app/actions/drawable-actions.c               |  10 +-
 app/actions/drawable-commands.c              |  64 ---
 app/actions/drawable-commands.h              |   2 -
 app/actions/filters-actions.c                |   6 +
 app/actions/gimpgeglprocedure.c              |   4 +
 app/dialogs/Makefile.am                      |   2 -
 app/dialogs/dialogs.c                        |   1 +
 app/dialogs/offset-dialog.c                  | 343 ------------
 app/dialogs/offset-dialog.h                  |  38 --
 app/tools/Makefile.am                        |   2 +
 app/tools/gimp-tools.c                       |   4 +-
 app/tools/gimpoffsettool.c                   | 796
 +++++++++++++++++++++++++++
 app/tools/gimpoffsettool.h                   |  63 +++
 app/widgets/gimphelp-ids.h                   |   1 +
 icons/Color/16/gimp-tool-offset.png          | Bin 0 -> 792 bytes
 icons/Color/24/gimp-tool-offset.png          | Bin 0 -> 1140 bytes
 icons/Color/24/gimp-tool-offset.svg          | 293 ++++++++++
 icons/Color/color-scalable.svg               | 266 ++++++++-
 icons/Color/scalable/gimp-tool-offset.svg    | 246 +++++++++
 icons/Symbolic/16/gimp-tool-offset.png       | Bin 0 -> 567 bytes
 icons/Symbolic/24/gimp-tool-offset.png       | Bin 0 -> 723 bytes
 icons/Symbolic/24/gimp-tool-offset.svg       | 161 ++++++
 icons/Symbolic/scalable/gimp-tool-offset.svg | 162 ++++++
 icons/Symbolic/symbolic-scalable.svg         |  70 ++-
 icons/icon-list.mk                           |   4 +
 libgimpwidgets/gimpicons.h                   |   1 +
 menus/image-menu.xml.in                      |   2 +-
 po/POTFILES.in                               |   2 +-
 28 files changed, 2074 insertions(+), 469 deletions(-)

commit 003b138ee6164c91599e869276a4e1533b2ac87a
Author: Ell <ell_se@yahoo.com>
Date:   Wed Jun 5 18:01:18 2019 -0400

    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 5b2f3980bdf1417234f77d4cce46d6957481b6be)

 app/core/gimpdrawable-offset.c | 216
 +++--------------------------------------
 1 file changed, 14 insertions(+), 202 deletions(-)

commit f7a1aec1e9c507fd2a9d64ef2286c0669ed648c7
Author: Ell <ell_se@yahoo.com>
Date:   Wed Jun 5 17:53:16 2019 -0400

    app, libgimpbase: add gimp:offset operation

    Add a new gimp:offset operation, which implements equivalent
    functionality to gimp_drawable_offset(), in preparation for adding
    an interactive offset tool.

    To simplify things, add a GIMP_OFFSET_WRAP_AROUND value to the
    GimpOffsetType enum, to avoid the need for a separate wrap-around
    flag.  This makes the gimp-drawable-offset procedure parameters a
    little superfluous, but whatever.

    (cherry picked from commit 40fefb6076cfe1938dd72d32aaba209ec7360907)

 app/operations/Makefile.am           |   2 +
 app/operations/gimp-operations.c     |   2 +
 app/operations/gimpoperationoffset.c | 480
 +++++++++++++++++++++++++++++++++++
 app/operations/gimpoperationoffset.h |  55 ++++
 libgimpbase/gimpbaseenums.c          |   2 +
 libgimpbase/gimpbaseenums.h          |   4 +-
 pdb/enums.pl                         |   6 +-
 7 files changed, 548 insertions(+), 3 deletions(-)

commit fce4e98097f96c1ccae7c93f5efa980043399de9
Author: Ell <ell_se@yahoo.com>
Date:   Mon Jun 3 12:36:36 2019 -0400

    plug-ins: in file-tiff, don't leak image when not saving layers

    In file-tiff, when not saving layers, avoid duplicating the image
    to create the merged version if it's already been duplicated, and
    make sure to delete the duplicated image otherwise.

    (cherry picked from commit 8831ef2ea099c2224102105a8148c4c0a9687a11)

 plug-ins/file-tiff/file-tiff.c | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

commit 186236ff350e2aafa44e326dc1f6becbdbbbc215
Author: Ell <ell_se@yahoo.com>
Date:   Mon Jun 3 09:55:37 2019 -0400

    app: update drawable when committing Warp tool

    Make sure to update the drawable after committing the Warp tool, if
    high-quality-preview is disabled, and we use a non-nearest sampler.

    Necessary after commit d928a80b7faf48f637315b89eb6107647ff9d05b.

    (cherry picked from commit 2da5cb562d24f18dc4b4140d3111f5a6ea13740c)

 app/tools/gimpwarptool.c | 14 ++++----------
 1 file changed, 4 insertions(+), 10 deletions(-)

commit eae506a9dadda3b56b6c4321b9c54e1dcfc80c90
Author: Marco Ciampa <ciampix@posteo.net>
Date:   Mon Jun 3 11:17:48 2019 +0200

    Updated Italian translation

 po/it.po | 193
 +++++++++++++++++++++++++++++++++++----------------------------
 1 file changed, 108 insertions(+), 85 deletions(-)

commit e905f84a52df21285d2b50ad7de94efb78f5ec42
Author: Michael Natterer <mitch@gimp.org>
Date:   Sun Jun 2 15:08:36 2019 +0200

    Issue #2057 - All tool presets change FG, BG and Pallete color...

    ...even when not supposed to

    Don't use gimp_config_copy() to set the tool options from the ones
    stored in the preset. Instead, add utility function
    tool_manager_copy_tool_options() that only copies properties of
    GimpToolOptions and its subclasses.

    Simply set the tool, copy the tool options' context properties, then
    copy the tool options' own properties and done. Much more obvious and
    works.

    (cherry picked from commit a14834e3366429670295cc98b6b6d130006a1b22)

 app/tools/tool_manager.c | 100
 +++++++++++++++++++++++++----------------------
 1 file changed, 53 insertions(+), 47 deletions(-)

commit 46f94d2c7577671e40928f1a0b9cf1c0177baedc
Author: Michael Natterer <mitch@gimp.org>
Date:   Sun Jun 2 15:04:38 2019 +0200

    app: remove redundant assignment in gimptoolpreset.c

    (cherry picked from commit 8d1c36d9ce2e39aabab0e1dba4801f727bc19da8)

 app/core/gimptoolpreset.c | 1 -
 1 file changed, 1 deletion(-)

commit bf18c3162f80dbdf362f306e3947ea1362d3523b
Author: Piotr Drąg <piotrdrag@gmail.com>
Date:   Sun Jun 2 14:09:26 2019 +0200

    Update Polish translation

 po-plug-ins/pl.po | 253 ++++++++++++++++----------------
 po/pl.po          | 427
 ++++++++++++++++++++++++++++--------------------------
 2 files changed, 354 insertions(+), 326 deletions(-)

commit 645d987e07ec1df3594f43a87a5b1674f05cd02c
Author: Michael Natterer <mitch@gimp.org>
Date:   Sun Jun 2 03:25:49 2019 +0200

    Issue #2957 - Gimp crashes when I attempt to change the icon size

    Simplify GimpDockbook's signal connect/disconnect to
    GimpGuiConfig::size-changed a lot, most likely to a point where some
    connection doesn't get leaked, so this bug is probably fixed.

 app/widgets/gimpdockbook.c | 38 +++++++++++++-------------------------
 1 file changed, 13 insertions(+), 25 deletions(-)

commit 9db555149f35c45c17255bc9086d5f9bcb1ce312
Author: Ell <ell_se@yahoo.com>
Date:   Sat Jun 1 13:18:14 2019 -0400

    app: avoid unnecessarily updating drawable after merging filter

    In gimp_drawable_merge_filter(), add an "update" parameter, which
    specifies whether to update the affected region of the drawable
    after applying the filter.  Avoid updating the drawable when
    commiting a GimpDrawableFilter (and manually update the drawable if
    filter application was cancelled), and when anchoring a floating
    selection, since in both cases the relevant region of the drawable
    has already been updated.

    (cherry picked from commit d928a80b7faf48f637315b89eb6107647ff9d05b)

 app/core/gimpdrawable-filters.c         | 12 ++++++++----
 app/core/gimpdrawable-filters.h         |  3 ++-
 app/core/gimpdrawablefilter.c           |  6 +++++-
 app/core/gimplayer-floating-selection.c |  2 +-
 4 files changed, 16 insertions(+), 7 deletions(-)

commit 99ae9a32da55c1a5cd3426bddd9d2ebcbe78f583
Author: Balázs Úr <balazs@urbalazs.hu>
Date:   Sat Jun 1 16:58:25 2019 +0000

    Update Hungarian translation

 po-plug-ins/hu.po | 234
 +++++++++++++++++++++++++++---------------------------
 1 file changed, 119 insertions(+), 115 deletions(-)

commit a624010931b21fe4d77328df8742d3636530afdb
Author: Michael Natterer <mitch@gimp.org>
Date:   Sat Jun 1 17:37:49 2019 +0200

    Issue #2194 - Action search dialog behaves as a full window...

    ...using a tiling window manager

    Set GimpSearchPopup's type hint to GDK_WINDOW_TYPE_HINT_DIALOG.

    (cherry picked from commit e6364ffa81061a844483e392aaccedf6f5979a31)

 app/widgets/gimpsearchpopup.c | 1 +
 1 file changed, 1 insertion(+)

commit dd3529c0e97947a6f9e667a4b96e1c22099c7e7b
Author: Michael Natterer <mitch@gimp.org>
Date:   Sat Jun 1 16:41:59 2019 +0200

    libgimpwidgets: keep gimpwidgetsenums.h in alphabetical order

    (cherry picked from commit 2f925e72771298938c35d37b17db506c589fa12c)

 libgimpwidgets/gimpwidgetsenums.c | 64
 +++++++++++++++++++--------------------
 libgimpwidgets/gimpwidgetsenums.h | 44 ++++++++++++++-------------
 2 files changed, 55 insertions(+), 53 deletions(-)

commit ef6bb9d4ade2cf6bd9cd5b55e83d4412dc4c0c93
Author: Michael Natterer <mitch@gimp.org>
Date:   Sat Jun 1 14:19:05 2019 +0200

    Issue #2643 - Conversion to grayscale fails with artifacts

    Connect GimpDisplayShell to GimpImage::mode-changed and update its
    cached color transforms. Also get rid of a duplicate conection to
    GimpImage::precision-changed.

    (cherry picked from commit a1aa17943633e5cfd6b09184f0ee4f43b4093c2b)

    No idea why the artifacty never appeared on 2.10, the code was just as
    broken as in master...

 app/display/gimpdisplayshell-handlers.c | 18 +++++++++++++++---
 1 file changed, 15 insertions(+), 3 deletions(-)

commit fe9c1732b962ff1772829130a5849559ce994023
Author: Ell <ell_se@yahoo.com>
Date:   Fri May 31 13:02:51 2019 -0400

    app: add "alpha" propertry to gimp:mask-components

    In gimp:mask-components, add an "alpha" property, which controls
    the masked-in alpha value in case there's no aux buffer.  Set it to
    0 by default, so that gimp:mask-components behaves normally in the
    absence of an aux buffer (as if the aux buffer was empty).  Set it
    to 1 in the image's visible-mask node, to maintain the current
    alpha-component visibility behavior.

    This fixes incorrect results when the output bounding box of a
    drawable filter is smaller than the drawable, which can lead to a
    NULL aux buffer being fed to the filter's gimp:mask-components
    node.

    (cherry picked from commit 6425bf820a6cb2e18dc19d71df28e4246f1f87cc)

 app/core/gimpimage.c                          |  1 +
 app/operations/gimpoperationmaskcomponents.cc | 70
 ++++++++++++++++-----------
 app/operations/gimpoperationmaskcomponents.h  |  4 +-
 3 files changed, 46 insertions(+), 29 deletions(-)

commit e457ddf99354673e9078dc69388f8a8a4265e6a2
Author: Ell <ell_se@yahoo.com>
Date:   Fri May 31 12:59:17 2019 -0400

    Revert "app: avoid NULL output in layer-mode ops"

    On a second thought... nope :)  We'll fix it another way.

    This reverts commit 60947b7a34826657395ca485d334ccb302106e07.

    (cherry picked from commit 3766af9ac9ff3bb595243235c585e07425455c22)

 app/operations/layer-modes/gimpoperationlayermode.c |  7 +------
 app/operations/layer-modes/gimpoperationreplace.c   | 11 ++---------
 2 files changed, 3 insertions(+), 15 deletions(-)

commit 818570d6cc55c052fa1cf4f55b2cefe9d707dd6c
Author: Ell <ell_se@yahoo.com>
Date:   Fri May 31 12:19:21 2019 -0400

    app: avoid NULL output in layer-mode ops

    In GimpOperationLayerMode and GimpOperationReplace, make sure we
    don't return a NULL output buffer, or forward a NULL input buffer,
    but rather create an appropriate empty buffer in this case.  This
    avoids wrong results when the layer-mode op's output is connected
    to the aux input of a subsequent op, as a result of the op behaving
    differently with a NULL aux buffer (in particular, this can happen
    when a drawable filter's output bounding box is smaller than the
    drawable.)

    (cherry picked from commit 8fcac3298c4947fa1535ae11d6e268e6760d6156)

 app/operations/layer-modes/gimpoperationlayermode.c |  7 ++++++-
 app/operations/layer-modes/gimpoperationreplace.c   | 11 +++++++++--
 2 files changed, 15 insertions(+), 3 deletions(-)

commit c8fb30ab3c8df96e43ab123f60b192092fd57885
Author: Michael Natterer <mitch@gimp.org>
Date:   Fri May 31 15:44:07 2019 +0200

    Issue #3057 - Retain last user-chosen ICC profile information...

    ...when generating "TRC variants"

    When creating a new profile with different TRC from an existing
    profile, keep all the original profile's description, model,
    manufacturer and copyright strings around, but prefix them with "GIMP
    from " or similar to indicate that they are different. Also make sure
    we don't prefix strings with GIMP stuff multiple times when profiles
    are generated repeatedly.

    (cherry picked from commit 3cad4aa4c2f33661d68e31fb5a4fdcd7f8063fb2)

 libgimpcolor/gimpcolorprofile.c | 100
 +++++++++++++++++++++++++++++-----------
 1 file changed, 73 insertions(+), 27 deletions(-)

commit 8d05d018209a3ca2a6cd8c2b9cb6894edba6114e
Author: Michael Natterer <mitch@gimp.org>
Date:   Thu May 30 16:44:23 2019 +0200

    app: fix undoing image parasite attach/detach to emit the right
    signals

    Add "gboolean push_undo" parameters to gimp_image_parasite_attach()
    and _detach() and use the API also from undo, instead of implementing
    attaching/removing manually and forgetting about the signals.

    Fixes updating of the image properties color profile page.

    (cherry picked from commit 710cfc1f478a2d9b75b622ee1445972feeb19c9a)

 app/actions/image-commands.c         |  2 +-
 app/core/gimp.c                      |  2 +-
 app/core/gimpimage-color-profile.c   |  6 +++---
 app/core/gimpimage-new.c             |  2 +-
 app/core/gimpimage.c                 | 27 +++++++++++++++------------
 app/core/gimpimage.h                 |  6 ++++--
 app/core/gimpimageundo.c             | 12 ++----------
 app/core/gimpitem.c                  |  2 +-
 app/file-data/file-data-gbr.c        |  2 +-
 app/file-data/file-data-gih.c        |  6 +++---
 app/file-data/file-data-pat.c        |  2 +-
 app/pdb/image-cmds.c                 |  4 ++--
 app/pdb/plug-in-compat-cmds.c        |  4 ++--
 app/widgets/gimpimagecommenteditor.c |  4 ++--
 app/xcf/xcf-load.c                   |  2 +-
 pdb/groups/image.pdb                 |  4 ++--
 pdb/groups/plug_in_compat.pdb        |  4 ++--
 17 files changed, 44 insertions(+), 47 deletions(-)

commit 29ef3742280eb197765b6c481aeb571b305c21cc
Author: Michael Natterer <mitch@gimp.org>
Date:   Thu May 30 16:07:57 2019 +0200

    app: make sure builtin profiles *really* don't get attached to images

    gimp_image_parasite_attach(): when we detected that a builtin profile
    is about to be attached, actually bail out after removing the old
    profile, instead of continuing to attaching the builtin profile
    anyway. Gah...

    (cherry picked from commit 07ffef38c360597a45de36db0fba137e39cee05a)

 app/core/gimpimage.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

commit 20b47618d01cd9097cfa792cd7987fdb07e21bc1
Author: Michael Natterer <mitch@gimp.org>
Date:   Thu May 30 11:47:16 2019 +0200

    app: use the DEFAULT_USE_PATTERN define instead of TRUE in GimpPreset

    (cherry picked from commit e7307194cffb27a79418bc43dcad2fbb17f85bd9)

 app/core/gimptoolpreset.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 0c4c1f1a8cc3b0500b80f32fccbf17fdf2574b7e
Author: Ell <ell_se@yahoo.com>
