Commit Graph

40426 Commits

Author SHA1 Message Date
8cc1258444 Update Polish translation 2018-04-14 19:11:16 +02:00
6d6da684f1 app: add handling of CIE Lab blend space to gradient
Using CIE Lab yields gradients that more closely resemble the perceptual
gradients but without the gamma based blending problems of linear-RGB / CIE
XYZ.
2018-04-14 18:12:30 +02:00
e007da2604 libgimpbase: add GIMP_GRADIENT_BLEND_CIE_LAB value to enum 2018-04-14 18:11:38 +02:00
f660d614f2 NEWS: keep up-to-date. 2018-04-14 16:18:54 +02:00
Ell
45c172a885 Bug 795257 - Segmentation fault crash using the clone tool
Commit f5cb1fed85, which performed
brush outline generation in GimpPaintTool in synchrony with the
paint thread, wasn't enough, since GimpSourceTool could still call
gimp_brush_tool_create_outline() directly during its
GimpDrawTool::draw() method, leading to the same race condition
when executed concurrently with the paint thread.

Partially revert the above commit, so that outline generation is
handled as before, as far as GimpPaintTool is concenered.  Instead,
add GimpPaintTool::{start,end,flush}_paint() virtual functions; the
first two are called when starting/ending painting using the paint
thread, while the third is called during the display-update
timeout, while the main thread and the paint thread are
synchronized.  This allows subclasses to perform non-thread-safe
actions while the threads are synchronized.

Override these functions in GimpBrushTool, and cache the brush
boundary in the flush() function.  Use the cached boundary in
gimp_brush_tool_create_outline() while painting, to avoid the above
race condition, both when this function is called through
GimpPaintTool, and through GimpSourceTool.
2018-04-14 10:14:58 -04:00
3ac794816a Bug 724692 - Canvas rotation stuck with specific order of actions.
Commit b279c2d217 was breaking a specific use case, which I oversaw:
when space bar activates the move tool, you may want to release the
space bar while mouse button is pressed, and expect to still be able to
move the layer/selection/guide, but releasing space was stopping the
move immediately. The move tool must only be deactivated when both space
and button 1 are released, and the move itself must continue as long as
button 1 is pressed (when started while space was pressed).

As a nice side effect of this commit, panning and canvas rotation are
also improved since now they can be continued while releasing space
(respectively shift-space) if mouse button 1 was pressed, and up until
the mouse button is released. Pressing space again, then releasing the
mouse, back and forth, also work as expected (i.e. move tool stay
activated though the move stops; and panning or rotation continue).

Of course now we don't get anymore panning/rotation stuck while neither
space nor mouse buttons are pressed (which was the original bug). At
least one of these need to stay pressed for panning/rotation/move to
stay activated. And initial activation is obviously always through
(shift-)space only.
2018-04-14 15:36:08 +02:00
6b0f5136e0 app: use "g" for gradient shortcut.
It makes more sense than "l" as a default, and "g" was currently unused.
So not much left to ponder.
2018-04-14 14:27:36 +02:00
5e98dade14 configure/app: depend on GEGL 0.3.32 2018-04-14 12:38:43 +02:00
680da3ada8 Update Polish translation 2018-04-14 10:23:37 +02:00
c3f98cccbd app: fix menu path for gradient tool s/Blen_d/Gra_dient/.
This one string was still using the old name, which appeared in menus or
in the shortcut list.
2018-04-14 04:09:29 +02:00
063a83c1ec app: migrate configuration files for s/Blend/Gradient/ tool renaming.
This includes migrating properly any custom shortcut (menurc), as well
as a few strings in tool-presets/, and finally "gimp-blend-tool" in
contextrc and devicerc.
File toolrc also has some occurrences, but we are already skipping it
anyway, same as whatever is under tool-options/.
Hopefully I missed nothing.
2018-04-14 04:01:32 +02:00
257eb95258 app: simpler and better-aligned packig in gimpviewablebox 2018-04-14 02:19:50 +02:00
4705684b0e po: fix typo in POTFILES.in 2018-04-14 02:18:56 +02:00
5f6dfc7617 app: add GimpGradientBlendColorSpace parameter to gimp_drawable_gradient() 2018-04-14 01:34:50 +02:00
b0beb0197a Bug 795230 - Rename Blend tool and provide PDB compatibility
Rename the tool and its options, and the gradient sub-struct of paint
options.
2018-04-14 00:52:20 +02:00
4f2e078ccb Bug 795230 - Rename Blend tool and provide PDB compatibility
Rename gimpdrawable-blend.[ch] to gimpdrawable-gradient.[ch]
2018-04-13 23:43:27 +02:00
b55c116755 Bug 795230 - Rename Blend tool and provide PDB compatibility
Rename GimpOperationBlend to GimpOperationGradient.
2018-04-13 23:36:16 +02:00
ea474f5e78 Bug 795230 - Rename Blend tool and provide PDB compatibility
Rename the tool cursor: blend -> gradient in filename and enum value.
2018-04-13 23:27:03 +02:00
99ea6f91e2 app: fix the build after the GimpGradientBlendColorSpace commit
Somehow, gimppalette-import.c was not rebuilt on my system,
leaving one gimp_gradient_get_color_at() unchanged.
2018-04-13 23:12:21 +02:00
ebb9d83d63 Bug 795230 - Rename Blend tool and provide PDB compatibility
Step 1: rename the icon to GIMP_ICON_TOOL_GRADIENT (gimp-tool-gradient)
2018-04-13 23:07:08 +02:00
bf49b47620 Bug 795207 - Add color space to blend(gradient) tool options
First WIP commit, adds:

