commit 596f8557499a9b531160b350547874aa66270d64
Author: Michael Natterer <mitch@gimp.org>
Date:   Sun Apr 7 18:30:13 2019 +0200

    configure.ac: bump versions for the 2.10.10 release

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

commit bdb2584b634a77d1b2cd77b0590e220413c80157
Author: Michael Natterer <mitch@gimp.org>
Date:   Sun Apr 7 14:22:12 2019 +0200

    etc, docs: regenerate default gimprc and its manpage

 docs/gimprc.5.in | 24 +++++++++++++++++++++---
 etc/gimprc.in    | 15 ++++++++++++---
 2 files changed, 33 insertions(+), 6 deletions(-)

commit 896a7b5a122a6226fb85fcde05d0fbb45137a325
Author: Michael Natterer <mitch@gimp.org>
Date:   Sun Apr 7 13:36:45 2019 +0200

    NEWS: some fixes

 NEWS | 9 ++++-----
 1 file changed, 4 insertions(+), 5 deletions(-)

commit 6ec62f2d17f848e7896c1edf7e29bcfa16de57e4
Author: Jehan <jehan@girinstud.io>
Date:   Sat Apr 6 12:32:39 2019 +0200

    desktop: prepare the GIMP 2.10.10 release.

    Hopefully it will happen! :-)

    (cherry picked from commit e0b958b22cdf08722461369dc585b8ca2b03ab9c)

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

commit 054da8591121d4da70822afbd5286fd759f3e8bc
Author: Jehan <jehan@girinstud.io>
Date:   Sat Apr 6 11:23:50 2019 +0200

    po: always end the "Keywords" list with a semicolon!

    It is written in a translator comment and is important because
    it breaks
    some automatic validation tools along the way to packaging. Thanks for
    following the translation comments! :-)

 po/mr.po | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit ce2e7420a89ca39fc90fe384748ed079cf498b74
Author: Ell <ell_se@yahoo.com>
Date:   Sat Apr 6 05:19:33 2019 -0400

    Issue #2665 - Settings changes in Rectangle and Ellipse selection
    don't "stick"

    In GimpRectangleSelectTool, update the selection upon changes to
    the "antialias", "feather", "feather-radius", "round-corners", and
    "corner-radius" options, so that they take effect immediately,
    without having to change the selection bounds.

    (cherry picked from commit 2da6cefa3f5e301a0b6cc7674f377ecec0725eb7)

 app/tools/gimprectangleselecttool.c | 134
 ++++++++++++++++++++++--------------
 1 file changed, 81 insertions(+), 53 deletions(-)

commit 91642674cea929e8a9643361504e00256073306a
Author: Christian Kirbach <Christian.Kirbach@gmail.com>
Date:   Thu Apr 4 23:20:26 2019 +0000

    Update German translation

 po/de.po | 4470
 ++++++++++++++++++++++++++++++++++++--------------------------
 1 file changed, 2582 insertions(+), 1888 deletions(-)

commit abc2726c067c656d65625a50798796e0e674217a
Author: Marco Ciampa <ciampix@posteo.net>
Date:   Thu Apr 4 16:12:59 2019 +0200

    Updated Italian translation

 po-python/it.po | 363
 +++++++++++++++++++++++++++++++++++++++++++++++++++-----
 1 file changed, 331 insertions(+), 32 deletions(-)

commit 69b056a0b5b99e7e650f1855f9cf464901b9f8c0
Author: Jehan <jehan@girinstud.io>
Date:   Mon Apr 1 17:04:56 2019 +0200

    INSTALL: update info about libmypaint.

    Since recently, one can also install the new "libmypaint-v1"
    branch. It
    is not so different, but has several fixes. Among them, it fixes
    building with recent automake.

    (cherry picked from commit 1028345b7b298ebb9be1af7d65b94d9b60ed9294)

 INSTALL.in | 3 +++
 1 file changed, 3 insertions(+)

commit 027e5ed5b0cb63cebe389fb523493db6654f17fe
Author: Marco Ciampa <ciampix@posteo.net>
Date:   Mon Apr 1 12:57:48 2019 +0200

    Updated Italian translation

 po/it.po | 269
 +++++++++++++++++++++++++++++++++------------------------------
 1 file changed, 143 insertions(+), 126 deletions(-)

commit 8c7e2a9e03ffb3ebbf385350231a81eee59b26cd
Author: Ell <ell_se@yahoo.com>
Date:   Sun Mar 31 14:54:30 2019 -0400

    Issue #3025 - "File/New" doesn't honor "precision" choice ...

    ... for "Edit/Preferences/Default Image"

    In GimpTemplateEditor, don't use gimp_prop_enum_combo_box_new() for
    the "Precision" combo-box, and rather synchronize the combo-box and
    the template manually, since we only want to update the "Gamma"
    combo-box according to the precision when it changes through the
    UI, and not when the template's precision otherwise changes.

    This fixes an issue where we'd always set the default gamma value
    when resetting the editor's template, overwriting the template's
    original gamma value.

    (cherry picked from commit 033082dd9a0850a86c1b0b76187afd4725df4e9f)

 app/widgets/gimptemplateeditor.c | 47
 +++++++++++++++++++++++++++++++++++-----
 1 file changed, 41 insertions(+), 6 deletions(-)

