Commit Graph

48258 Commits

Author SHA1 Message Date
75f9bdccbb libgimpwidgets: add back some GEGL prop special-casing in…
… gimp_prop_spin_scale_new().

This was forgotten when moving the code to libgimpwidgets in commit
7056f1b960. Thanks to Thomas Manni for noticing.
2022-04-09 21:53:32 +02:00
78fceca353 libgimpwidgets: GimpSpinScale header was not listed. 2022-04-09 18:35:15 +02:00
a97d9156b0 Update Russian translation 2022-04-09 15:31:50 +00:00
90e2af7c74 Update Icelandic translation 2022-04-08 15:38:15 +00:00
b502b54041 NEWS: update. 2022-04-07 23:09:13 +02:00
f4e640cef1 Update Catalan translation 2022-04-07 22:23:48 +02:00
f0aad6c9b2 Update Slovenian translation 2022-04-07 19:13:07 +00:00
c995e37ed3 Update Icelandic translation 2022-04-07 11:29:17 +00:00
9cfb24070f Update Icelandic translation 2022-04-07 10:26:33 +00:00
edcbf18fe6 app: Implement exclusiveness of zoom and rotate gestures
Performing zoom and rotation at the same time is inconvenient because
most of the time the user will want either zoom or rotation. This can be
solved by recognizing a "significant enough" zoom or rotation change
initiated by the gesture recognizer and then ignoring the other gesture.
2022-04-06 18:50:25 +00:00
e8cf57f157 app: Implement canvas support for touchpad gesture rotation by pinch 2022-04-06 18:50:25 +00:00
182bb56953 Update Icelandic translation 2022-04-06 18:48:21 +00:00
0ae11f02b6 Update Icelandic translation 2022-04-06 18:19:20 +00:00
9609b96a8f Update Icelandic translation 2022-04-06 16:19:26 +00:00
6dcd1cad7a Update Dutch translation 2022-04-06 15:53:25 +00:00
c45ea0c3d8 Update Icelandic translation
(cherry picked from commit cc6af232f0)
2022-04-06 13:15:50 +00:00
e7cdc80c2e Update Spanish translation 2022-04-06 11:04:22 +00:00
8ceac59c53 Update Portuguese translation 2022-04-05 21:46:34 +00:00
4a42a26e1f Update Ukrainian translation 2022-04-05 18:41:38 +00:00
5b39bc963d app: fix #3928 GIMP cannot open .xcf
GIMP stopped trying to read the XCF as soon as an invalid parasite was
encountered. However, in this specific case only the parasite data is
invalid, while the rest of the image is not corrupt.

Instead of terminating when we see a corrupt parasite, we skip to the
offset after the parasite. This may still be corrupt, but we can handle
that correctly, see e.g. the XCF in bugzilla issue 685086, which was
the reason of some of the previous changes.

Additionally:
- We add some logging to make it easier to handle future issues in this
  area.
- We add tests for a NULL parasite name, and for reading a different
  amount of parasite data than we expected. In both cases we return
  NULL instead of a parasite.
2022-04-05 13:11:22 +00:00
eb58b277d2 app: Add drag-to-zoom speed preference
Adds the new configuration option "drag-zoom-speed" to adjust the rate
at which mouse movement can zoom the canvas, ranging from 25% to 300%
of the base rate and applying to both drag-to-zoom modes.
This option can be found in the preferences dialog as:
  Image Windows -> Zoom & Resize Behavior -> Drag-to-zoom speed
2022-04-05 12:31:11 +00:00
4cffd91af4 app: Halve the rate of distance-based drag-to-zoom scaling
Reduces the rate from +/- 1% of the current scale per pixel, to 0.5% to
allow for more fine control while zooming.
2022-04-05 12:31:11 +00:00
505a78e715 app: Add option to re-enable previous drag-to-zoom behavior
Adds a new configuration option "drag-zoom-mode" to choose whether to
zoom by distance of movement (newly added) or by duration of movement
(previous behavior) when zooming via dragging the mouse, defaulting to
distance.
This option can be found in the preferences dialog as:
  Image Windows -> Zoom & Resize Behavior -> Drag-to-zoom behavior
2022-04-05 12:31:11 +00:00
8b1025919f app: Smoother zooming while dragging with the mouse
Changes the behavior of gimp_display_shell_scale_drag() to factor in 
the distance dragged, rather than just scaling a flat +/- 10% for each 
detected movement event. The factor by which to change the scaling is 
also altered from 10% at each movement event, to 1% compounded for 
each pixel of distance dragged.  
This makes zooming via Ctrl + Middle Click or Ctrl + Spacebar behave 
more consistently and less jittery versus the previous method, while 
offering more fine grained control.
2022-04-05 12:31:11 +00:00
cadf485299 libgimpbase: fix #8025 Slow loading of XCF files...
with many Xmp.photoshop.DocumentAncestors tags

