Commit graph

56366 commits

Author SHA1 Message Date
Ekaterine Papava
fa0207b8ac Update Georgian translation 2025-11-26 01:37:02 +00:00
Ekaterine Papava
0463404b6f Update Georgian translation 2025-11-26 01:29:03 +00:00
Alx Sa
52bf4bb6ee path: Update path import code from C-based librsvg
GIMP's path import code is largely copied
from an earlier version of rsvg. Therefore,
it does not include updates that made
number processing more robust
(such as properly parsing 'c1.5.2' as '1.5, 0.2'
for curve coordinates)

Per the suggestion by @federico, this patch
updates our code using rsvg-path.c from 
the last version of the C-based librsvg
(updated November 3rd, 2016).

Our original code also broke if there was any
spaces after the last item in the SVG transform
attribute. This patch adds a call to
g_strstrip () to trim any unnecessary spaces
either before or after the transform string
to prevent this issue.
2025-11-25 23:27:52 +00:00
Anders Jonsson
f46015d698 Update Swedish translation 2025-11-25 21:58:22 +00:00
Jehan
93a7e92183 app, libgimp, pdb: clean up some algorithm URLs.
- The "Healing Brush" paper URL is dead. It now leads to one of these
  horrible parasitic websites which reuse domain names. And we for sure
  don't want to promote this! I'm using instead the associated page on
  our developer website. I just created this page and right now it's on
  testing only. But this will be the URL for the main website.
- The URL for the foreground extraction paper is still valid, but from
  my small research today when writing various algorithm' pages, I think
  our own implementation diverged from this original paper (though it
  may still have part of this original paper's algorithm; only a deeper
  check of the code would tell).
  See: https://testing.developer.gimp.org/core/algorithm/foreground-extraction/
  Also this PDB procedure is called generically gimp_drawable_foreground_extract()
  and it even has an argument to choose the algorithm (even though right
  now, there is only a single choice, which is "Matting" algorithm, and
  even there you can't choose which one; it's always Matting Global;
  Matting Levin cannot be chosen for instance).
  So anyway it is not a good idea to point to one specific algorithm,
  and even less to leave an external URL (which may also disappear some
  day) in API docs. So I am just getting rid of this paper title and
  URL, and replace it with actually useful information, which is how to
  set the trimap to represent foreground, background and uncertain
  pixels (note: I notice that it would have been different with Matting
  Levin where uncertain pixels must apparently be set transparent).
2025-11-24 21:45:03 +01:00
Bruno Lopes
b172d0ac59
build, gitlab-ci: On scheduled MSVC jobs, build GEGL too
But without CTX which is extremely UNIX oriented
2025-11-23 18:19:12 -03:00
Anders Jonsson
cd0ef4e716 Update Swedish translation 2025-11-23 21:17:17 +00:00
Bruno Lopes
974c37a7ce meson: On RCs, use the same GIMP_MUTEX_VERSION of the previous unstable
Like we do (better) on the MSIX, Flatpak and Snap with their channels.
Otherwise, a RC .exe installer overrides the existing stable installation!
2025-11-23 17:18:32 -03:00
Asier Saratsua Garmendia
87c91bf6a1 Update Basque translation 2025-11-23 19:52:15 +00:00
Asier Saratsua Garmendia
9b132279d9 Update Basque translation 2025-11-23 19:52:01 +00:00
Jehan
3136cbee38 INSTALL: add some notes about setting up the build for localization.
Since this is now a build breaker (on purpose), let's add some notes on
how to properly set your build system so that our list of GUI languages
are self-localized as we want them. I am guessing that if we don't add
this info, we may soon get reports by various distributions' packagers
about our build being broken.

