Commit Graph

45542 Commits

Author SHA1 Message Date
Ell 8c81c6e153 app: fix layer group effective mode for different mask modes
In gimp_group_layer_get_effective_mode(), don't take the mask into
account if GimpLayer::apply-mask is FALSE.
2020-02-21 22:55:33 +02:00
Ell 7f53cf9c55 app: fix layer bounding box for different mask modes
In gimp_layer_get_bounding_box(), return the mask bounding box when
show-mask is active, and otherwise delegate the actual layer
bounding box calculation to a new GimpLayer::get_bounding_box()
function, and intersect its result with the mask bounding box, if
necessary.  The default GimpLayer::get_bounding_box()
implementation simply chains up to
GimpDrawable::get_bounding_box(), but GimpGroupLayer will override
this function in the following commits.
2020-02-21 22:55:33 +02:00
Ell b2a1a7cb01 app: fix layer effective mode for different mask modes
In GimpLayer, update the effective mode, and excludes-backdrop,
when any of the mask-related properties change, and, when show-mask
is active, set the effective mode to NORMAL.
2020-02-21 22:54:16 +02:00
Ell 646c804c04 app: fix compositing of layers with masks, outside the mask bounds
In GimpOperationLayerMode, when the op has a mask connected, and
we're processing an area outside the mask bounds, set the op's
opacity to 0, so that the backdrop shows through.  The actual
process() function gets a NULL mask pointer in this case, and so
would composite the layer as if it had no mask, exposing areas that
should be masked out.

Add a GimpOperationLayerMode::parent_process() function, which
subclasses can override instead of GeglOperation::process(), and
make sure to update the GimpOperationLayerMode::opacity field
before calling this function (and, subsequently, before calling
GimpOperationLayerMode::process()).

Clean up the rest of the fields, and adjust the rest of the code.
2020-02-21 22:54:16 +02:00
Alexandre Prokoudine 3a1aec3051 2.10.18: update appdata
(cherry picked from commit 644f14da45)
2020-02-21 22:54:07 +03:00
Øyvind Kolås 1462a91d86 plug-ins: Convert CMYK u8 .psd to R'G'B' float on load
Patch from Massimo Valentini in issue #354, adapted for the new object
based plug-in APIs.
2020-02-21 12:29:50 +01:00
Ell 0f07f1baa5 app: in paint tools, fix cursor position in line mode when snapping to angle
In GimpPaintTool, when not snapping brush outline to stroke, make
sure to properly snap the cursor position to 15-degree angle
multiples in line mode, not only when painting the line, but also
during motion.
2020-02-21 13:03:30 +02:00
Ell ae6f6ba42a app: fix incorrect drawable format after applying a filter that resizes the drawable
In gimp_drawable_merge_filter(), fix the format of newly allocated
buffers when applying a filter that changes the size of the
drawable, and the requested format is either unspecified, or
matches the existing drawable format.  The new buffer would
previously be created with a "RGBA float" format in this case,
regardless of the image precision, resulting in a potential
mismatch between the drawable format and the image precision.

This cna lead to inconsistent buffer data when saved as XCF, which
is later rejected on load.  See issue #4643.
2020-02-21 12:02:55 +02:00
Ell d53e701daa app: avoid use-after-free when loading an XCF with corrupted layers
When dropping a corrupted layer while loading an XCF, make sure to
clear the corresponding XcfInfo fields that point to it, so that
it's not erroneously used later, as we now continue loading the
image even after corrupted layers are encountered.

See, for example, issue #4643, for a corrputed XCF file affected by
this.
2020-02-21 12:02:55 +02:00
Ell 2eaaa950a5 app: in gimp:replace, add fast path when compositing a layer over itself
In gimp:replace, when compositing the same content over itself,
i.e., when the input and aux buffers share the same storage and
same tile alignment, pass the input buffer directly as output,
instead of doing actual processing.