commit 7e26d664642853d66f7cff2a772c25b1ee5fbf2b
Author: Rūdolfs Mazurs <rudolfs.mazurs@gmail.com>
Date:   Sun Mar 31 13:28:24 2019 +0000

    Update Latvian translation

 po-python/lv.po | 409
 ++++++++++++++++++++++++++++++++++++++++++++++++++------
 1 file changed, 369 insertions(+), 40 deletions(-)

commit 3c674c937cf53dfd65cdef6f10cce08ac568c963
Author: Rūdolfs Mazurs <rudolfs.mazurs@gmail.com>
Date:   Sun Mar 31 12:24:10 2019 +0000

    Update Latvian translation

 po/lv.po | 5678
 ++++++++++++++++++++++++++++++++++++--------------------------
 1 file changed, 3313 insertions(+), 2365 deletions(-)

commit 402c1f1f7bb9defb870cdc12db5942d14bfc635c
Author: Rūdolfs Mazurs <rudolfs.mazurs@gmail.com>
Date:   Sun Mar 31 09:40:41 2019 +0000

    Update Latvian translation

 po-plug-ins/lv.po | 1474
 +++++++++++++++++++++++++++++------------------------
 1 file changed, 806 insertions(+), 668 deletions(-)

commit 4204dab5f690a360b8b60b55051431bf231bae44
Author: Rūdolfs Mazurs <rudolfs.mazurs@gmail.com>
Date:   Sun Mar 31 09:25:15 2019 +0000

    Update Latvian translation

 po-libgimp/lv.po | 453
 +++++++++++++++++++++++++++----------------------------
 1 file changed, 223 insertions(+), 230 deletions(-)

commit f810d59928f2bd6cf3a94850ee9ee2581b808b02
Author: Rūdolfs Mazurs <rudolfs.mazurs@gmail.com>
Date:   Sun Mar 31 09:21:39 2019 +0000

    Update Latvian translation

 po-script-fu/lv.po | 300
 +++++++++++++++++++++++++++++------------------------
 1 file changed, 165 insertions(+), 135 deletions(-)

commit 522e497457d35816cb13468c5a27e81b9309d4fb
Author: Ell <ell_se@yahoo.com>
Date:   Sun Mar 31 04:59:23 2019 -0400

    app: in GimpChunkIterator, avoid preparing rect before merging

    In GimpChunkIterator, avoid preparing the current rect before
    merging it back to the iterator's region, to save some work.

    Additionally, strengthen the iterator's invariants and simplify
    code.

    (cherry picked from commit c95502266ada77d9f1ab43631581dd4c393cd3f0)

 app/core/gimpchunkiterator.c | 51
 ++++++++++++++++++++++----------------------
 1 file changed, 25 insertions(+), 26 deletions(-)

commit 1cdd32955e87f27a8f3041f42e734ba3515966f2
Author: Ell <ell_se@yahoo.com>
Date:   Sat Mar 30 19:24:00 2019 -0400

    app: fix image-window UI-manager update while a projection is being
    rendered

    Set the priority of the image window's UI-manager update idle
    slightly higher than the projection idle priority, so that the
    image actions are updated during projection rendering.

    (cherry picked from commit 50aaeef6a0fed11b8c291fd956c0ca36f3d9eaa2)

 app/display/gimpimagewindow.c | 8 ++++++--
 app/gimp-priorities.h         | 3 ++-
 2 files changed, 8 insertions(+), 3 deletions(-)

commit 191c9812f39d8035eaf0570c5cc51e382b2dc583
Author: Ell <ell_se@yahoo.com>
Date:   Sat Mar 30 16:36:16 2019 -0400

    app: small fix to GimpChunkIterator

    (cherry picked from commit d182c41f8f19da2f9f13176c4adbe33d65ff2113)

 app/core/gimpchunkiterator.c | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

commit c5d34b249605e5d1269f0ef8044e4de7f994af8e
Author: Ell <ell_se@yahoo.com>
Date:   Sat Mar 30 12:01:06 2019 -0400

    app: in gimp:fill-source, align result to tile grid

    In gimp:fill-source, align the result rect to the drawable buffer's
    tile grid, so that all tiles are COWed for solid-color fills.

    (cherry picked from commit fa31854a66f5317867a8dbe2137969444ad59c93)

 app/operations/gimpoperationfillsource.c | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

commit 9c9467e076a2c24b8fa536de5c5890a7f39abb2a
Author: Ell <ell_se@yahoo.com>
Date:   Sat Mar 30 11:11:10 2019 -0400

    Issue #2090 - Crash when using transform tools

    In GimpTransformGridTool, avoid producing non-finite coordinate
    and angle values.  In particular, this fixes a crash in
    gimp_transform_grid_tool_get_cursor() as a result of a NaN angle
    value being converted to a negative integer, hitting an assert.

    (cherry picked from commit be7906c05cc0437428d157cdd2db2cf208670d7c)

 app/display/gimptooltransformgrid.c | 26 ++++++++++++++++++--------
 1 file changed, 18 insertions(+), 8 deletions(-)