This explains so much why I was regularly seeing screenshots of packaged
GIMP with a list of languages in English, in forums or tracker. Unlike
desktop machines, I am guessing that most build servers are just set as
C or POSIX locale and that would just break our pre-localization build
script.
2025-11-23 18:25:48 +01:00
Jehan
ecd7b88bbd gitlab-ci: Snap environment must also be set up for localization. 2025-11-23 17:13:38 +00:00
Jehan
88261f8b4c Issue #13774: languages list is not localized on AppImage.
Seems like our CI runners are configured with POSIX locale. Both C and
POSIX locales are basically overriding any attempt to localize during
the build (setting LANGUAGE doesn't work) and unfortunately we are now
self-localizing the list of languages during build.

So let's add a bogus en_US.UTF-8 locale before setting LANGUAGE. This
should fix the issue. It would probably also fix the same issue for
various third-party packages if distributions' build machines are set
similarly!
2025-11-23 17:13:38 +00:00
Alx Sa
4ff2d773d5 plug-ins: Fix ZDI-CAN-28273
Resolves #15286
Adds a check to the memory allocation
in pnm_load_raw () with g_size_checked_mul ()
to see if the size would go out of bounds.
If so, we don't try to allocate and load the
image.
2025-11-23 16:43:51 +00:00
Yuri Chornoivan
7737fc27c8 Update Ukrainian translation 2025-11-23 14:32:25 +00:00
Asier Saratsua Garmendia
903014fe7e Update Basque translation 2025-11-23 10:28:57 +00:00
Asier Saratsua Garmendia
2f6bf2b432 Update Basque translation 2025-11-23 08:01:44 +00:00
Alx Sa
7d89af790d core: Increase clipboard brush/pattern for 64 bit
Resolves #5627
The current limit for Clipboard Brush and
Pattern maximum size is set to 1024 because
that is the largest value that a 32-bit
architecture can safely handle.
64-bit architectures can support larger
dimensions, as confirmed by
Stanislav Grinkov during testing. This patch
therefore uses macros to increase the
size limit if we detect a 64-bit architecture,
and otherwise default to the 32-bit limit.
2025-11-23 05:31:57 +00:00
Alx Sa
481cdbbb97 plug-ins: Fix ZDI-CAN-28311
Resolves #15292
The IFF specification states that EHB format images
have exactly 32 colors in their palette. However, it
is possible for images in the wild to place an incorrect
palette size. This patch checks for this, and either limits
the palette size or breaks accordingly.
2025-11-23 04:22:49 +00:00
Sabri Ünal
53eee84b30 Update Turkish translation 2025-11-23 04:21:53 +00:00
Anders Jonsson
6f0dcaa37e Update Swedish translation 2025-11-23 00:33:41 +00:00
luming zh
fa0d6c9f33 Update Chinese (China) translation 2025-11-23 00:03:42 +00:00
Bruno Lopes
0ae1cd5a6d
build, gitlab-ci: Do not build AppImage and .exe and MSIX with workshop on RC 2025-11-22 20:57:01 -03:00
Anders Jonsson
0bb6746d1b Update Swedish translation 2025-11-22 22:52:26 +00:00
Martin
fa94cc06ff Update Slovenian translation 2025-11-22 22:02:43 +00:00
Alx Sa
84ff512cfa path: Use generic ID for path export
Resolves #13570
The SVG specification prohibits certain characters
from being used as part of a path id attribute, such as
whitespace and hyphens. Rather than try to filter the
path name selected by the user, this patch switches to
an auto-incrementing "path%d" format to ensure any
exported path can be read by strict parsers. This also
matches how we implemented ids in the SVG export
plug-in.
2025-11-22 17:49:33 +00:00
Jehan
90d0f459c3 app: barrel_rotation arguments corresponds to the wheel value.
This last argument in libmypaint's mypaint_brush_stroke_to_2() is called
barrel_rotation. If you look at MyPaint's code (in particular file
gui/freehand.py), you see it is taken from GDK_AXIS_WHEEL of the input
event, which corresponds to our coords->wheel (there is this
long-standing question about the difference with GDK_AXIS_ROTATION
because as far as we know, this is probably the same value anyway; as
was explained to us by a Wacom developer long ago).

Unfortunately I can't test as we don't have any stylus with such barrel
rotation feature (and unfortunately this hardware feature is
discontinued and getting a stylus with this is extra-hard now), but that
should work. And at the very least, it does match with MyPaint's
implementation.
2025-11-22 17:05:14 +01:00
Jehan
1ce91e9508 INSTALL: tweak a bit the instructions. 2025-11-22 17:05:14 +01:00
Bruno Lopes
f3296de941
build/windows: Check for msstore-cli failures on MSIX submission 2025-11-22 10:36:33 -03:00
Bruno Lopes
143e4cb784
build/windows: Fix clash of GIMP Preview MSIX with GIMP MSIX on Start Menu
Let's not mention the major version nor minor version anymore on
the Start Menu version. This creates confusion, specially on RCs.
2025-11-22 09:33:08 -03:00
Bruno Lopes
39c80252e5
build/windows: Simplify VCPKG deps listing 2025-11-22 09:28:17 -03:00
Alx Sa
ed7f53b7a6 tools: Don't update position if no prior moves
Resolves #12755
gimp_edit_selection_tool_active_modifier_key () assumed
that if you press a modifier key while a selection/move tool
is active, we should move the selected item to the last place
recorded. However, it's possible to run this function before
we've moved anything, thus defaulting the "original position"
to 0, 0.
This is most noticeable in the Move Tool, where pressing Ctrl
or Shift after clicking a layer but before moving it will cause
the layer to "jump" based on where the cursor is placed on the
item.
This patch adds an additional condition to the motion function
in gimp_edit_selection_tool_active_modifier_key (), so that
we only do it if we've already moved the cursor at least once.
2025-11-22 05:17:00 +00:00
Bruno Lopes
334f7d3a1b
build: Package maintainership instructions were moved to gimp-web-devel
See: Infrastructure/gimp-web-devel@7be7fbe0

