Commit Graph

41464 Commits

Author SHA1 Message Date
Ell 46a80811a8 app: implement GimpWaitable::try_wait() in GimpAsync 2018-05-29 16:04:28 -04:00
Ell e0c47673e0 app: add GimpWaitable::try_wait() vfunc
... which should never block, but rather return TRUE or FALSE
immediately, depending on whether or not the waitable is ready.
2018-05-29 16:04:28 -04:00
Ell e085fc5fee app: lower thread priority of independent async operations
In gimp_parallel_run_async(), lower the priority of threads
executing independent async operations.  Independent operations
are generally potentially long-standing background tasks, which we
don't want to bog down the rest of the program.

This is currently only implemented on Linux and Windows.
2018-05-29 16:04:28 -04:00
Michael Natterer e332ba008b app: fix setting dock window size from GimpSessionInfo
In gimp_session_info_apply_geometry(), use gtk_window_resize() instead
of gtk_window_set_default_size() which magically fixes things. Leave a
big comment there because set_default_size() should just work.
2018-05-29 21:11:26 +02:00
Michael Natterer 0ecf0818a5 app: don't set a permanent size request on the canvas
Reset the canvas size request from gimp_display_shell_constructed() in
gimp_display_shell_canvas_size_allocate() so the image window can be
made smaller again. GTK+ 3.x always respects size requests.
2018-05-29 21:09:44 +02:00
Michael Natterer ce02f4ad05 m4macros: forgot 2.0 -> 3.0 here 2018-05-29 10:14:58 +02:00
Michael Natterer e237d431de app: fix some stuff in tests, down to 3 failing
- set GIMP3_DIRECTORY env variable not GIMP2_DIRECTORY
- make sure the cursors resource gets compiled in
- remove tab autosizing test, that code is gone
2018-05-29 00:44:51 +02:00
Michael Natterer a0805e460a Issue #1521 - First time start: GIMP-Error: Error while parsing templaterc
Don't use deprecated "fill-type" value names in the defailt templaterc.
2018-05-29 00:04:31 +02:00
Michael Natterer 2f425f0e2a libgimpwidgets: allow NULL adjustments in gimp_scroll_adjustment_values() 2018-05-29 00:04:31 +02:00
Marco Ciampa 073219e615 Updated Italian translation 2018-05-28 23:53:58 +02:00
Jehan cba95fb8a5 themes: prefer symbolic icons when available.
This is a first step to make our 2 symbolic themes into one and properly
"announce" them as symbolic through icon naming (which will allow
recoloring according to style colors).
With this CSS style, GTK+ widgets will search for symbolic icon variants
when using the generic name (with "*-symbolic" suffix).
2018-05-28 21:09:08 +02:00
Anders Jonsson cafbec9b83 Update Swedish translation
(cherry picked from commit a0dde2d40f)
2018-05-28 18:55:59 +00:00
Michael Natterer 4e472986c2 app: force gimp-tool-cursors.c to be linked into the binary 2018-05-28 20:20:13 +02:00
Michael Natterer ab9aa50925 cursors: oops, I optimized generation of resource files away 2018-05-28 20:09:09 +02:00
Jehan 27badebb23 gitlab: Adding issue templates.
We realize that gitlab doesn't encourage people to give base information
as software version or operating system.
Issue templates are not perfect but better than nothing.
2018-05-28 19:19:00 +02:00
Michael Natterer 9f800b05b4 plug-ins: hopefully make it build after my GdkScreen/GdkMonitor b0rk 2018-05-28 18:40:38 +02:00
Michael Natterer a9592a59c8 Merge request 4 - Generated .c sources are used as headers...
...Generate .h files instead.