commit 4d2a5d1a945685bc8a8b4256cd93cee9554e4d14
Author: Ell <ell_se@yahoo.com>
Date:   Sat Mar 30 10:01:03 2019 -0400

    app: more responsiveness improvements to GimpChunkIterator

    Improve GimpChunkIterator's responsiveness to changes in processing
    speed.

    (cherry picked from commit 91f4c809d8c0ae7366f10fd1d182923370feae4b)

 app/core/gimpchunkiterator.c | 60
 ++++++++++++++++++++++++++++++++++----------
 1 file changed, 47 insertions(+), 13 deletions(-)

commit 1096bdfd5312dd0d9772765a5b6e8612a0b7aadd
Author: Piotr Drąg <piotrdrag@gmail.com>
Date:   Sat Mar 30 14:34:50 2019 +0100

    Update Polish translation

 po/pl.po | 187
 +++++++++++++++++++++++++++++++++------------------------------
 1 file changed, 97 insertions(+), 90 deletions(-)

commit f0b5080f83faa81cb9afb954eaf1e3d6441b7399
Author: Ell <ell_se@yahoo.com>
Date:   Fri Mar 29 04:47:24 2019 -0400

    app: don't invalidate viewable preview when thawed unless explicitly
    requested

    In GimpViewable, don't invalidate the preview when thawed, unless
    there was an explicit call to gimp_viewable_invalidate_preview()
    while it was frozen.  This avoids invalidating the previews of an
    invisible drawable's ancestors when the drawable's preview is
    frozen/thawed.

    (cherry picked from commit 9dabad4cb9d1cfc14cd07a6ac7c739033acdc622)

 app/core/gimpviewable.c | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

commit c8ea2f45f9fe50ac2211b7bac4e24790720ab43a
Author: Ell <ell_se@yahoo.com>
Date:   Thu Mar 28 16:52:08 2019 -0400

    app: avoid risky alloca() in gimp_brush_save()

    Replace an arbitrarily-sized g_alloca() with g_malloc() in
    gimp_brush_save().

    (cherry picked from commit 24ed9dbdf5414864103e3433ffd0c58995696ecb)

 app/core/gimpbrush-save.c | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

commit c347f8770c689a4fa38e62a5d1edb6cddbb0fb7b
Author: Ell <ell_se@yahoo.com>
Date:   Thu Mar 28 12:35:32 2019 -0400

    app: avoid freezing image preview if drawable is not attached

    When freezing/thawing a top-level drawable's preview, only freeze/
    thaw the image preview if the drawable is attached.

    (cherry picked from commit de36e33347815e78aee34f7fcd5cb3e22414af03)

 app/core/gimpdrawable.c  | 10 ++++++----
 app/core/gimplayermask.c | 10 ++++++----
 2 files changed, 12 insertions(+), 8 deletions(-)

commit b9ca245736968d1e2bf00ea0631ed963513a5a35
Author: Ell <ell_se@yahoo.com>
Date:   Thu Mar 28 12:03:49 2019 -0400

    app: when freezing a drawable's preview, freeze ancestors' previews

    Add GimpViewable::preview_{freeze,thaw}() virtual functions, which
    get called when the viewable's preview is frozen/thawed.  Implement
    the functions in GimpDrawable, recursively freezing the parent
    drawable's preview (or the image's preview, for top-level
    drawables) while the drawable's preview is frozen.  For layer
    masks, freeze the associated layer's parent.

    This avoids updating layer-group/image previews while painting on,
    or applying a filter to, a descendant layer.  This both reduces
    lag, and fixes a discrepancy between the layer's preview, which
    isn't updated, and its parents' previews.

    (cherry picked from commit e2ea2e4a8283d655453dee3bf270ce03f1f22b81)

 app/core/gimpdrawable.c  | 26 ++++++++++++++++++++++++++
 app/core/gimplayermask.c | 40 ++++++++++++++++++++++++++++++++++++++++
 app/core/gimpviewable.c  | 13 ++++++++++++-
 app/core/gimpviewable.h  |  3 +++
 4 files changed, 81 insertions(+), 1 deletion(-)

commit 273a0c4395ed04ea11277485c8e90b39d224f0ef
Author: Jehan <jehan@girinstud.io>
Date:   Thu Mar 28 14:06:17 2019 +0100

    app: change antialias feature in fill by line art into Feather Edges.

    This was actually more of a feathering feature I added earlier, and we
    already have a function for that: gimp_gegl_apply_feather(). This is
    using a gaussian blur, just as what I was doing anyway. This
    commit also
    adds the "Feather Radius" scale, similar to other tools with the
    "Feather Edges". So that makes it consistent (and more useful as
    you can
    adapt to your needs).

    (cherry picked from commit d821b088e2e40c46498aca13c938700bf48e5521)

 app/core/gimpdrawable-bucket-fill.c | 36 +++++++------------------
 app/core/gimpfilloptions.c          | 53
 +++++++++++++++++++++++++++++++++++++
 app/core/gimpfilloptions.h          |  6 +++++
 app/tools/gimpbucketfilloptions.c   | 40 +++++++++++++++++++++++++---
 app/tools/gimpbucketfilloptions.h   |  2 ++
 app/tools/gimpbucketfilltool.c      |  4 +++
 6 files changed, 110 insertions(+), 31 deletions(-)

