Commit graph

55933 commits

Author SHA1 Message Date
Alan Mortensen
ccbb67b0eb Update Danish translation
(cherry picked from commit b6bac3560a)
2025-10-09 14:47:59 +00:00
Bruno Lopes
e0853c3e35
gitlab-ci: Install missing 'git' for branch check on Snap submission
See: 2c7ee6ba
2025-10-09 10:57:34 -03:00
Bruno Lopes
0e5b3f3523
build/linux: Don't shasum .snap on releases
Like the .msix, the package is sent directly to the store so
there is no use of sharums on releases.
2025-10-09 10:11:20 -03:00
Bruno Lopes
d872a21786
build/linux: Update openexr, imath and openjph modules
Synced from: 6234af7b85
2025-10-09 09:00:27 -03:00
Bruno Lopes
2c7ee6ba4d
gitlab-ci, build/linux: Create and submit .snap on releases 2025-10-08 21:19:21 -03:00
luming zh
1c18ef5a0b Update Chinese (China) translation 2025-10-08 23:45:50 +00:00
luming zh
4bbc2e622d Update Chinese (China) translation 2025-10-08 23:34:54 +00:00
Ekaterine Papava
fd0cfd6ff3 Update Georgian translation 2025-10-08 22:39:44 +00:00
Jehan
42783ace78 app: also apply the no-edit on non-raster layers to text layers! 2025-10-08 23:26:24 +02:00
Jehan
5ddb853964 app: globally block editing vector and link layers.
Instead of blocking various drawable-editing tools to work on vector or
link layers, per tool (as in commits 38c379cd92 or 36330a271a), let's
have a more generic logic in GimpTool. We will now block the tool
initialization early when it's destructive and tries to work on link or
vector layers.

By default, all tools are set as being destructive, but we can override
this per-class by setting the class' is_destructive flag. For instance,
text and path tools, or the Zoom or Color picker tools, etc. are
non-destructive.
Filter tools also are non-destructive (they may be destructive, but have
their internal code to disable this path on these types of layers).

Source tools are special-cased because we may allow them to be
initialized on a link/vector layer as sources. For this special-case, I
make a second check on gimp_tool_button_press().
2025-10-08 23:21:59 +02:00
Martin
759a886e4b Update Slovenian translation 2025-10-08 21:17:02 +00:00
Martin
77f6368618 Update Slovenian translation 2025-10-08 21:05:17 +00:00
Anders Jonsson
becd662315 libgimpwidgets: fix overlapping ngettext usage
In the page selector the translation for "All n pages selected"
was always used, even if all pages weren't selected. This was
caused by the same singular msgid being used in multiple places
with different msgid_plural.

These were then all smashed into a single translation. Replace one
of the singular msgid:s to avoid this. This string is never shown
since the n_selected == 1 case is already covered earlier in the
code.
2025-10-08 22:14:24 +02:00
Bruno Lopes
3bec45f5f4
desktop: GIMP 3.X series does not support "OS X" but "macOS" 2025-10-08 15:00:39 -03:00
Martin
f588f5f9b4 Update Slovenian translation 2025-10-08 17:15:23 +00:00
Jehan
38663dc393 libgimp: indentation fix. 2025-10-08 15:04:54 +02:00
Alx Sa
221a50741a text, libgimpbase: Move text enums
This patch moves the enums for GimpTextOutline
and GimpTextOutlineDirection so that they are
accessible to plug-ins/scripts. This will allow
for us to add PDB functions to get/set text outline
properties.
2025-10-08 11:34:57 +00:00
Marco Ciampa
453f39644e Updated Italian translation 2025-10-08 13:17:56 +02:00
Bruno Lopes
6ea46b2721
gitlab-ci: Fix collapsible sections timestamps on AppImage jobs 2025-10-08 08:05:54 -03:00
Jehan
0ae163e43c app: fix partial canvas update when hiding or removing filter on…
… pass-through group layer.

Because of the strength-reduce pass-through to normal mode, we had case
when the effective layer mode of a pass-through group ended up to
Normal, which may shrink the effective bounding box.

Note that getting rid of the GimpGroupLayer's get_effective_mode()
(gimp_group_layer_get_effective_mode()) implementation was also fixing
this issue. I did hesitate a lot because it is also simplifying the code
a lot. But I was also wary about getting rid of the optimization
previously made by Ell (see commit fa9a023c270; note that I haven't
actually tested how efficient this optimization is).

This seems like a good compromise.
2025-10-08 01:23:07 +02:00
Jehan
3d9bd1f829 NEWS: update. 2025-10-08 00:52:33 +02:00
Jehan
6095b247be app: special-case pass-through groups' drawable area.
On empty pass-through groups, it was returning a 1×1 area, which
triggered effects with X/Y distance arguments to have no set min/max
values. For instance, a gaussian blue's X/Y scale widgets end up showing
a [0, 1.5] range, making it very impractical to set higher values.
2025-10-07 23:34:55 +02:00
Jehan
85d381bd0c Issue #15004: empty pass-through groups have no size, making it…
… impossible to use them like adjustment layers without additional step.

Even without the "adjustment layer" look-alike use case, this is wrong,
because an effect on an adjustment layer will be only applied on the
area contained in child layers, whereas by definition, a pass-through
layer would use the below render as input, and therefore its output
could be bigger than its child layers box.

I could find commit aa9ae1c65c as a culprit commit, and reverting it
would in fact also fix this issue, though by doing this, we'd regress on
the issue #4634 (I tested with one of the contributed XCF and can indeed
reproduce the bug).