- enum GimpGradientBlendColorSpace { RGB_PERCEPTUAL, RGB_LINEAR }
- linear blending mode for gradient segments
- tool options GUI for the blend and paint tools which use gradients
2018-04-13 22:33:16 +02:00
3cb7fc86aa NEWS: update 2018-04-13 19:58:45 +03:00
Ell
ff34965faf Bug 795177 - seg fault with clone tool
Don't flush the source pickable in gimp_source_core_motion(), as
this introduces a race condition between the paint thread and the
display-update timeout, when the source pickable is the image
containing the target drawable.

Flushing the source pickable shouldn't be currently necessary, and
either way, should happen during initialization.
2018-04-13 10:03:20 -04:00
Ell
65c7ce5e7d build: add Chinese (China) translation to the Windows installer 2018-04-13 08:16:50 -04:00
6785a689cf po-windows-installer: add Chinese (China) translation 2018-04-12 22:51:45 +08:00
2255f09fac Update Chinese (China) translation 2018-04-12 22:22:28 +08:00
b91742a84f Bug 795185 - Corrective rotation guides are incorrect in GIMP 2.10.
Most expected behavior in normal transform is to see the preview,
whereas you usually don't want to see it in corrective mode. In 2.8
actually, it seems like it was not even possible to see the image
preview in corrective mode.

So let's set "show-preview" to these defaults when "direction" property
is updated.  It is still possible to change it manually for any specific
use cases (i.e. you can hide the preview in normal transform, and
oppositely you can show it in corrective transform), but at least now
defaults are sane.
2018-04-12 12:13:38 +02:00
3841d3d537 Bug 795185 - "Show image preview" works differently if checked before...
... or during rotation.
If checked before rotation, it works as expected, i.e. one sees only the
original or the rotated image.
While rotation is in progress: if unchecked, one sees neither the
original nor the image preview; if checked, one sees both original and
rotated preview.
Let's make the behavior consistent and only show exactly one version at
all time.
2018-04-12 10:03:13 +02:00
421c9fc51a Bug 795050 - ‘strncpy’ output truncated before terminating nul
Use memcpy() because we really dont' want to copy the terminating nul,
but we don't want a warning either.
2018-04-11 11:31:02 +02:00
Ell
5b8b33dad7 app: invert zoom mapping in gegl:panorama-projection gyro controller 2018-04-11 04:53:26 -04:00
Ell
5430e7794c app: various fixes in GimpToolGyroscope
Invert zoom adjustment using the mouse or the keyboard when in
inverse mode.  Take zoom factor into account when panning using the
keyboard.  Fix motion cancelation.
2018-04-11 04:53:26 -04:00
7bb0821977 Update Polish translation 2018-04-11 10:17:46 +02:00
1993d8a4a7 Bug 768872 - Tiling Symmetry doesn't wrap vertical coordinates over...
... edges for MyPaint brush.