commit aa7fc3f08d81be9007e31afb461cb9d938f1b5c0
Author: Ell <ell_se@yahoo.com>
Date:   Wed Mar 27 18:07:04 2019 -0400

    app: add GTK+ patch allowing controlling combo-box popup style

    Add a GTK+ patch providing a "popup-style" combo-box style
    property, allowing to manually control the combo-box popup-style.
    Use the LIST style for all combo-boxes in our system-wide gtkrc
    file; this only has effect if GTK+ was built with the above patch.

 build/patches/gtk+-2.24-gimp-issue-2828-0002.patch | 766
 +++++++++++++++++++++
 etc/gtkrc                                          |  13 +
 2 files changed, 779 insertions(+)

commit 1749fd995c5ab3e6059775dc27890e5646c10d12
Author: Ell <ell_se@yahoo.com>
Date:   Wed Mar 27 17:52:45 2019 -0400

    app: add GTK+ patch to fix list-style combo-box popup width

    Add a GTK+ patch that makes sure that list-style combo-box popups
    are never narrower than their content.  This fixes the popup width
    when using the System theme on Windows, for combo-boxes whose popup
    cell-layout is wider than the combo-box cell-layout.  It is also
    required for the next commit.

 build/patches/gtk+-2.24-gimp-issue-2828-0001.patch | 73
 ++++++++++++++++++++++
 themes/System/gtkrc                                |  1 -
 2 files changed, 73 insertions(+), 1 deletion(-)

commit 7edbad3144a0a68210ebcc3f2947d916072172ba
Author: Ell <ell_se@yahoo.com>
Date:   Wed Mar 27 18:01:34 2019 -0400

    app: include system gtkrc file in themerc

    Include the system-wide gtkrc file, in addition to the user-
    specific gtkrc file, in the generated themerc file, instead of
    copying the former into the latter when creating the user's
    gimpdir.  This allows us to modify the system-wide gtkrc file, and
    having the changes take effect in existing installations.

 app/core/gimp-user-install.c |   1 -
 app/gui/themes.c             | 100
 +++++++++++++++++++++++++++----------------
 2 files changed, 63 insertions(+), 38 deletions(-)

commit f19ebb6269267d86b6251306eb8a1308c17915cf
Author: Ell <ell_se@yahoo.com>
Date:   Wed Mar 27 16:50:57 2019 -0400

    app: revert combo-box drop-down changes

    Revert the use of gtk_combo_box_set_wrap_width() to change the
    combo-box drop-down style, except for the status-bar unit combo.
    See https://gitlab.gnome.org/GNOME/gimp/issues/2828#note_421312 for
    the rationale.

    This reverts commits 1d984542e9a4673dc81baa3d60d389e3bb3c2d03,
    68a33ab5bda1470453d5856afc5bc499631b6da7, and
    6dfca83c2a5ee8d053150e85e2047702d67eb4e7.

    (cherry picked from commit 846d242f301b6ee8d62169d18bca61eaa3057a8b)

 app/display/gimpscalecombobox.c           | 3 ---
 app/display/gimpstatusbar.c               | 3 +++
 app/widgets/gimpcontainercombobox.c       | 3 ---
 app/widgets/gimplanguagecombobox.c        | 3 ---
 libgimpwidgets/gimpcolorprofilecombobox.c | 3 ---
 libgimpwidgets/gimpintcombobox.c          | 3 ---
 libgimpwidgets/gimpstringcombobox.c       | 3 ---
 libgimpwidgets/gimpunitcombobox.c         | 3 ---
 8 files changed, 3 insertions(+), 21 deletions(-)

commit 9063b937fe1b667e46769770e5938de01aa7c6f3
Author: Ell <ell_se@yahoo.com>
Date:   Wed Mar 27 15:38:06 2019 -0400

    app: use gimp:fill-source in gimp_drawable_edit_fill()

    In gimp_drawable_edit_fill(), when performing a non-direct fill,
    use a GimpDrawableFilter with gimp:fill-source, added in the
    previous commit, instead of using gimp_drawable_apply_buffer() with
    an intermediate fill buffer.  This avoids allocating a full-size
    fill buffer, which may occupy a lot of space in pattern fills.

    (cherry picked from commit 234f76b6fb7402dda6cd1ab4a95c33c666768002)

 app/core/gimpdrawable-edit.c | 52
 +++++++++++++++++++++++++-------------------
 1 file changed, 30 insertions(+), 22 deletions(-)

commit 75822d3d7bacd0932821e9907633d55fd31a8825
Author: Ell <ell_se@yahoo.com>
Date:   Wed Mar 27 15:10:53 2019 -0400

    app: add gimp:fill-source operation

    Add a new gimp:fill-source operation, which can act as a source
    node for fill operations, instead of a fill buffer.  The op takes
    a GimpFillOptions object, a drawable, and a pattern offset, and
    uses gimp_fill_options_create_buffer() to produce its output.

    This allows performing the entire fill operation in chunks as a
    graph, instead of allocating a full-size fill buffer, which can
    can occupy a lot of space for pattern fills.

    (cherry picked from commit 6b0337e384e396adf74ac979cf2864958f7841ee)

 app/operations/Makefile.am               |   2 +
 app/operations/gimp-operations.c         |   2 +
 app/operations/gimpoperationfillsource.c | 248
 +++++++++++++++++++++++++++++++
 app/operations/gimpoperationfillsource.h |  55 +++++++
 4 files changed, 307 insertions(+)