Instead I return the unioned bounding box of the node, and of the
computed one. I do not feel like it's optimal, but this feels like a
complicated issue. It looks to me like there might be another deeper
issue in how both these bounding boxes are computed (not optimally!).

In any case, it also makes empty pass-through groups now usable to apply
directly an effect on the whole below render, as a side effect.
2025-10-07 23:34:55 +02:00
Jehan
f5b94bdc03 app: we also have alias links for RC releases. 2025-10-07 23:34:55 +02:00
Martin
8b20b52298 Update Slovenian translation 2025-10-07 20:08:13 +00:00
Bruno Lopes
9c872ee77f
build: Document the importance of double-check on Partner Center and Snapcraft
Partner Center, for example, is now requiring us to manually set, after
the certification, the amount of users which will receive the update.
2025-10-07 17:00:56 -03:00
Jacob Boerema
0a0e9482c6 libgimp: critical when adjusted comment is NULL
When the Exif metadata comment after our adjusting was NULL, we got a
critical:
CRITICAL **: 14:09:21.853: gboolean gexiv2_metadata_set_exif_tag_string
(GExiv2Metadata *, const gchar *, const gchar *, GError **):
assertion 'value != NULL' failed

Instead of trying to set the tag with a NULL value, remove the (now
empty) tag, if there was any.

See issue #15032
2025-10-07 14:28:12 -04:00
Bruno Lopes
f2f76ec131
build/windows: Don't force minimum version for Windows Server sake
This partially reverts 125e355c

See: #15040
2025-10-07 13:39:54 -03:00
Bruno Lopes
ddb5d636d8
build/windows: Fix build options being passed as patches on self_build() 2025-10-07 11:32:31 -03:00
Bruno Lopes
178659732c
build/windows: Remove obsolete GEGL .patch regarding CodeView 2025-10-07 11:30:05 -03:00
Bruno Lopes
fec1b3302d
meson: Remove redudant get_option('buildtype') 2025-10-07 10:33:50 -03:00
luming zh
4398f12cef Update Chinese (China) translation 2025-10-07 02:45:47 +00:00
luming zh
3234e47634 Update Chinese (China) translation 2025-10-07 02:37:45 +00:00
Alx Sa
982b572601 libgimp: Prevent crash on NULL comment
In gimp_image_metadata_interpret_comment (), it's
possible to set the variable comment to NULL.
We then have a later if statement that checks if index 0
of "comment" is \0 - if comment is NULL when this
check occurs, we cause a crash.
This patch adds a check to confirm comment is not NULL
before running this if statement.
2025-10-07 01:54:02 +00:00
Bruno Lopes
d0f3d9d421
build/linux: Build graphviz module with Cmake 2025-10-06 16:59:31 -03:00
Bruno Lopes
ad7c9db3cf
build/linux: Complement 3P Snap plugins procedure 2025-10-06 16:06:04 -03:00
Kolbjørn Stuestøl
ef884ac452 Update Norwegian Nynorsk translation 2025-10-06 18:43:29 +00:00
Bruno Lopes
6699943cae
build/linux: Mention 3P Snap plugins notification procedure 2025-10-06 14:39:07 -03:00
Bruno Lopes
da3a07688d
.gitmodules: Specify gimp-data branch as 'main' 2025-10-06 13:49:22 -03:00
Bruno Lopes
277b21ed51 build/linux: Port 3P binaries plugins support from Snapcrafters 2025-10-06 12:46:09 -03:00
Bruno Lopes
ebd6e64dc8
build/linux: Fix Flatpak building after gexiv2 dep declaration 2025-10-05 14:53:41 -03:00
Bruno Lopes
4768a4283d
gitlab-ci: Add comment explaining Flatpak timeout 2025-10-05 13:45:55 -03:00
Bruno Lopes
fe4a698928
gitlab-ci: Bump Flatpak timeout for 90min again for rebuilding purposes
When we bump some dependency (e.g. Poppler), even the ones which
don't link to it will be rebuild, so 30min is not enough even
with the ORAS caching.
2025-10-05 13:41:27 -03:00
Bruno Lopes
d8d73266bc
build/linux: Update poppler module to 25.10
Synced from
6d4124f7b8
2025-10-04 18:51:18 -03:00
Bruno Lopes
356c2baec5
gitlab-ci, build/windows: Remove forgotten comment about fixed #12284 2025-10-04 16:16:49 -03:00
Bruno Lopes
aea7042aa1
meson: Support Windows native paths (aka backslashes) on -Dprefix
Closes: #12284
2025-10-04 16:12:00 -03:00
Alan Mortensen
97944a5415 Update Danish translation
(cherry picked from commit d81cfcc325)
2025-10-04 12:48:26 +00:00
Alx Sa
a5182a010f tools: Fix missing cursor for MyPaint Brush tool
Resolves #15001
In the MyPaint Brushes v2 port (ea8b9dc1),
I implemented a cursor_update () function from the
parent class. However, I did not call the parent's
version of the function afterwards, so the MyPaint
Brush cursor was not being redrawn. This patch
adds the call to fix the cursor display issue.
2025-10-03 22:14:52 +00:00
Øyvind Kolås
9c2c5ff183 meson, app: depend on GEGL-0.4.64 2025-10-03 23:56:36 +02:00
Bruno Lopes
f09007507f
Declare gexiv2 dependency on many targets (due to gimpmetadata.h)
Our build files were relying 'sysroot' to find gexiv2.h but this is
not possible with Apple Clang om which sysroot points to macOS SDK.
So, exotic environments like Homebrew were failing. Let's fix this.
2025-10-03 18:31:53 -03:00