Commit Graph

42700 Commits

Author SHA1 Message Date
Ell
7313686192 app: disregard composite space in non-union alpha-only layer modes
In gimp_layer_mode_get_format(), disregard the requested composite
space when selecting the format, if the input layer mode is alpha-
only, and the requested composite mode is not UNION, since, in this
case, the layer mode doesn't combine the layer/backdrop colors, and
rather only modifies the alpha of one of them.  This allows us to
use the preferred format, avoiding gamma conversion.

This particularly improves the performance of the Eraser tool in
perceptual images.

(cherry picked from commit a5962e4049)
2019-05-24 01:43:26 -04:00
9501d63b20 plug-ins: big formatting and indentation cleanup in file-dds
Also change the license to GPL 3 or later, like all other files.

(cherry picked from commit 2a48a5f868)
2019-05-23 14:35:44 +02:00
Ell
275c2f9978 app: don't show result-size warning when transforming a selection
In gimp_drawable_transform_get_effective_clip(), always return
RESIZE_CLIP when the input drawable is the image mask, since the
presence of a selection doesn't matter in this case.  This avoids
erroneously displaying a result-size warning when transforming the
selection using any of the selection tools.

(cherry picked from commit 1c91578bb2)
2019-05-21 08:19:26 -04:00
12b101b31c Update Catalan translation 2019-05-20 18:31:02 +02:00
0b6c0b38f2 Update Catalan translation 2019-05-20 18:29:58 +02:00
Ell
28a0d91fd5 configure.ac: improve compiler version string escaping
In configure.ac, improve backslash escaping in the compiler
version string.  Backslashes are currently not properly escaped in
our Windows builds, leading to spurious (and, in particular, non-
UTF8) characters in the compiler version string.

(cherry picked from commit 04f9281bdd)
2019-05-20 03:09:24 -04:00
Ell
0fdf6c2289 app: initialize GimpBacktrace earlier on
Initialize GimpBacktrace earlier on in the startup process, so that
the Windows backend installs the thread-name exception handler
early enough to catch threads created before app_run() (in
particular, the GEGL worker threads).

(cherry picked from commit 853d91b8e4)
2019-05-19 10:50:02 -04:00
Ell
b0f6996e61 app: fix indentation in gimppaintbrush.h
(cherry picked from commit 86a7c053cc)
2019-05-15 13:33:04 -04:00
Ell
eb8ab63462 app: in GimpPaintbrush, reuse existing paint buffer
In GimpPaintbrush, avoid refilling the paint buffer at each dab if
the paint color/pixmap hasn't changed, as gimp_paint_core_paste()
no longer modifies the buffer since the commit before last.

Additionally, fix color-from-gradient dynamics when the image has a
profile.

(cherry picked from commit edc99531e6)
2019-05-15 10:55:30 -04:00
Ell
ea693288d3 app: add gimp_brush_core_get_brush_pixmap()
In GimpBrushCore, replace the private
gimp_brush_core_transform_pixmap() function with a public
gimp_brush_core_get_brush_pixmap() function, which, similarly to
gimp_brush_core_get_brush_mask(), returns the transformed brush
pixmap, and can be used by subclasses.

(cherry picked from commit fcd19a2aeb)
2019-05-15 10:54:56 -04:00
Ell
24e956714c app: don't modify paint buffer when pasting to canvas
We now have enough machinery in gimppaintcore-loops to avoid
modifying the paint buffer in gimp_paint_core_paste() in the no-
applicator case, by using the same set of algorithms as
gimp_paint_core_replace().  Other than reducing the number of
different code paths we have, this is both more efficient, and
allows us to reuse the paint buffer across dabs, as done in the
following commits.

Implement gimp_paint_core_replace() in terms of
gimp_paint_core_paste().  We keep the two functions separate, since
their implementation is still differnet when using an applicator.

Suppress the paint-buffer-modifying algorithms in
gimppaintcore-loops, but keep them around; using the same logic for
normal painting as we use for REPLACE painting is possible due to
the fact that all our current non-REPLACE modes treat alpha values
and mask values interchangeably.  In the future we might have modes
that distinguish between alpha and mask values, requiring the old
algorithms.

(cherry picked from commit f24bca5156)
2019-05-15 10:54:55 -04:00
a526bacbad Update Catalan translation 2019-05-14 19:41:47 +00:00
6d6bf8ec72 Issue #3140 - Export as DDS dialog does not have an Export button
(cherry picked from commit d7a4d5c6a8)
2019-05-13 20:36:32 +09:00
071b560fee Update Polish translation 2019-05-12 15:05:54 +02:00
64f67894eb Update Turkish translation 2019-05-12 08:13:03 +00:00
31ee6864bd Update Turkish translation 2019-05-12 08:11:12 +00:00
ae7f794335 Update Turkish translation 2019-05-12 08:10:52 +00:00
692e09c119 Update Turkish translation 2019-05-12 08:08:49 +00:00
Ell
25721e39e6 app: in GimpBrushCore, free old paint buffer before allocating new one
In gimp_brush_core_get_paint_buffer(), when allocating a new paint
buffer, clear the old buffer *before* allocating the new one, to
reduce the amount of simultaneously allocated memory.