Adding the concept of "stateful" symmetry when a tool needs to make sure
of corresponding stroke numbers and orders while painting (i.e. stroke N
at time T+1 is the continuation of stroke N at time T). This is the case
for the MyPaint brushes and the ink tool.
2018-04-11 02:09:21 +02:00
12ec7976d5 NEWS, desktop: small fixes in NEWS and in <release> appdata. 2018-04-11 01:15:52 +02:00
0a1dd37719 desktop: preparing a new <release> tag for 2.10.0 RC2. 2018-04-11 01:12:19 +02:00
4b725c6c03 NEWS: more updates 2018-04-11 01:07:38 +03:00
a627d47951 NEWS: update 2018-04-11 01:05:08 +03:00
9f55de0b25 Update Russian translation 2018-04-11 01:02:09 +03:00
087d2462bc configure/app: depend on babl 0.1.46 2018-04-10 23:29:41 +02:00
dd77b05967 2.10: updates for appdata 2018-04-10 21:18:09 +03:00
Ell
6453b371a9 app: fix status message of GimpToolGyroscope 2018-04-10 11:08:37 -04:00
f6255ae70b desktop: changes in appdata and 2.10 <release> now uncommented.
I was hoping others would review this <release> text before submitting
it to translators, but no such luck there. Anyway let's uncomment now
because translators need to get the text sooner than later if we want as
many localized version of the appdata text as possible at release.
Everyone if you want to review the English and the contents of this tag,
do it now!
2018-04-10 16:56:27 +02:00
Ell
6982533292 app: add custom GUI for gegl:panorama-projection
... which uses a gyroscope controller to control the op's rotation
angles and zoom.
2018-04-10 10:18:49 -04:00
Ell
8738d2f22b app: add a gyroscope controller to prop-gui
Add a gyroscope controller, providing a prop-gui interface to
GimpToolGyroscope.

Implement the gyroscope controller in GimpFilterTool.
2018-04-10 10:18:48 -04:00
Ell
634d5ae57d app: add GimpToolGyroscope
GimpToolGyroscope is a tool widget providing canvas interaction for
3D rotation.  The widget doesn't preset a UI, but rather
facilitates panning, rotation, and zoom, by dragging the canvas, or
using the keyboard.

Rotation is expressed using yaw/pitch/roll angles (performed in
this order).  A zoom factor can be specified, which affects the
magnitude of the rotation per distance traveled.  The widget can
operate in inverse mode, performing an inverse transformation.
2018-04-10 10:18:48 -04:00
Ell
2c1f1c507c app, cursors: add zoom cursor modifier
To be used by GimpToolGyroscope.
2018-04-10 10:18:48 -04:00
Ell
f81542e5c9 app, cursors: add rotate cursor modifier
To be used by GimpToolGyroscope.
2018-04-10 10:18:48 -04:00
ae6a7bf98f libgimpbase: improve multi-threaded stack traces.
Since commit bb52431cdd, we get multi-thread traces in functions
gimp_stack_trace_*(). Adding now the LLDB equivalent improvement.

Also adding the process and thread id information, from which the trace
order was made, atop the listing, as well as the thread list. This would
allow to easily find and associate the threads.
The problem is that sometimes the thread where we got a trace from may
not matter (for instance signals, even such as SIGABRT or SIGSEGV, seem
to sent a bit randomly to either the thread which provoked them or the
main thread; there is a bit of contradictory info on this when reading
on the topic, in my case I experienced this), in such case, getting all
thread stack is important to find the origin of the signal.
Other times it will highly matter, in particular when getting a trace
for a WARNING or CRITICAL. This information will help to discriminate
between thread traces.
2018-04-10 14:48:44 +02:00
4bc982b84a Bug 795123 - plug-in crash starts neverending loop.
Since commit 9c8a8ae576, we don't run gimp_quit(), which properly quits
the plug-in executable, to make sure that GIMP gets the information that
it crashed. Instead quit with `exit (EXIT_FAILURE)`.
2018-04-10 14:19:34 +02:00
3f95dc52d3 Bug 791519 - Unexpected selection from channel
Make sure a channel -> selection -> channel roundtrip never does any
gamma conversion.

In gimp_channel_duplicate(), make sure a created channel has the
right format, and the right data. Fixes selection -> channel.

When switching off quick mask, call gimp_item_to_selection() instead
if gimp_selection_load(), the latter was implementing a shortcut which
is now wrong.

Remove gimp_selection_load() which is now unused.

Unrelated: also remove gimp_selection_save(), it was an obvious
3-liner used only twice.
2018-04-10 02:00:23 +02:00