This is similar to #7464, but in this case the XMP metadata was already
included in an XCF image.

We check for the occurrence of Xmp.photoshop.DocumentAncestors and stop
handling values when there are more than a 1000.

It would be easier to just check length for all tags and always
ignore when there are more than a 1000 values.
But in that case we would need to be sure there are no valid reasons for
tags to occur more than a 1000 times. So let's just limit it to this
specific tag.
2022-04-04 16:52:10 -04:00
6e87466b6b Update dependencies
- cairo 1.17.4 -> 1.17.6
- graphviz 2.50.0 -> 3.0.0
- lcms 2.12 -> 2.13.1
- OpenBLAS 0.3.19 -> 0.3.20
- openexr 2.5.7 -> 2.5.8
- poppler 22.01.0 -> 22.03.0
- SuiteSparse 5.10.1 -> 5.11.0
2022-04-02 18:48:31 +00:00
54f7f695f3 Replace C-style comments with JSON keys ignored by Flatpak
JSON does not support comments and their support in Flatpak is possible
through use of json-glib[0]. This is problematic in fully utilizing
flatpak-external-data-checker because its JSON writer does not respect
existing comments. To solve this, make use of Fltpak's specific
behaviour where a "//" key is explicitely ignored while parsing[1].

[0] flatpak/flatpak-builder#363 (comment)
[1] 0e98b7ae19/src/builder-utils.c (L1250)
2022-04-02 18:48:31 +00:00
baaba0e0d1 Add version constraints for OpenEXR and mypaint-brushes
OpenEXR and mypaint-brushes offer next major versions. GIMP is probably
not ready for the changes in OpenEXR and mypaint-brushes are not yet
finalized. Put their versions under constraints so that automatic PR
creation for dependency bumps can be enabled.
2022-04-02 18:48:31 +00:00
6999b04525 Update Dutch translation 2022-04-02 18:35:23 +00:00
aab8218602 NEWS: update. 2022-04-02 17:27:54 +02:00
649687b48b Revert "build: do not build file-mng for 32-bit Windows."
This reverts commit 6ae69f5e84.

Our 32-bit file-mng build has been fixed normally now. I should have
removed this commit before merging!
2022-04-02 17:27:04 +02:00
b8156fdf2b Update French translation 2022-04-02 14:04:37 +00:00
69e81e3940 Merged French translations from gimp-2-10 branch 2022-04-02 13:42:32 +02:00
d67c73f124 Update French translation
(cherry picked from commit 1c7e073379)
2022-04-02 10:18:29 +00:00
3372dbaf38 Fix -Wdiscarded-qualifiers in gimp_tool_button_update.
[2207/2321] Compiling C object app/widgets/libappwidgets.a.p/gimptoolbutton.c.o
../app/widgets/gimptoolbutton.c: In function ‘gimp_tool_button_update’:
../app/widgets/gimptoolbutton.c:905:19: warning: initialization discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
  905 |       gchar *id = gimp_object_get_name (tool_info);
      |                   ^~~~~~~~~~~~~~~~~~~~
2022-04-01 18:17:12 +00:00
2cfe18fcf7 meson: not discouraged anymore on Windows. 2022-04-01 20:02:46 +02:00
588d11dc5c INSTALL: update with new recommendation of meson for Windows. 2022-04-01 18:11:55 +02:00
b83450f9e2 configure, meson: the build tool depends on very old glib.
For the build tool, we really don't need a recent GLib. Checking the few
function docs, GLib 2.2 is fine, which (looking at git logs) means any
version after 2002. At this point, it's nearly unneeded to add a minimum
required version, but let's be thorough.

Anyway really no need to block a build if we have an old build GLib,
which is completely enough, as long we have the recent host GLib.
2022-04-01 18:11:55 +02:00
1c730ce141 meson, plug-ins: further fix the no-pkg-config test for libmng.
As suggested by jeremyd2019 and Biswa96 of MSYS2 project, defining the
MNG_USE_DLL macro would trigger libmng header code to fix the calling
convention. This way, even the old detection code now works with Windows
32-bit.

The reason why we still stick to this old detection code is that the
pkg-config is likely not everywhere (e.g. in Debian package libmng-dev,
there is no `.pc` file). So the pkg-config test is good but we still
definitely need to keep our fallback more old-school test for this
dependency.