Generate proper .c and .h files for color-picker and tool cursors in
the directories where they are built, and stop including them in other
.c files.
2018-05-28 17:25:18 +02:00
Michael Natterer 7fab74f431 libgimpwidgets: use G_DEFINE_ABSTRACT_CLASS for preview classes 2018-05-28 17:24:58 +02:00
Michael Natterer 3773ccbe1f docs: update .gitignore 2018-05-28 12:49:47 +02:00
Michael Natterer 061f4e4019 tools, app-tools: update .gitignore 2018-05-28 12:41:48 +02:00
Michael Natterer 1b71bd38ae desktop: update .gitignore 2018-05-28 12:34:30 +02:00
Michael Natterer 09e91b61fa plug-ins: gfig was still connecting to an "expose-event" signal 2018-05-28 09:01:54 +02:00
Michael Natterer 2ae830290e app: fix synthesizing pointer events in test-tools.c
Makes tests fail later.
2018-05-28 08:59:37 +02:00
Jehan d4ff504735 app: fix broken debug output on gitlab.
The GIMP version string and the backtrace both look completely wrong
when pasted as-is on gitlab. Somehow all linefeed are gone.

This can be fixed by surrounding these as blocks (triple backticks),
using markdown syntax. Of course now the debug content is not for our
tracker only since packagers are encouraged to replace with their own
tracker URL, but this small markdown syntax is simple enough that it
should not break formatting on other platforms (as far as I know).
2018-05-28 06:26:46 +02:00
Jehan 2795512822 build: remove dev flatpak and replace nightly with gtk3 manifest.
Now gtk3-port old branch has become master!
Also we don't need a dev flatpak for now. We'll see later when we will
do new development releases.
2018-05-27 22:24:37 +02:00
Jehan fc8d815ab8 build: update the flatpak howto. 2018-05-27 22:20:09 +02:00
Michael Natterer dbf059fd70 plug-ins: undeprecate print-preview.c 2018-05-27 21:07:12 +02:00
Michael Natterer 1b18f73d32 menus: forgot to remove automatic tab style 2018-05-27 21:05:31 +02:00
Ell 3fa4c01bcf app: fix gimp_parallel_run_async() cancelation
In gimp_parallel_run_async(), when aborting a GimpAsync operation
in reponse to its "cancel" signal, properly clean up internal data
attached to the object, to avoid use-after-free if the signal is
emitted again.
2018-05-27 13:58:59 -04:00
Ell ad8add6808 app: add "independent" parameter to gimp_parallel_run_async()
Add a boolean "independent" parameter to gimp_parallel_run_async().
When FALSE, the passed function is run in the shared async thread
pool; when TRUE, the passed function is run in an independent
thread.

Generally, async operations should run in the async pool, however,
it might be desirable to run long-standing operations, especially
ones that can't be canceled, in independent threads.  This avoids
stalling quicker operations, and shutdown.

Adapt the rest of the code for the change.  In particular,
initialize the font cache in an independent thread.
2018-05-27 13:17:24 -04:00
Ell 3958ffbe50 app: abort canceled pending operations in gimp_parallel_run_async()
In gimp_parallel_run_async(), connect to the returned GimpAsync's
"cancel" signal, and abort the operation in response if it's still
enqueued, i.e., if its execution hasn't started yet.
2018-05-27 13:17:24 -04:00
Ell e2c56ef407 app: implement GimpWaitable and GimpCancelable in GimpAsync
Have GimpAsync implement the GimpWaitable and GimpCancelable
interfaces, added in the previous two commits, instead of providing
its own public version of the corresponding functions.

Add gimp_async_cancel_and_wait() as a convenience function for both
canceling an async operation, and waiting for it to complete.