commit 2341117517050e5ffffbb36f77e5235078ade831
Author: Ell <ell_se@yahoo.com>
Date:   Wed Mar 27 14:50:20 2019 -0400

    app: improve gimp_drawable_fill_buffer() for patterns

    In gimp_drawable_fill_buffer(), when the fill-source is a pattern,
    avoid going through an intermediate buffer when there's no profile
    transform, and use the destination-buffer format for the
    intermediate buffer, instead of the pattern format, when there is a
    profile transform.

    (cherry picked from commit 3c1634ee0d5a1d6bbf448253abe9b88b2172a2c2)

 app/core/gimpdrawable-fill.c | 34 +++++++++++++++++++++-------------
 1 file changed, 21 insertions(+), 13 deletions(-)

commit 1416571389dfd867c13c20b83640e504fd174573
Author: Ell <ell_se@yahoo.com>
Date:   Wed Mar 27 12:33:21 2019 -0400

    app: use compositing format for fill buffer

    Add gimp_fill_options_get_format(), which returns the format to be
    used for the fill buffer; this is the same format used during
    compositing.  Use this format in gimp_fill_options_create_buffer(),
    instead of the drawable format.

    This fixes the result of fill operations when the fill color/
    pattern is not representable in the drawable format, and speeds up
    color fills by avoiding color-conversion for the fill buffer during
    processing.

    (cherry picked from commit 245a17c79f81413a47d9df309b20af46e8f15c44)

 app/core/gimpfilloptions.c | 21 ++++++++++++++++++++-
 app/core/gimpfilloptions.h |  3 +++
 2 files changed, 23 insertions(+), 1 deletion(-)

commit 6e06e5e85644af954f01c1bdc9d0aa68513619e4
Author: Ell <ell_se@yahoo.com>
Date:   Wed Mar 27 15:06:32 2019 -0400

    app: in GimpDrawableFilter, set underlying operation

    In GimpDrawableFilter, use
    gimp_gegl_node_set_underlying_operation() to the the input
    operation node as the underlying operation of the filter node.

    (cherry picked from commit b0dfc1e7c721263a8b293513ebb22aa3b7dd0348)

 app/core/gimpdrawablefilter.c | 1 +
 1 file changed, 1 insertion(+)

commit b5b5d717086ec1e68d0230380ec1c09c926804fe
Author: Ell <ell_se@yahoo.com>
Date:   Wed Mar 27 15:04:27 2019 -0400

    app: use underlying operation in gimp_gegl_apply_cached_operation()

    In gimp_gegl_apply_cached_operation(), use the underlying
    operation, as returned from
    gimp_gegl_node_get_underlying_operation(), for testing whether the
    operation is a point operation, for the purpose of avoiding
    duplicating the input buffer.  Likewise, avoid duplicating the
    buffer when the underlying operation is a source operation.

    (cherry picked from commit 213b126c6e515361c90d5ce8e85d2f1ed323c74e)

 app/gegl/gimp-gegl-apply-operation.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

commit 5e212fe0dd46c01e14e30dd9a1f8e7f7fbeb7bc3
Author: Ell <ell_se@yahoo.com>
Date:   Wed Mar 27 14:58:30 2019 -0400

    app: add gimp_gegl_node_{set,get}_underlying_oepration()

    ... which allow setting/getting the "underlying operation" node of
    a graph node.  For example, GimpDrawableFilter constructs a complex
    graph around a given operation node, which would be the underlying
    operation of the graph.  This allows querying the properties of the
    underlying operation, given only the graph.

    In recursive cases, gimp_gegl_node_get_underlying_operation()
    returns the most-nested underlying operation; when no underlying
    operation has been set, gimp_gegl_node_get_underlying_operation()
    returns the input node.

    (cherry picked from commit eb5e473665679bff527e279585e6b8181e1bdf56)

 app/gegl/gimp-gegl-utils.c | 27 +++++++++++++++++++++++++++
 app/gegl/gimp-gegl-utils.h | 36 ++++++++++++++++++++----------------
 2 files changed, 47 insertions(+), 16 deletions(-)

commit 3518ab919784885dd5bc24947db3cad72c62ea74
Author: Ell <ell_se@yahoo.com>
Date:   Wed Mar 27 14:31:14 2019 -0400

    app: add gimp_gegl_node_is_source_operation()

    ... which determines if a node is a source operation.

    (cherry picked from commit ff13e55c16bd936b9d88635e885dbfc282c9a9d3)

 app/gegl/gimp-gegl-utils.c | 15 +++++++++++++++
 app/gegl/gimp-gegl-utils.h |  1 +
 2 files changed, 16 insertions(+)