In particular, this happens when processing a pass-through group
outside of its actual bounds.
2020-02-20 13:03:10 +02:00
Ell 401745e62a Makefile.am, meson.build: require GEGL >= 0.4.23 2020-02-20 13:02:54 +02:00
Jordi Mas 514b466fd7 Update Catalan translation 2020-02-19 07:11:02 +01:00
Øyvind Kolås ab5ed1575c meson,app,autotools: depend on GEGL-0.4.22 2020-02-18 22:02:30 +01:00
Michael Natterer bb144065c7 app: s/getenv/g_getenv/ in gui_restore_after_callback()
(cherry picked from commit 65b6f7cc6f)
2020-02-18 20:41:18 +01:00
Michael Natterer 3a36ae49de app: fix indentation in gui_restore_after_callback()
(cherry picked from commit 2ffa09fab5)
2020-02-18 20:41:07 +01:00
Ell 52f5a9f654 plug-ins: improve PSD loading speed
In file-psd, improve loading speed, mostly by eliminating excessive
copies.
2020-02-18 19:17:38 +02:00
Balázs Úr 2f2ea26c2f Update Hungarian translation 2020-02-17 22:00:05 +00:00
Piotr Drąg 0eb614c3e0 Update Polish translation 2020-02-17 17:20:07 +01:00
Ell 15438c58d2 Issue #4627 - memory corruption when open crafted sgi
In the file-sgi plug-in, check for failure when allocating buffers
of user-controlled size.
2020-02-17 17:01:25 +02:00
Ell 2ed889394d plug-ins: in file-sgi, convert tabs to spaces 2020-02-17 17:01:25 +02:00
Ell 4fe8217898 plug-ins: in screenshot, keep image dirty; keep history clean
In the screenshot plug-in, don't clean the image, since it's not
backed by any persistent source, and disable undo while modifying
it, so that the initial edit history is clean.
2020-02-16 23:05:12 +02:00
Anders Jonsson 3d756e136c Update Swedish translation
(cherry picked from commit cc24b968f7)
2020-02-16 21:00:40 +00:00
Alexandre Prokoudine 41fec41353 Fixes and improvements for 2.10.16 appdata 2020-02-16 20:23:28 +03:00
Ell bb8d933033 devel-docs: add missing functions to libgimpfoo-sections.txt 2020-02-16 02:28:00 +02:00
Ell cf574c44fb data: in Makefile.am, make sure to uninstall gimp-release 2020-02-16 01:31:14 +02:00
Ell 75838a59a8 libgimpmath: fix unsorted line in gimpmath.def 2020-02-16 00:34:17 +02:00
Ell ea729f6d02 app: fix brush outline position when snapping to stroke
In GimpPaintTool, fix the brush outline position while painting,
when "Snap brush outline to stroke" is enabled.
2020-02-14 21:53:40 +02:00
Alexandre Prokoudine 8bc92fd0ed Fix the 2.10.16 release date in appdata 2020-02-14 12:08:26 +03:00
Alexandre Prokoudine 2d6e15caa5 Update appdata for upcoming 2.10.16 release 2020-02-14 12:08:13 +03:00
Jehan b79e147923 meson, data: create/install gimp-release file with meson too. 2020-02-14 00:58:42 +01:00
Jehan f98e506712 configure, data: create/install the gimp-release file. 2020-02-14 00:56:22 +01:00
Jehan ded382f8b7 app-tools: fix the meson file.
As always, separate commit for easy cherry-pick on gimp-2-10.
2020-02-14 00:03:32 +01:00
Jehan 87e9ebcfad app: store the revision number in a data file.
I realized having the revision as a build number is the wrong idea as it
implies packagers will have to rebuild GIMP for just a revision. Yet
very often revision may just be data change or dependency fix/update
without rebuild needed (i.e. no ABI change).
Instead let's keep this package information as a file 'gimp-release'
(inspired by /etc/os-release and other /etc/*-release files of
distributions).
2020-02-13 23:59:46 +01:00
Tim Sabsch 7029c3570c Update German translation
(cherry picked from commit b3583119bd)
2020-02-13 19:37:54 +00:00
Tim Sabsch 365afc829b Update German translation
(cherry picked from commit 9e358ebdbd)
2020-02-13 19:05:16 +00:00
Piotr Drąg 1c90461e21 Update Polish translation 2020-02-13 19:55:53 +01:00
Balázs Úr 1a587a371b Update Hungarian translation 2020-02-13 17:55:08 +00:00
Balázs Meskó 3e6763a50a Update Hungarian translation 2020-02-13 17:48:48 +00:00
Anders Jonsson 61d04a93d6 Update Swedish translation
(cherry picked from commit fc805a4197)
2020-02-13 16:57:56 +00:00
Ell 6cd3c8bc74 app: increase the maximal airbrush stamp FPS
In the Airbrush tool, increase the maximal stamp FPS from 15 to 60,
and change the corresponding maximal Rate value from 150 to 100.
This technically affects tool presets, but we'll live.
2020-02-13 18:47:03 +02:00
Ell 30e925065f app: fix gimp_brush_mipmap_get_memsize()
Don't include the main mask/pixmap buffer size -- it's already
counted in gimp_brush_get_memsize().
2020-02-13 16:56:33 +02:00
Anders Jonsson f09e940cac Update Swedish translation
(cherry picked from commit 0367972eb1)
2020-02-13 13:23:32 +00:00
Rodrigo Lledó 0a02e6c726 Update Spanish translation 2020-02-13 08:53:13 +00:00
Rodrigo Lledó 6932c513ee Update Spanish translation
(cherry picked from commit 603ed31fd3)
2020-02-13 08:48:28 +00:00
Trần Ngọc Quân 47c3035ecd l10n: Updated Vietnamese translation
Signed-off-by: Trần Ngọc Quân <vnwildman@gmail.com>
2020-02-13 14:50:42 +07:00
Anders Jonsson 364ebc1d78 Update Swedish translation
(cherry picked from commit 4320d714ee)
2020-02-13 00:03:40 +00:00
Anders Jonsson b41594023f Update Swedish translation
(cherry picked from commit 7ea884bfc2)
2020-02-12 23:46:48 +00:00
Anders Jonsson 042385d0b4 Update Swedish translation
(cherry picked from commit 78c85ef13d)
2020-02-12 23:40:25 +00:00
Nikc M 0a5af889f9 Issue #175 - Allow the erase every other row plugin to skip a different number of rows
Adds generalized erase Nth row function,
and sets original erase row function to
call generalized one with n = 2
to reduce code duplication
2020-02-13 01:18:22 +02:00
Ell f797f688ad app: reorganize #includes in gimpbrush-{mipmap,transform}.cc 2020-02-13 00:14:28 +02:00