In short, such information is not needed to making/building the
packages, just to submitt/release them, which is maintainer-thing.

But let's keep at least a reference so making them easier to find.
2025-11-21 16:21:02 -03:00
Jehan
8bc88115ca libgimpcolor: add some note to gimp_color_is_perceptually_identical() docs. 2025-11-21 19:33:09 +01:00
Jehan
c558e41517 libgimpwidgets: update color area correctly when updating color.
Since we don't necessarily re-render the color area when the color
change, let's store the actually rendered color, additionally to the
supposedly rendered color. Otherwise when changing the color by very
small increments, small enough that the color is always perceptually
identical to the previous color, we never re-render the widget, even
when the rendered color is now quite different. Indeed the "identical
color" algorithm, based on CIE2000 distance, is not transitive.

Additionally I do not check for perceptual identity in
GimpColorSelection anymore, because we also check for this in the
GimpColorArea. Better always having the right color set in the area.

This was raised in #11339 (even though the initial issue was about the
hexadecimal field).
2025-11-21 19:33:09 +01:00
Bruno Lopes
b5a3529d49
Revert "build/linux: Use gamepads and pen-drive permissions on Flatpak"
This reverts commit 96a65045e9.

GNOME uses ancient flatpak version on the OCI image which
makes impossible to test the feature.
2025-11-20 20:45:48 -03:00
Bruno Lopes
a47f43ad7d
build/linux: Update openexr module to 3.4.4 2025-11-20 18:54:01 -03:00
Bruno Lopes
96a65045e9
build/linux: Use gamepads and pen-drive permissions on Flatpak
Closes: GNOME/gimp#14060
2025-11-20 18:52:31 -03:00
Jehan
1e800f51a7 app: fix broken #if test.
Argh! Fixed too quick and completely missed to transform the `ifdef` in
`if defined()` to add a second test.
2025-11-20 22:14:28 +01:00
Jehan
229c835d59 Issue #15239: link Layers not monitored on Windows.
MR glib!4901, backported as glib!4912, will be available in version
2.86.3. Let's keep the workaround so that link layers work without
having to bump the minimum requirement, but add a GLIB_CHECK_VERSION
test. This way, it will be clear that we have to get rid of this part of
the code even if we bump the GLib requirements years ago, when we'll
have completely forgotten about this issue.
2025-11-20 22:12:20 +01:00
Alx Sa
84fb38ab72 actions: Fix deleting single items in Doc. History
Resolves #15349
4812fddc adds the ability to delete multiple items
at once. However, the limit to delete was accidentally
set to greater than 1, rather than 0. This patch fixes
this mistake.
2025-11-20 14:53:31 +00:00
Sabri Ünal
c8d7aa0814 widgets: Provide context for "New Layer" string
The "New Layer" string used without plural and with plural which
causes a warning in xgettext.

This patch partly fixes: #15264
2025-11-20 08:15:28 -03:00
Alx Sa
6a37900610 actions, file: Don't require selected layers for export
As of 443947c6, we no longer require passing
the selected drawables to the export plug-ins
(as each plug-in now grabs those from the
image itself).
Therefore, we can remove the restriction that
there must be a selected layer before you
can export or save an image.
2025-11-19 22:18:29 +00:00
Bruno Lopes
3162dd6428
build/windows: Fix .NET runtime installation when msstore-cli and pwsh diverge 2025-11-19 15:25:34 -03:00
Jehan
4a648b6639 meson, INSTALL: add some note about max version for GEXiv2 in INSTALL. 2025-11-19 16:02:39 +01:00
Jehan
5a17cafa07 Issue #15340: forbid newer GExiv2 version, which broke API.
This should be unnecessary since GExiv2 did the break properly by
renaming files (making it possible to install side-by-side an older
version of GExiv2 and a newer version). But some packagers are wrongly
renaming the .pc file, tricking our build system into accepting the
newer incompatible libgexiv2.

So let's add an additional test, explicitly forbidding newer GExiv2.
We'll move on to the new version when we'll be ready. For the time
being, there is a reason why files were renamed and packagers should not
force incompatible versions to fit.
2025-11-19 15:23:01 +01:00
Bruno Lopes
525242c53f
build/linux: Update openjph module to 0.25.3 2025-11-19 05:47:38 -03:00
Bruno Lopes
2f29593164
build/windows: Update summary and description on MS Store too
Following baa68ac2
2025-11-18 21:02:49 -03:00
Bruno Lopes
b0844c0404
build/windows: Fix PowerShell 6+ script block on MSIX script 2025-11-18 18:59:05 -03:00
Yuri Chornoivan
1dfdee9783 Update Ukrainian translation 2025-11-18 20:48:49 +00:00