commit 55569d512ee606b26d6489bd12a3162969f9a40d
Author: Ell <ell_se@yahoo.com>
Date:   Wed Mar 27 12:29:25 2019 -0400

    app: in gimp_drawable_apply_buffer(), work in chunks

    In gimp_drawable_real_apply_buffer(), use GimpChunkIterator to blit
    the applicator's output to the drawable's buffer in chunks, to
    minimize the space used for intermediate results.

    (cherry picked from commit 8f845d3a51ceb8a742bed0e83c893171ed506604)

 app/core/gimpdrawable-combine.c | 14 +++++++++++++-
 1 file changed, 13 insertions(+), 1 deletion(-)

commit 7c6125ce67cdf77ae8924cc0b7692ad72d88661c
Author: Ell <ell_se@yahoo.com>
Date:   Wed Mar 27 11:10:26 2019 -0400

    app: improve responsiveness of GimpChunkIterator

    In GimpChunkIterator, redajust the target area at each step,
    instead of at each iteration, to adapt more quickly to the current
    processing speed.  To avoid creating uneven chunks as a result,
    only change the chunk height at the beginning of rows, unless the
    resulting area would be more than twice as big as the target area.

    (cherry picked from commit e904b712425e6e099389149d6a2a8055de9f13b3)

 app/core/gimpchunkiterator.c | 204
 ++++++++++++++++++++++++++-----------------
 1 file changed, 123 insertions(+), 81 deletions(-)

commit f81c1cac10c550838b676f52e1242fd97576a1a0
Author: Ell <ell_se@yahoo.com>
Date:   Tue Mar 26 04:54:59 2019 -0400

    app: preserve projection priority rect across structure/bounds changes

    In GimpProjection, store the priority rect in image coordinates,
    and only convert it to projectable coordinates when initializing
    the chunk-iterator's priority rect.  This allows us to preserve the
    priority rect across projectable structure/bounds changes.

    (cherry picked from commit 9d80ccc3e66ef1d9367bd1cdc80d7f01b076fe90)

 app/core/gimpprojection.c | 80
 +++++++++++++++++++----------------------------
 1 file changed, 33 insertions(+), 47 deletions(-)

commit 6473daa05bae41dd01af221a9f269e4addab8511
Author: Daniel Korostil <ted.korostiled@gmail.com>
Date:   Mon Mar 25 21:33:10 2019 +0000

    Update Ukrainian translation

 po-plug-ins/uk.po | 1483
 +++++++++++++++++++++++++++++------------------------
 1 file changed, 819 insertions(+), 664 deletions(-)

commit bb747c58ed0da729b9fc4a880b8ef40aef989ce4
Author: Daniel Korostil <ted.korostiled@gmail.com>
Date:   Mon Mar 25 20:06:19 2019 +0000

    Update Ukrainian translation

 po-script-fu/uk.po | 29 +++++++++++++++++------------
 1 file changed, 17 insertions(+), 12 deletions(-)

commit 03c98739bdda3d939c86aac9ea302197502553d7
Author: Daniel Korostil <ted.korostiled@gmail.com>
Date:   Mon Mar 25 20:05:04 2019 +0000

    Update Ukrainian translation

 po/uk.po | 151
 ++++++++++++++++++++++-----------------------------------------
 1 file changed, 52 insertions(+), 99 deletions(-)

commit 7d3b9353273fcd34dd2ed38abdabe0123d5955f1
Author: Daniel Korostil <ted.korostiled@gmail.com>
Date:   Mon Mar 25 20:03:58 2019 +0000

    Update Ukrainian translation

 po-windows-installer/uk.po | 32 ++++++++++++++++++--------------
 1 file changed, 18 insertions(+), 14 deletions(-)

commit b9375a3873f4d397df50d74c833c6f645a807bec
Author: Daniel Korostil <ted.korostiled@gmail.com>
Date:   Mon Mar 25 20:01:52 2019 +0000

    Update Ukrainian translation

 po-python/uk.po | 352
 +++++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 348 insertions(+), 4 deletions(-)

commit 81afa73bf33b509b0c117c79d0ec8e3751d79a1f
Author: Dimitris Spingos <dmtrs32@gmail.com>
Date:   Mon Mar 25 19:44:45 2019 +0200

    Updated Greek translation

 po-plug-ins/el.po  | 1477 ++++++++--------
 po-python/el.po    |  403 ++++-
 po-script-fu/el.po |  300 ++--
 po/el.po           | 4743
 ++++++++++++++++++++++++++++++----------------------
 4 files changed, 4049 insertions(+), 2874 deletions(-)

commit ebaf09e7cc6a579709962315e08aae433f017cd0
Author: Ell <ell_se@yahoo.com>
Date:   Mon Mar 25 09:14:06 2019 -0400

    app: don't disable filter format conversion if != drawable format

    In gimp_drawable_merge_filter(), don't disable the filter
    applicator's output-format conversion node if the output format is
    different than the drawable's format, since it may change the
    result.

    (cherry picked from commit 30da2f3d6fbf426b6a7b90074552efdd6515c23b)

 app/core/gimpdrawable-filters.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit 269f2ca0fc78aa94c58d12da66df81f1c101a504