(cherry picked from commit bea1a44672)
2019-05-11 05:14:32 -04:00
Ell
3097978f4e app: in GimpDashboard, improve legend logic
(cherry picked from commit 088827e563)
2019-05-11 05:14:31 -04:00
e7d9344880 app, libgimp, pdb: s/procesures/procedures/
While we are at it, another typo was missed.

(cherry picked from commit 45f37b9b63)
2019-05-10 01:42:29 +09:00
ce92efa82e Add a few more misc. source comment typos
(cherry picked from commit 1c91b8d97e)
2019-05-10 01:42:22 +09:00
9a60382f69 Misc. typos
Found via `codespell`

(cherry picked from commit 86edc31b11)
2019-05-10 01:42:12 +09:00
6c1199a4d4 desktop: prepare an AppData release tag for 2.10.12.
(cherry picked from commit f4c6fd0ee4)
2019-05-09 12:38:29 +09:00
616838e1c6 Update Catalan translation 2019-05-08 20:40:51 +00:00
168080fc5c Update Catalan translation 2019-05-08 20:36:54 +00:00
635b33837e Update Catalan translation 2019-05-08 20:34:21 +00:00
Ell
89495f457d app: add tile-alloc-total variable to the dashboard
Add a tile-alloc-total varaible to the dashboard's memory and misc
groups, showing the total amount of memory used by the tile
allocator (see commit
gegl@137e66e45138e8316f6403e53e8aa9a02ad523e7.)

(cherry picked from commit cf54f790fd)
2019-05-08 04:22:50 -04:00
Ell
cb4e9b92bc app: in GimpDashboard, don't show legend for groups with no meter
in GimpDashboard, don't show field legend colors in groups without
a meter.

(cherry picked from commit 8434ae42a3)
2019-05-08 04:22:49 -04:00
Ell
ec067b83ad configure.ac: require GEGL >= 0.4.16
(cherry picked from commit 29d575c033)
2019-05-08 04:22:48 -04:00
Ell
2d91f1ca02 Issue #3353 - Gimp 2.10.10 freezes while changing Background color ...
... in LCh colorspace

In gimptoolbox-color-area, when setting the context's background
color in response to a color-dialog change, block the right signal
handler, to avoid re-setting the color dialog's color, which would
cause the GtkAdjustment's "value-changed" signal (assuming it was
the source of the change) to be restarted if the new value doesn't
match the current one exactly, which can happen due to conversion
errors.

(cherry picked from commit c7a29e5f98)
2019-05-08 03:45:16 -04:00
7b1af1f0cb app: round curve point position when displaying it as int.
Int casting results to truncation. First this is a bit counter-intuitive
as we usually expect rounding to the nearest integer. Moreover with the
new GUI updates on curve and curve tool, we end up with a mismatch as
the new Input/Output spin buttons where indeed showing rounded integers
whereas the coordinate indicator was showing truncated integers.

Make all these show same rounded value.
2019-05-08 13:58:45 +09:00
5a3e9d1f00 Issue 1878: Eyedrop tool doesn't work when screen composing (KWin)...
... is enabled.

(cherry picked from commit b29d1ea6ff)
2019-05-07 19:09:56 +09:00
a7fcbf6122 Issue #835: warnings building with Clang.
Fix an error (introduced in commit 3bf2a3c166).

(cherry picked from commit 90bc9e10f1)
2019-05-07 18:54:05 +09:00
c5f7bac2ba plug-ins: follow the assigned profile TRC.
GIMP should not convert assigned profile to sRGB just because we stored
as linear on the XCF. In other words, we should not look at the image
precision to decide whether to export as linear (previously only 8-bit
linear images), but at the profile TRC. There are basically 3 cases:
(1) We don't save a profile, then convert to sRGB whatever the source
precision (because readers would assume sRGB for a no-profile jpeg).
(2) We save the default profiles: convert to sRGB because it's usually
a better choice for 8-bit formats and even working at 32-bit float
*linear* doesn't mean you want to export as 8-bit int *linear*. As the
image creator made no explicit export choice, we make an acceptable
default one.
(3) We save an explicitly assigned profile: keep the profile TRC, don't
convert!

Note that this apparently won't work perfectly right now, as GIMP
replaces the original TRC with the linear default TRC when converting to
linear. So the expected TRC is lost in such case when you have not
explicitly reset the correct profile. Yet this is on GIMP side and this
part of the issue should be fixed with the space invasion merge. For
now, this is how the plug-in should work.

