Commit graph

42393 commits

Author SHA1 Message Date
Oleksii Samorukov
3adf4a4861 Fix plugin focus issues on osx
GTK/OSX does not automatically assign focus to the new windows (upstream 
issue), so activateIgnoringOtherApps is called. However, if it is called 
before gtk initialized it may cause number of focus issues.
2018-10-18 09:26:05 +02:00
Tim Sabsch
ee05ada0c4 Update German translation 2018-10-17 17:24:05 +00:00
Piotr Drąg
f0eabdc42f Update Polish translation 2018-10-16 21:08:05 +02:00
Marco Ciampa
d9ba60de4d Updated Italian translation 2018-10-16 16:06:39 +02:00
Ell
60c49c5682 Issue #2237 - export as, select file type (by extention) list problem
In gimp_file_proc_view_get_proc(), when there is no selected
procedure (which can happen, in particular, when searching the
list), return the "automatic" procedure and its corresponding name/
filter, if one exists, instead of bailing.

Additionally, in GimpFileDialog, use a match-all filter when
gimp_file_proc_view_get_proc() returns no filter, avoiding
CRITICALs/segfault.

(cherry picked from commit e26a220a6f)
2018-10-16 07:50:02 -04:00
Alan Mortensen
7d0d74912e Updated Danish translation 2018-10-15 14:14:59 +02:00
Alan Mortensen
efd1aca6fa Updated Danish translation 2018-10-14 20:14:18 +02:00
Michael Natterer
70611cb06a app: didn't push my latest version of the previous fix 2018-10-13 17:35:53 +02:00
Michael Natterer
130443a059 Issue #2210 - GIMP crashes on startup if usb mouse is present
In GimpDeviceInfo, make sure that the info->axes and info->keys arrays
always have info->n_axes and info->n_keys members. Also sync axes and
keys between GdkDevice and GimpDeviceInfo more often, and some
cleanup.

(cherry picked from commit 7adb6c26e5)
2018-10-12 20:18:23 +02:00
Alan Mortensen
e8f3751adc Updated Danish translation 2018-10-12 01:41:21 +02:00
Ell
65131b2c1b tools: fix performance-log viewer profile thread-filter
In performance-log-viewer.py, fix thread-state toggling in the
profile-view thread-filter popover, when not all threads are
included in the current selection.

(cherry picked from commit 43b492ff83)
2018-10-11 08:23:19 -04:00
Ell
b1cba6b142 app: always use libunwind for symbol names in GimpBacktrace Linux backend
In the GimpBacktrace Linux backend, always use libunwind, when
available, to find symbol names, even if dladdr() or libbacktrace
had already found one.  libunwind provides more descriptive names
in certain cases, and, in particular, full symbol names for C++
lambdas.

Note that, in some cases, this can result in a discrepancy between
the reported symbol name, and the corresponding source location.

(cherry picked from commit 72fc01742b)
2018-10-11 03:35:30 -04:00
Ell
397bbb29a9 app: fix gimp_wait() deadlock
In the GUI implementation of gimp_wait(), explicitly finish the
input-pipe async operation after the busy-dialog plug-in
terminates, to avoid the async callback function from being
repeatedly called, stalling the main thread.  Previously, this code
relied on gimp-parallel implicitly aborting the async operation,
but this is no longer the case since commit
4969d75785.

(cherry picked from commit 85b16b9eaa)
2018-10-11 02:26:08 -04:00
Ell
8c91206d55 tools: add performance-log-coalesce.py; use in performance-log-viewer
Add a new performance-log-coalesce.py tool, which groups together
performance-log address-map entries belonging to the same function
into a single symbol, by filling-in missing base symbol addresses.
The addresses are grouped such that each set of addresses
corresponding to a symbol of the same name, in the same source
file, are given the same (unique, but arbitrary) base address.
See the previous commit for why this is necessary.