Adapt the rest of the code to the change.
2018-05-27 13:17:24 -04:00
Ell 722f92d011 app: add GimpCancelable interface
... which provides a method for canceling an operation managed by
an object.
2018-05-27 13:17:24 -04:00
Ell 0fe066890e app: add GimpWaitable interface
... which provides methods for waiting on an object.
2018-05-27 13:17:24 -04:00
Jehan f3de5cd3fe tools: make gimptool memory-managed.
The code was basically leaking memory everywhere, and apparently on
purpose (according to a top comment). Even on short-lived process, not
properly managing memory is not a good habit, especially if we plan to
maintain a program for the long run.
So here are some fixes. I'm sure I must have missed some places (code
was a mess), and hopefully I broke nothing. But that's good for now. At
least it is somewhat sane code now.
2018-05-27 17:53:26 +02:00
Jehan 02fc818bf6 tools: do not segfault gimptool with source without extension.
Since commit 58fa382001, gimptool would accept source files with
non-standard extensions when using known C or C++ compilers. This would
include source with no extensions at all.
When this happens, do not try to set a pointer to a non-existing dot
separator to '\0'. That obviously segfaults.
2018-05-27 16:11:38 +02:00
Jehan 355676e7ae tools: clean tabs out of gimptool code. 2018-05-27 15:17:42 +02:00
張俊芝 58fa382001 Issue #1506: Adds support for source file names with special...
... characters and non-standard suffixes in gimptool
2018-05-27 15:05:52 +02:00
Ell e47ffefab2 libgimpcolor, libgimpconfig: remove deprecated interface functions
Remove the deprectaed foo_interface_get_type() functions, as per
the last two commits.
2018-05-27 05:59:39 -04:00
Ell 5f8643a6ee libgimpconfig: align GimpConfig with the rest of the interfaces
Unlike the last two commits, we don't port GimpConfig to
G_DEFINE_INTERFACE(), since we need to provide a base initializer
for it.  However, this commit aligns it with the rest of our
intefaces, by renaming gimp_config_interface_get_type() to
gimp_config_get_type(), and by performing class initialization for
the interface in a separate function than base initialization.

Keep gimp_config_interface_get_type() around as a deprecated
function, to maintain ABI compatibility.  It will be removed in a
separate commit in master, so that this commit can be easily
cherry-picked to gimp-2-10.
2018-05-27 05:56:34 -04:00
Ell 6b40c7f37a libgimpcolor: port all interfaces to G_DEFINE_INTERFACE()
... instead of calling g_type_register_static() ourselves.

Keep the old foo_interface_get_type() (replaced with
foo_get_type()) around as deprecated functions, to maintain ABI
compatibility.  They will be removed in a separate commit in
master, so that this commit can be easily cherry-picked to
gimp-2-10.
2018-05-27 05:56:34 -04:00
Ell cdd96059f7 app: port all interfaces to G_DEFINE_INTERFACE()
... instead of calling g_type_register_static() ourselves.
2018-05-27 05:56:34 -04:00
Ell 770634f84e app: code cleanup in GimpAsync 2018-05-27 05:56:34 -04:00
Piotr Drąg 3c2a81ebe6 Update Polish translation 2018-05-27 07:30:39 +02:00
Jehan c6a1b9bcde Update various places with old git repository URIs. 2018-05-27 04:19:18 +02:00
Jehan 0034bd44b3 build: update GNOME's git repository URI. 2018-05-27 04:09:47 +02:00
Jehan cfaa3103e7 app: output proper info message while fonts are loading.
To this effect, I add a variable to differentiate the "no-fonts on the
system" case from "fonts still loading".
2018-05-27 03:42:43 +02:00
Jehan 2484dec7d5 Issue #1211: Load fonts in background after startup.
Fonts should not be blocking startup as this provides a very bad
experience when people have a lot of fonts. This was experienced even
more on Windows where loading time are often excessively long.
We were already running font loading in a thread, yet were still
blocking startup (thread was only so that the loading status GUI could
get updated as a feedback). Now we will only start loading and proceed
directly to next steps.
While fonts are not loaded, the text tool will not be usable, yet all
other activities can be performed.
2018-05-27 02:13:33 +02:00
Jehan e5c08832cb Issue #1509 - GIMP master Git zoom in/out scrolling is reversed. 2018-05-26 22:41:54 +02:00
Jehan 67ae36f28e devel-docs: howto test high density. 2018-05-26 22:41:54 +02:00