See this comment in particular:
https://github.com/msys2/MINGW-packages/issues/11136#issuecomment-1084627263

Note: I am unsure yet how to apply the same trick on the autotools test
because AC_CHECK_LIB() would allow us to tweak the cflags to define a
macro, but we also need to include libmng.h header, otherwise the
calling convention tweak is not run. It doesn't look to be feasible with
the autoconf macro, or at least I haven't found how yet.
2022-04-01 18:11:55 +02:00
9242cbdb66 libgimp: fix linking in autotools when cross-compiling.
It was working for native Linux and Windows builds, but not when
cross-compiling for Windows.
2022-04-01 18:11:55 +02:00
1866b4c5f8 configure, tools: colorsvg2png must be built as native build executable. 2022-04-01 18:11:55 +02:00
e866cb7c9c configure, libgimp: disable GIR build when cross-compiling and…
… add --enable-force-gir-cross-compilation to force it anyway.

Similar to what we already have in the meson build.
2022-04-01 17:33:38 +02:00
8a6613bf78 configure: prioritize pkg-config check for libmng.
Make the code similar to the change we made in meson: first pkg-config,
then a basic library check with actual function test.
2022-04-01 17:33:38 +02:00
c9a34b88a6 meson: fix libmng test.
The main problem was that file-mng would fail to build on Windows 32-bit
even though the lib was detected. Actually this is because there are
several possible calling conventions and this can be handled by defining
the proper macro. This macro is well defined in the pkg-config file, but
our build was not using it.

So let's change the test to use pkg-config first. If this fails, we
fallback to more basic method of finding the library. Additionally we
augment this fallback test with a function check (as we do already in
autotools) so that our configure test is reliable: we verify that the
lib is there **and** that symbols are visible. Otherwise we'd end up
with a successful configure test followed by a broken build (as until
now in meson).

See the nice explanation here and in next messages:
https://github.com/msys2/MINGW-packages/issues/11136#issuecomment-1083711452
2022-04-01 17:33:38 +02:00
fbb484c56b build: no need to build the reference API for the Windows build.
It looks like the gi-docgen build is broken on Windows (though the CI
does show neither stdout nor stderr output, just a failure without
message). This should be fixed, but it's not necessary for the installer
at least.

Note: on autotools, the gi-docgen step works fine on Windows.
2022-04-01 17:33:38 +02:00
6ae69f5e84 build: do not build file-mng for 32-bit Windows.
We didn't need to do this on the autotools build, simply because the
configure step is much more elaborated there, and was checking for the
header file as well as well as a working mng_create() API. But since
libmng was broken, the test failed, so we didn't need to disable it.

By the way, we should check when the `.pc` file was added, because if it
was after the required version, then the meson test is very wrong. It
should not have been different from the autotools file.
2022-04-01 17:33:38 +02:00
5703b89735 modules: fix one more broken meson rule for directx on Windows.
Fixes:

> ../modules/meson.build:87:2: ERROR: '-lrpcrt4' is not a target.
2022-04-01 17:33:38 +02:00
b27dd3ddaa meson: fix broken directx declare_dependency().
The `link_with` arg only accept library targets which are the libraries
we build ourselves, whereas dependency objects (such as returned by
cc.find_library()) must be in the `dependencies` arg.

Yes me too, making a difference here kind of stun me a bit and I don't
get why it's needed, but so be it. Since this code dates back from the
original commit, I assume it means the directx option just never worked
with meson on Windows.

Fixes:

> ../meson.build:847:2: ERROR: Entries in "link_with" may only be self-built targets,
> external dependencies (including libraries) must go to "dependencies".
2022-04-01 17:33:38 +02:00
354b0c22d8 build: let's now build the Windows installer with meson.
The meson build still has a bunch of issues and build bugs compared to
the autotools build, nevertheless the last blocker issue was dealt with
a few days ago (PDB source generation).

Moreover since the meson build on Windows especially makes such dramatic
difference, in terms of build speed, this is a big improvement for
Windows contributor's comfort, and as such is one less barrier of entry.
Anyway I believe that most Windows developers build GIMP with meson now
so sticking on autotools on this platform is just counter-productive.

This is why it was decided to now make meson the recommended build
system on Windows, as a further step toward a move to meson. It is still
not the recommended build system on the other platforms yet.
2022-04-01 17:27:02 +02:00
a86040b176 gitlab-ci: Set container explicitly to docker
Since the latest release of Kaniko, it fails to detect the container
runtime it runs within.
2022-04-01 14:43:33 +02:00