This should work fine in most cases, however, for logs produced on
Windows, it can over-coalesce addresses belonging to different C++
lambda-functions in the same source file, since they all seem to be
given the same _FUN symbol name.

Use the new tool as part of the pipeline in performance-log-viewer.

(cherry picked from commit cb51ea981a)
2018-10-10 15:32:23 -04:00
Snehalata B Shirude
f314bbd515 Update Marathi translation 2018-10-10 18:22:20 +00:00
Ell
d0fdff7117 app: in GimpBacktrace Windows backend, avoid bogus symbol addresses
In the GimpBacktrace Windows backend, avoid reporting meaningless
symbol addresses when failing to retrieve meaningful ones.
Unfortunately, it seems that we never get symbol addresses for
symbols that have debug information, which negatively affects the
log viewer's call graph.  We're going to have to work around this.

(cherry picked from commit 52772cf3ff)
2018-10-10 10:02:09 -04:00
Ell
ca8bbd2e3d app: in GimpBacktrace Windows backend, set main-thread name
When initializing the GimpBacktrace Windows backend, set the name
of the current thread (which is assumed to be the main thread) to
the program's name, to match its name on Linux.  We normally rely
on the SET_THREAD_NAME exception to set thread names on Windows,
which isn't raised for the main thread.

(cherry picked from commit 52908f397f)
2018-10-10 10:02:09 -04:00
Marco Ciampa
58dccd6cf5 Updated Italian translation 2018-10-10 13:17:25 +02:00
Ell
93d1219507 app: improve description comment of GimpAsync
(cherry picked from commit ca6e4eb460)
2018-10-10 01:03:46 -04:00
Ell
15767a8896 Issue #2339 - Error while executing script-fu-ripply-anim
In ripply-anim.scm, correct the edge-type argument passed to
plug-in-displace.

(cherry picked from commit 5e6e979a00)
2018-10-09 19:31:27 -04:00
Ell
9f86b58a38 app: allow progressive execution of parallel async operations
In the gimp_parallel_run_async() family of functions, allow the
async callback to return without completing the async operation, in
which case the callback will be called again, until the operation
is either completed, or canceled, in which case it is aborted
(previously, returning from the callback without completing the
operation would cause it to be aborted.)  It is guaranteed that all
operations of the same priority will get a chance to run, even if
some of them contuinuosly return without completing.

This allows potentially time-consuming operations to yield
execution in favor of other same-priority operations, and, in
particular, of higher-priority operations, to avoid priority
inversion.  Essentially, this allows a simple form of cooperative
multitasking among async operations.

(cherry picked from commit 4969d75785)
2018-10-09 12:49:42 -04:00
Alexandre Prokoudine
64f881803a Update NEWS 2018-10-07 01:43:54 +03:00
Ell
e0e825580b Issue #2308 - Strange behavior when switching active layer during transform
Replace GimpTransformTool's 'drawable' field with an 'item' field,
and have GimpTransformGridTool set it to the active item, to which
the transformation is applied, during its initialization.  In
gimp_transform_tool_get_active_item(), return the value of the
transform tool's 'item' field, if not NULL, instead of the image's
active item.  This makes sure we apply that transform-grid tools
apply the transformation for the item for which they were
activated, even if the image's active item has changed.

(cherry picked from commit 3eaae58595)
2018-10-04 21:51:38 -04:00
Ell
32c2aa11df themes: fix check/radio buttons in tree views
Apply the check/radio-button style to GtkTreeView, so that
GtkCellRendererToggle picks the right check/radio-button graphic.
Otherwise, it falls back to a graphic that depends on the system
theme, and which may not play well with the current theme colors.