Author: Ell <ell_se@yahoo.com>
Date:   Mon Mar 25 08:58:03 2019 -0400

    app: skip cache and format conversion when merging a drawable filter

    In gimp_drawable_merge_filter(), disable the filter applicator's
    cache and output-format conversion nodes before processing the
    uncached region of the filter, so that the result is written
    directly to the drawable's buffer.

    (cherry picked from commit 733a6ec01c53ec7c2be26e9af3da7b0c8b4c9497)

 app/core/gimpdrawable-filters.c   | 26 ++++++++++++++++++++++----
 app/core/gimpdrawable-operation.c |  8 +-------
 app/gegl/gimpapplicator.c         | 16 ++++++++++++++++
 app/gegl/gimpapplicator.h         |  2 ++
 4 files changed, 41 insertions(+), 11 deletions(-)

commit fef2c3423a4a9737ae650a4762137adc8e769510
Author: Ell <ell_se@yahoo.com>
Date:   Sun Mar 24 14:41:28 2019 -0400

    app: small fix to gimp_gegl_mask_combine_ellipse_rect()

    (cherry picked from commit d4689441fe139b60d54b1a4ca298b5b8bdd1358e)

 app/gegl/gimp-gegl-mask-combine.cc | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 9ac360a125750996eda1e6ca093eb1188ee52514
Author: Ell <ell_se@yahoo.com>
Date:   Sun Mar 24 03:06:19 2019 -0400

    Issue #3142 - Filters on-canvas preview doesn't work ...

    ... immediately after an image precision change

    When flushing a projection, make sure it has a buffer, instead of
    bailing if it doesn't.  We rely on the image projection's "update"
    signal to update the display after certain operations that free the
    buffer, which would previously fail to happen, and cause subsequent
    flushes to be ignored until the buffer is explicitly accessed.

    This fixes commit b07f8102738d8225c1e77e6b4f68ae12468d8a2b.

    (cherry picked from commit 106df3b794cfb52e3ac5e716e462427a4fae5507)

 app/core/gimpprojection.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit 8f3da0e8c4959ec0d1b82890cef23cccf5aa44cd
Author: Alex Samorukov <samm@net-art.cz>
Date:   Sat Mar 23 23:33:07 2019 +0000

    Allow compilation on MacOS 10.5 leopard: issues #2923, #2924 and #2925

 app/core/gimpimage-convert-indexed.c   | 32
 ++++++++++++++++----------------
 app/widgets/gimpcriticaldialog.c       |  3 ++-
 app/widgets/gimpselectiondata.c        | 14 +++++++-------
 libgimpwidgets/gimppickbutton-quartz.c |  5 +++++
 plug-ins/common/web-browser.c          |  3 ++-
 5 files changed, 32 insertions(+), 25 deletions(-)

commit f540f6c0a568e4c24869a012bedbf1ee59ac2930
Author: Martin Srebotnjak <miles@filmsi.net>
Date:   Fri Mar 22 21:51:38 2019 +0100

    Updated Slovenian translation

 po-python/sl.po | 371
 ++++++++++++++++++++++++++++++++++++++++++++++++++------
 1 file changed, 335 insertions(+), 36 deletions(-)

commit 6a38c58cda51e396e2fcc394ccc00f6adbc593f6
Author: Martin Srebotnjak <miles@filmsi.net>
Date:   Fri Mar 22 21:50:49 2019 +0100

    Updated Slovenian translation

 po-script-fu/sl.po | 291
 ++++++++++++++++++++++++++++-------------------------
 1 file changed, 155 insertions(+), 136 deletions(-)

commit e5026997b943d83574bd897725a8dd9f3032468a
Author: Martin Srebotnjak <miles@filmsi.net>
Date:   Fri Mar 22 21:46:14 2019 +0100

    Updated Slovenian translation

 po-plug-ins/sl.po | 1386
 +++++++++++++++++++++++++++--------------------------
 1 file changed, 719 insertions(+), 667 deletions(-)

commit f1c5b3978af5f05ae617d2fa1639911c478fb698
Author: Martin Srebotnjak <miles@filmsi.net>
Date:   Fri Mar 22 21:34:43 2019 +0100

    Updated Slovenian translation

 po-libgimp/sl.po | 444
 ++++++++++++++++++++++++++++---------------------------
 1 file changed, 225 insertions(+), 219 deletions(-)

commit 041107f80187e1a8444172b67ad8e76091659d15
Author: Martin Srebotnjak <miles@filmsi.net>
Date:   Fri Mar 22 21:28:18 2019 +0100

    Updated Slovenian translation

 po/sl.po | 4984
 ++++++++++++++++++++++++++++++++++++--------------------------
 1 file changed, 2860 insertions(+), 2124 deletions(-)

commit b8d94342ca3394c2cf93b9f6b1982323564ad819
Author: Ell <ell_se@yahoo.com>
Date:   Wed Mar 20 17:45:03 2019 -0400

    Issue #3134 - Deleting last layer of group not updating image

    In gimp_group_layer_get_size(), make sure to always set *width and
    *height, even when the group is empty, so that when the function is
    called through gimp_projectable_get_size() by the group's
    projection, the correct size is reported.  This makes sure we
    update the correct area when the group becomes empty.

    (cherry picked from commit a712308f20a216f98a03dbd60db0476aedfad2fe)

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

