Make file_utils_uri_get_ext() public and use it instead of
strrchr(uri, '.'). Also add "xz" to the list of matched special cases,
and some cleanup.
(partial cherry pick from commit e99c0045a2)
If the selected item in a GimpContainerEntry is invalid, or else when the entry
is being updated, the text shows in red.
(cherry picked from commit 64fe3af1a9)
Don't try to switch to the move tool if the move tool is already active.
Also never bail out early from gimp_display_shell_space_pressed() so we
don't end up in an inconsistent state.
(cherry picked from commit 87584d2f82)
This patch adds a Dynamic for the 'Color From Gradient' option
and three Paint tool presets (Airbrush, Paintbrush, Pencil), which
use this preset.
new file: data/dynamics/Color-From-Gradient.gdyn
new file: data/tool-presets/Paint/Airbrush-Color-From-Gradient.gtp
new file: data/tool-presets/Paint/Paintbrush-Color-From-Gradient.gtp
new file: data/tool-presets/Paint/Pencil-Color-From-Gradient.gtp
modified: data/dynamics/Makefile.am
modified: data/tool-presets/Paint/Makefile.am
modified: AUTHORS
modified: authors.xml
...one image onto another
gimp_dock_window_display_changed(): make sure the "auto-follow-active"
logic works both ways: when the active image or display is changed in
a dockable, update the global context. Fixes multi-window mode.
gimp_context_real_set_display(): make sure a context's display and
image are always in a consistent state and never have a display that
is not display->image: when display is the same as context->display,
check that the context's image matches display->image, so that after a
gimp_context_set_display(), the context is consistent in all
cases. Fixes single-window mode.
(cherry picked from commit bacc9c9635)
by adding a local "factory_context" variable instead of calling
gimp_dialog_factory_get_context (dock_window->p->dialog_factory)
multiple times.
(cherry picked from commit 076f375e78)
This is not a bugfix, just to seamlessly pick the next commit...
Don't pass a NULL pointer to gimp_text_buffer_get_font_tag() because
it is dereferenced in a call to strcmp().
gimp_context_get_font_name() returns NULL when the selected text
includes spans with different fonts. Add the same special handling for
spans with inconsistent sizes too, and add comments that we should
have the same for the color.
Original patch from Massimo Valentini.
(cherry picked from commit 804313bbec)
This should fix crashes in which tag objects got accessed after they
were disposed, because they still were stored with the popup object.
(cherry picked from commit b109e05806)
strcpy() doesn't like overlapping strings and this causes other failures
in this unescaping code.
Also cleanup the code to follow our coding style.
(cherry picked from commit db95e20b0b)
We cannot simply randomy move the focus from e.g. a text entry back to
the canvas. Instead introduce global handling of "Escape" and a
"primary_focus_widget" that is always set the the image window's
active canvas. When Escape is pressed, move the focus to that primary
focus widget, or beep if it is already there. Text widgets still get
the key events before that logic and can consume the Escape.
(cherry picked from commit 5880685472)
Simplify the loops without any significant loss in performance, separating
the positive and negative X directions to treat each correctly. Fixes this
bug. (cherry-picked from commit faf2217811)
Use a temporary that is less expensive to refer to. Don't loop more
than necessary when comparing pairs. (Cherry-picked from master's
commit c83e7790bf)
This is a complete rework of the plug-in, the behaviour remains
unchanged.
The implementation spreads all visible layers into one contiguous
array, then applies a simplified rework of the legacy algorithm.
(cherry picked from commit 65d34b7b27)
Prevent gimp_coordinates_callback () to be called recursively
when x and y are chained.
One call puts all values in a consistent state, a recusive call can
cause side effects (calculations with rounded values)
(cherry picked from commit 24a2113170)
Fix handling of save errors in file-uri in two ways:
- don't try to check if saving to a directly mounted file succeeded,
the mount (e.g. via FUSE) might allow writing, but not stat()ing.
Instead, rely on the return value of gimp_file_save().
- for non-mounted files, provide a separate error message for the case
where the temporary file contains nothing, which is IMO useless
paranoia, but the check was probably added for a reason, so keep
it around.
(cherry picked from commit 7f31929bee)