Note that this only affects the Dark theme; in the Light and Gray
themes, one of the KDE-hack styles "takes care" of this, but this
commit applies the same change to these themes anyway.
2018-10-04 21:51:30 -04:00
Daniel Korostil
eea3d3bbaa Update Ukrainian translation 2018-10-04 07:44:56 +00:00
Anders Jonsson
8b09905d73 Update Swedish translation 2018-10-02 21:31:18 +00:00
Tim Sabsch
7ac215dda3 Update German translation 2018-10-02 18:04:16 +00:00
Tim Sabsch
381ee94c8c Update German translation 2018-10-02 18:00:19 +00:00
Hannie Dumoleyn
c3f43465a4 Update Dutch translation 2018-10-02 07:22:17 +00:00
ONO Yoshio
41bacb7cbc plug-ins: fix a datasourcetype does not shown in metadata-editor.
Tag of DigitalSourceType has 5 entries, but the combobox shown
only 4 items.

(cherry picked from commit 3c92b5e00b)
2018-10-02 08:49:03 +09:00
Snehalata B Shirude
d2b5dff3d0 Update Marathi translation (plugins/script-fu/tags) 2018-10-01 13:56:23 +02:00
Snehalata B Shirude
b96672c3aa Update Marathi translation 2018-10-01 13:50:44 +02:00
Ell
e8fef315c5 app: in gimp-parallel, cancel ongoing async operations upon exit
When shutting-down gimp-parallel, cancel and/or abort any ongoing
and queued async operations, instead of finishing them (async
operations that already started executing will be canceled, but
execution will be blocked until they're finished.)  This is
especially important since we're shutting down gimp-parallel before
the destruction of data factories.  This commit causes any ongoing
async operations of the factories to be canceled on shutdown,
rather than waiting for them to finish normally.

(cherry picked from commit e46fdc714e)
2018-10-01 05:24:59 -04:00
Ell
7058aa259b app: add gimp_data_factory_data_cancel()
Add a new GimpData::data_cancel() virtual function, and a
corresponding gimp_data_factory_data_cancel() function.  This
function should cancel any ongoing async operations related to the
factory (i.e., included in its async set), and wait for the
operations to finish.  Provide a default implementation that simply
cancels and waits on the factory's async set.

Use this function to cancel any ongoing operations during factory
destruction, and in gimp_data_factory_data_free().

Override this function in GimpFontFactory, for which we can't
really cancel font loading, and simply cancel and clear the
factory's async set without waiting for loading to finish, making
sure that nothing happens (and, in particular, that the factory
isn't being accessed, since it might be already dead) when loading
does finish.

(cherry picked from commit 6bc0b3b8ad)
2018-10-01 05:24:59 -04:00
Ell
937f5ea0f0 app: don't depend on GimpData sort order for identifying internal data
In gimp_data_factory_data_foreach(), don't rely on internal
GimpData objects being sorted first (while this is currently true
for all types of GimpData, they may override the sort order.)

(cherry picked from commit 50bab438ce)
2018-10-01 05:24:59 -04:00
Alexandre Prokoudine
c0d00cba4a Update NEWS 2018-09-30 23:52:46 +03:00
Jehan
8a91cde184 INSTALL: update mypaint-brushes repository (finally upstream!).
The MyPaint project now hosts the repository which was under my name
previously. Yeah!

(cherry picked from commit 5ac267820f)
2018-09-30 21:07:40 +02:00
Ell
c6f1196721 tools: in performance-log-viewer.py, add annotated source view
Add an annotated source view to the performance-log viewer's
profile view.  When selecting the [Self] entry of a function's
profile, for which source information is available and whose source
is found locally, a new column opens, showing the function's
source, annotated with sample statistics.  Header-bar buttons allow
navigation through the annotated lines, selection of all the
samples corresponding to a given line, and opening the text editor
at the current line.

(cherry picked from commit 88438c5055)
2018-09-30 09:01:38 -04:00
Ell
8624f3070e tools: in performance-log-view.py, don't change call-graph path ...
... when selecting a function's samples

Since we now preserve the call-graph path across state changes,
there's no need to explictly set the path after selecting a
function's samples in the profile view.

(cherry picked from commit b672f20075)
2018-09-30 09:01:38 -04:00
Ell
4358430050 tools: in performance-log-viewer.py, cache source file lookups
In the performance-log viewer, cache the results of source-file
lookups, to speed up future lookups.

(cherry picked from commit 97498017c0)
2018-09-30 05:37:25 -04:00
Ell
33269cc8ff tools: in performance-log-viewer.py, allow viewing source files ...
... in backtraces

In the performance-log viewer's backtrace viewer, show a document
icon next to stack frames with source-location information, whose
source file is found locally.  Clicking the icon opens the source
file in a text editor at the relevant line.

Two environment variables control this feature:

  - PERFORMANCE_LOG_VIEWER_PATH is a list of colon-separated
    directories in which to look for source files.  If this
    variable is undefined, the current directory is used.

  - PERFORMANCE_LOG_VIEWER_EDITOR is the command to use to launch
    the text editor, for editing a specific file at a specific
    line.  The special strings "{file}" and "{line}" are replaced
    with the filename and line-number, respectively.  If this
    variable is undefined, "xdg-open {file}" is used.

(cherry picked from commit 0f38709259)
2018-09-30 05:10:52 -04:00
Jehan
788eb090b8 plug-ins: add more generated files in .gitignore.
(cherry picked from commit cb892aa0e6)
2018-09-29 23:18:03 +02:00
Sergio Jiménez Herena
0839a55d51 plug-ins: pygimp: Add autogenerated python files to .gitignore 2018-09-29 21:04:44 +00:00
Anders Jonsson
d9cb86de83 Update Swedish translation 2018-09-29 22:18:54 +02:00
Ell
c44015a84e tools: in performance-log-viewer.py, handle infinities in sample graph
Don't take infinite values into account when calculating the
vertical scale of sample graphs, and rather display infinite values
as dashed lines at the top of the graph.

(cherry picked from commit 46e5e4d478)
2018-09-29 15:43:50 -04:00
Ell
fc77bf31bc app: avoid double-initialization of operation tools when changing layers
When re-activating an operation tool by clicking on a different
drawable while the tool is active, we re-call the corresponding
procedure to re-activate the tool, which implictly initializes it.
Avoid initializaing it explicitly in addition to that, since this
leads to the creation of a new config object by the filter tool,
while the GUI still refers to the old, now-dead, config object,
causing CRITICALs or segfaults when changing any parameter.

(cherry picked from commit a21667821c)
2018-09-29 14:31:52 -04:00
Ell
9b3c2e9b4e app: don't commit trivial warp transform
In the warp tool, don't commit a trivial (empty) transform.  This
is especially important now that exiting the tool through undo
causes it to get comitted (... with a trivial transform).

(cherry picked from commit d12dd3fb35)
2018-09-29 12:38:50 -04:00
Ell
943757c136 Issue #1180 - Warp tool aborts changes to layer A when ...
... changing layers and warping layer B

Add a new GimpToolControl::dirty_action field, which specifies the
tool action to perform when the a dirty event matching the tool
control's dirty mask occurs; this field defaults to HALT.  Apply
this action to the active tool in tool-manager in response to a
matching dirty event, instead of unconditionally halting the tool.
Likewise, use this action to stop the active tool in response to a
button-press event on a different drawable in the same image.

Set the dirty action of the gradient and warp tools to COMMIT, so
that they get comitted, rather than stopped, in cases such as
switching layers (including switching to/from quick-mask mode),
and, for the warp tool, changing the selection.

(cherry picked from commit ed20393f0e)
2018-09-29 12:38:50 -04:00
Alan Mortensen
498c3f5b06 Updated Danish translation of gimp-windows-installer 2018-09-29 17:44:09 +02:00
Alan Mortensen
2ce208c0f2 Updated Danish translation of gimp-plug-ins 2018-09-29 17:44:07 +02:00