commit dc8fad6ac67fbd0515049eb1a449c4d81d2fa23d
Author: Ell <ell_se@yahoo.com>
Date:   Wed Mar 20 15:30:35 2019 -0400

    app: improve gimpchannel-{combine,select}

    In gimpchannel-select, move some of the common functionality of the
    various gimp_channel_select_foo() functions to gimpchannel-combine.
    Furthermore, don't special-case CHANNEL_OP_INTERSECT, but rather
    pass it over to gimpchannel-combine, which is now prepared to
    handle it in all functions, as per the previous commits.

    In gimpchannel-combine, factor out the common functionality of the
    various gimp_channel_combine_foo() functions into a pair of
    gimp_channel_combine_{start,end}() functions, which are called
    before/after the actual gimp_gegl_mask_combine_foo() function,
    respectively.  In particular, these functions deal with calculating
    the new channel bounds.  Previously, the various
    gimp_gegl_mask_combine_foo() functions would implicitly invalidate
    the channel bounds (since commit
    d0ae244fe85a502446fe9c7b82afdf1b89498966), rendering the bounds-
    recalculation code ineffective.  This avoids manually recalculating
    the bounds in many cases, speeding up selection operations.

    (cherry picked from commit 8e77347cac1fa4e2ed70578cc2ac88bb4558ee06)

 app/core/gimpchannel-combine.c | 443
 ++++++++++++++++++++++++++++++++---------
 app/core/gimpchannel-select.c  |  64 ++----
 2 files changed, 374 insertions(+), 133 deletions(-)

commit fa79923d4b46757c000eba8b87acc919904f8f0d
Author: Ell <ell_se@yahoo.com>
Date:   Wed Mar 20 09:39:40 2019 -0400

    app: improve gimp_gegl_mask_combine_buffer()

    Simplify code, use gimp_gegl_buffer_copy() for CHANNEL_OP_REPLACE
    when possible, improve value clipping, and parallelize processing.

    (cherry picked from commit a227c8e94d1463a031096bd5aa6007090e59aace)

 app/gegl/gimp-gegl-mask-combine.cc | 203
 ++++++++++++++++++++-----------------
 1 file changed, 111 insertions(+), 92 deletions(-)

commit 9b76ea070d2b8da7185beb70de7d467ab60579db
Author: Ell <ell_se@yahoo.com>
Date:   Wed Mar 20 09:27:08 2019 -0400

    app: improve gimp_gegl_mask_combine_ellipse[_rect]()

    Improve gimp_gegl_mask_combine_ellipse_rect() -- the funciton
    responsible for rendering ellipse/rounded-rectangle selections.

    Most notably, this commit significantly improves the function's
    performance, by identifying whole tiles, whole rows, or parts of a
    row, that are fully inside, or fully outside, the ellipse, and
    filling them in bulk, instead of calculating the anti-aliasing
    value at each pixel, which is now only done along the
    circumference.

    This commit also improves anti-aliasing, by more accurately
    approximating the distance from a pixel to the ellipse, and by
    normalizing the distance according to the pixel's cross-section
    length in the direction of the said point.  In particular, we
    guarantee that pixels that are fully inside/outside the ellipse
    have a value of 1/0, respectively, facilitating the aforementioned
    optimization.

    Additionally, this commit fixes various edge cases where several
    primitives coincide at a single pixel (in the rounded-rectangle
    case), adds support for CHANNEL_OP_INTERSECT, and parallelizes
    processing.

    (cherry picked from commit 1044342393e1da6048b948f3a02f70acd591dfae)

 app/core/gimpchannel-combine.c     |  45 +--
 app/core/gimpchannel-combine.h     |   4 +-
 app/gegl/gimp-gegl-mask-combine.cc | 600
 ++++++++++++++++++++++---------------
 app/gegl/gimp-gegl-mask-combine.h  |   4 +-
 4 files changed, 365 insertions(+), 288 deletions(-)

commit d0a3d81c4a8c978e4b28455ae18c13e4d30c0666
Author: Ell <ell_se@yahoo.com>
Date:   Tue Mar 19 16:17:47 2019 -0400

    app: improve gimp_gegl_mask_combine_rect()

    Simplify the code, and add support for CHANNEL_OP_INTERSECT.

    (cherry picked from commit 8a6e1c907dbb9bc790257dee4485f947798b125d)

 app/gegl/gimp-gegl-mask-combine.cc | 37
 ++++++++++++++++++++++++-------------
 1 file changed, 24 insertions(+), 13 deletions(-)

commit 15e8b53f0ca8b0df3d70a1d0466051d53080fbca
Author: Ell <ell_se@yahoo.com>
Date:   Tue Mar 19 16:11:34 2019 -0400

    app: convert gimp-gegl-mask-combine to C++

    ... in preparation for next commits.

    (cherry picked from commit 5198d3c32dbd86855131aa7e7811c99df539c34d)

 app/gegl/Makefile.am                                  |  2 +-
 ...-gegl-mask-combine.c => gimp-gegl-mask-combine.cc} | 19
 ++++++++++++-------
 2 files changed, 13 insertions(+), 8 deletions(-)

commit 2a2ad4324d564192791beb6b780744db33d7fdc0
Author: Ell <ell_se@yahoo.com>
Date:   Wed Mar 20 09:18:12 2019 -0400

    app: add gimp_babl_format_change_{component_type,linear}()

    ... which change a format's component-type/TRC, without otherwise