This is based on my late discussion with Ell. Please everyone, and Ell
especially, review! :-)
2019-05-06 14:29:44 +09:00
eec0983e5d Update German translation 2019-05-05 14:48:28 +00:00
d85f3f7a1e Update German translation 2019-05-05 14:45:06 +00:00
2d2eed34cd Issue #3251 - Windows menu shows doc's old name not new
In windows-actions.c, connect to GimpDisplayShell's "notify::title"
and update the action label when it changes.

(cherry picked from commit c9b10ff3bf)
2019-05-05 16:28:40 +02:00
f16f3b56d4 app: don't dereference NULL image pointer
windows_menu_display_query_tooltip(): bail out if "image" is
NULL. Can't happen currently but did happen temporarily while hacking
on related code. Better safe than sorry.

(cherry picked from commit 3bf2a3c166)
2019-05-05 15:38:12 +02:00
Ell
2548dd1acf tools: in performance-log-viewer.py, fix deprecation warnings
(cherry picked from commit b1077a903e)
2019-05-01 15:34:48 -04:00
Ell
aa9d16a822 Issue #3306 - Memory leak using Crop tool
In gimp_canvas_passe_partout_get_extents(), free the inner region
after XORing it with the outer region.

(cherry picked from commit 84e183e5ed)
2019-04-30 16:47:08 -04:00
Ell
504a632433 Issue #3304 - Invalid write when halting filter tool with controller
In GimpFilterTool, properly clean up the controller's widget weak-
pointer and signal-handlers upon destruction, to avoid invalid
memory access when the widget is destroyed, if the widget outlives
the controller.

(cherry picked from commit 068df34a27)
2019-04-30 16:47:07 -04:00
Ell
3e2738e944 app: in gimp-gegl-nodes, set underlying operation
In the vairous gimp_gegl_create_foo_node() functions, set the
parent node's underlying operation node, so that
gimp_gegl_apply_cached_operation() avoids duplicating the source
buffer when applying these nodes (all underlying operations are
currently point ops.)

(cherry picked from commit 928e5957e3)
2019-04-30 14:32:21 -04:00
a0f1f93e85 Update Polish translation 2019-04-28 16:19:40 +02:00
3e1e1f2d1b Issue 2949: Newly Installed Fonts not Registering.
Apparently Microsoft added just recently the feature to install user
font (as opposed to system-wide fonts), without administration rights
(yes, only now, how crazy is that?). Right now GIMP does not see fonts
there.

We have an upstream report at fontconfig where such a default search
path should happen.
See: https://gitlab.freedesktop.org/fontconfig/fontconfig/issues/144
Until it gets fixed there, let's just add the user fonts dir ourselves
in GIMP. This code should get killed later.

Notes:
- I renamed various DEFAULT_* data macros to GIMP_DEFAULT_* because
DEFAULT_PALETTE was conflicting with another macro in Windows API!
- Also I removed the DATADIR macro set under app/config/ because it is
also conflicting and anyway we use it in no files on this level.
- This is not perfectly tested on Windows. Please everyone with Windows
access, could you build and test if it works fine before release?

(cherry picked from commit 88f97aedef)
2019-04-28 22:59:09 +09:00
c03f16caf2 Issue #3309: Translation of gimp installer for MS Windows.
Several of our own translations of the Windows installer are unused
because Inno Setup corresponding translations are marked "unofficial".
This mostly means that the language files for these are probably old and
unmaintained, hence outdated. And these files are not bundled together
with Inno Setup release (though still hosted in their repo).

Nevertheless it doesn't make sense that we would just waste the work of
our translators here. Maybe Inno Setup localization is not complete, so
what? At best it could even encourage translators to contribute upstream
to Inno Setup. Let's just enable all our current localizations of the
installer and see how it goes!

(cherry picked from commit 01f258faec)
2019-04-28 22:59:08 +09:00
c009de14ac plug-ins: fix TIFF linear export.
The export code was checking the existence of a profile variable which
was never set. In other words, it seems we were always converting TIFF
pixels to non-linear, even when we were also exporting a linear profile.

Note that is not useful anymore to check profile existence as we now use
the effective profile (which always exists). So we just have to check if
the "save profile" option is on.

(cherry picked from commit 062195117c)
2019-04-28 22:59:08 +09:00
Ell
dd2632bc85 app: flush image when committing free-select tool
In GimpFreeSelectTool, flush the image when committing the tool, if
the seletion is created at the time of the commit (i.e., if the
polygon is not closed prior to the commit).

(cherry picked from commit 71c624c5ab)
2019-04-26 03:37:19 -04:00
ee7419cb01 Update Hungarian translation 2019-04-26 05:56:55 +00:00
38c1ee315d Update Hungarian translation 2019-04-26 05:53:25 +00:00