Commit graph

18749 commits

Author SHA1 Message Date
Michael Natterer
9f343f25eb app: try to store plug-in paths in terms of ${gimp_plug_in_dir}
so they get found without re-querying by relocatable GIMP packages.
2016-08-31 22:04:46 +02:00
Michael Natterer
0b054f00f4 app: simplify preferences-dialog.c by adding prefs_entry_add()
also add a GimpContext* parameter to prefs_color_button_add()
and call gimp_color_panel_set_context() for the caller.
2016-08-29 17:38:33 +02:00
Michael Natterer
d0263efd80 app: minor cleanup in gimpoperationblend.c 2016-08-29 17:38:06 +02:00
Michael Natterer
dfa390fd95 Bug 599573 - Remember dialog defaults between Gimp sessions
Remember the "Feather Selection", "Grow Selection", "Shrink Selection"
and "Border Selection" dialog settings in GimpDialogConfig.
2016-08-26 15:43:25 +02:00
Michael Natterer
63fce277d0 app: fix some warnings i introduced in preferences-dialog.c 2016-08-25 23:06:39 +02:00
Michael Natterer
2ae3393c3b Bug 599573 - Remember dialog defaults between Gimp sessions
Remember the "New Path" dialog settings in GimpDialogConfig.
2016-08-24 19:49:59 +02:00
Michael Natterer
8132d51b29 Bug 599573 - Remember dialog defaults between Gimp sessions
Remember the "New Channel" dialog settings in GimpDialogConfig.
2016-08-24 18:28:36 +02:00
Michael Natterer
9b8009d8c7 Bug 766628 - Preferences window is too tall
Add gimp_prefs_box_set_page_scrollable() which does what it says, and
make the tallest pages of the prefs dialog scrollable. This method
allows the dialog's smaller pages to still enforce a minimum height
for the window.
2016-08-24 12:52:33 +02:00
Michael Natterer
981a1b9c2e Bug 599573 - Remember dialog defaults between Gimp sessions
Remeber the "New Layer" dialog settings in GimpDialogConfig.
2016-08-24 12:33:56 +02:00
Benoit Touchette
0b7381a822 Bug 759601 - Add/Remove layer masks by clicking the layer preview
Quite heavily modified by Mitch to address the more general issues
mentioned in comment 35 of the bug:

- Remember the added mask's type and the invert boolean in
  GimpDialogConfig
- Add new prefs page "Dialog Defaults" which will contain
  only stuff from GimpDialogConfig and can be reset separately
- Remove static mask variables from layers-commands.c and
  use the new config values for both interactive mask adding
  with the dialog, and for the shortcut based method
- Add a button to the layers dialog which supports add, add
  with last values, delete, apply
- Add modifier-click shortcuts on the layer preview with the
  same modifiers as on the button
2016-08-23 19:18:20 +02:00
Michael Natterer
73c664ec97 app: fix code duplication in GimpMybrushCore, and clean up coding style
Also fixes a case where converting to the color managed image color
via gimp_pickable_srgb_to_image_color() was forgotten.
2016-08-20 23:46:23 +02:00
Michael Natterer
3a14a646f5 app: add new config class GimpDialogConfig
which will keep all settings of the "don't ask me again" kind. For
now, moved the "color-profile-policy" there.
2016-08-14 22:21:59 +02:00
Michael Natterer
1027c71f36 app: rename variable in preferences-dialog.c (irrelevant nitpicking) 2016-08-14 15:52:46 +02:00
Jehan
c83ee61c07 Bug 729765 - remove focusability of various widgets...
... starting with toolbox buttons.
This is particularly a problem in single window mode (and sometimes in
multi-window mode) where canvas easily loses focus, hence key events.
2016-08-14 01:47:56 +02:00
Ell
26b978d2a8 app: avoid expensive rotated scale calculation when scale_x == scale_y
Ditto for the rulers' resolution calculation.
2016-08-09 22:28:21 +00:00
Ell
5663daa6e7 app: code layout/typo fixes
The sort of things that only become visible *after* pushing.
2016-08-09 21:55:19 +00:00
Ell
5bdb20c839 app: make rulers rotation aware
Place the rulers' origin at the top-left corner of the canvas
(screen space) bounding box, and set their scale to the image-
space scale along the screen-space horizontal/vertical directions
(in other words, measuring a distance using the rulers should
give the same results as the measure tool; note that rotation
comes into play here only when the horizontal and vertical
image or screen resolutions are different, since otherwise the
scale is direction invariant.)

Make scrollbar step match ruler step under the new behavior.
2016-08-09 21:31:07 +00:00
Ell
720b73ca86 app: fix a few canvas scroll/scale rounding inconsistencies
Apply rounding more consistently across some of the scroll/scale
functions, to avoid annoying one-pixel-off scrollbar size/position
issues.
2016-08-09 21:31:06 +00:00
Ell
e384d533e7 app: don't round results of gimp_display_shell_transform_bounds()
The rounding causes some one-pixel-off errors in the canvas scaling
code; the rest of its callers shouldn't be affected.
2016-08-09 21:31:06 +00:00
Michael Natterer
8d902b8df5 Bug 768966 - Keyboard Shortcut hint disappears from tooltips...
...after entering single window mode

This commit fixes dangling pointers in GimpDockColumns, it doesn't fix
the bug but it's a prerequisite. Original patch by Massimo.
2016-08-03 23:44:14 +02:00
Nils Philippsen
ce2e95139a use better prefix for previous patch 2016-07-31 20:53:11 +02:00
Nils Philippsen
454c60970f avoid clashing with remove(3) prototype 2016-07-31 20:50:29 +02:00
Michael Natterer
f06f691a92 Bug 768952 - Select by color works correctly only in srgb
Separate clearing/creating the image's cached color transforms from
clearing/creating its color profile. Clear the transforms when the
color profile changes, and when image type or precision change. Create
the transforms only on demand, so clearing them multiple times doesn't
trigger any redundant (and expensive) transform creations.
2016-07-25 00:04:12 +02:00
Michael Natterer
4ea518fee3 Bug 768736 - Button order differs in "Quit GIMP" and "Close View"...
...dialogs with modified images

Move the "Discard Changes" button to the right (affirmative) position
in gimp_display_shell_close_dialog().
2016-07-24 23:55:35 +02:00
Ell
cd767505fc app: make GimpNavigationView rotation aware
Rotate the viewport marker to correctly reflect the visible part
of the image.
2016-07-21 21:25:49 +00:00
Ell
168b935d43 app: make scale_{to_rectangle,fit_in,fill,shrink_wrap} rotation aware
Use the (screen space) bounding box of the rectangle/canvas for these
functions.
2016-07-21 21:24:06 +00:00
Ell
3fbd47eb2e Bug 768726 - Canvas rotation, flipping applied in image space ...
... not screen space

Flip and rotate the canvas around the center of the viewport,
instead of the center of the image.  Scroll the display as
necessary to keep the center of the viewport fixed during
these operations.  This applies to both the corresponding
menu items, and rotation using Shift+Space.

Likewise, flip the canvas across the designated axis in
screen space, instead of image space.  Rotate the display as
necessary, such that the reflection appears to happen in
screen space, regardless of the current rotation angle of the
canvas.
2016-07-21 21:24:06 +00:00
Ell
bfba49d203 app: make scrollbar limits and scroll-offset clamping rotation aware
Limit the scrollbars by the (screen space) bounding box of the canvas.
Scroll offsets are clamped to 1.5 that.
2016-07-21 21:22:49 +00:00
Ell
3183b894df app: fix gimp_display_shell_untransform_viewport() ...
... when the canvas is rotated.

Use gimp_display_shell_untransform_bounds() instead of transforming
the two endpoints independently.
2016-07-21 21:20:53 +00:00
Ell
1663675031 app: fix gimp_display_shell_un{rotate,transform}_xy() ...
... when the canvas is rotated.

s/fy/fx/ in one of the arguments to cairo_matrix_transform_point().
2016-07-21 21:20:53 +00:00
Massimo Valentini
fa621d60bb Bug 768952: Select by color works correctly only in srgb
pass to pickable_contiguous_region_by_color the
color in the same color space as the pickable.
2016-07-19 18:05:09 +02:00
Jehan
7d5ebbe225 app: rename mirror properties to mirror-position-x|y.
As proposed by Mitch. This completes first renaming attempt (commit
08ffc10) with even less ambiguous names.
"horizontal-axis-position" and "vertical-axis-position" are now
respectively "mirror-position-y" and "mirror-position-x".
2016-07-19 14:24:54 +02:00
Jehan
65be37b37b Bug 768871: improve symmetry labels. 2016-07-19 12:34:01 +02:00
Jehan
08ffc1035b app: rename properties s/(horizontal|vertical)-position/\1-axis-position/.
"Horizontal position" and "Vertical position" could be mistaken as
meaning respectively the x and y coordinates, hence the vertical (resp.
horizontal) guide's positions.
The more accurate "horizontal-axis-position" and "vertical-axis-position"
namings are less misleading.
2016-07-18 02:52:37 +02:00
Massimo Valentini
aa293ae9a7 Bug 675748: Text tool: text editor inhibits text...
...selection on the canvas

if the editor dialog is active do not copy to the
clipboard the text selected, copy it instead when
selected with keys <Shift>-left/right.
2016-07-16 16:28:35 +02:00
Michael Natterer
bb66166e22 app: be smarter about handling the Space key in GimpPopup
Don't remove the GDK_KEY_space in GimpSearchPopup because that's
impossible and removes it from the entire GimpPopup class. Instead,
don't handle the "space -> confirm" binding manually if the focus
widget is a text widget.
2016-07-12 20:35:41 +02:00
Massimo Valentini
23d5944ef8 Bug 768625: gimp-gradient-segment-range-move crashes...
...GIMP invoked with end-segment < 0

correct a typo
2016-07-10 17:21:32 +02:00
Massimo Valentini
fede5ccba9 Bug 768519: File->Open Recent does not show...
... recently opened xcf files

be consistent regarding xcf files mime type
image/x-xcf is used in the installed gimp.desktop
use it everywhere.
2016-07-08 18:38:19 +02:00
Michael Natterer
954f50a097 app: fix description of GIMP_COLOR_PROFILE_POLICY_CONVERT in the header
it was only fixed in the generated .c file.
2016-07-08 15:07:41 +02:00
Michael Natterer
8b685e7bfe app: move PROP_PERFECT_MOUSE to the end of the enum in GimpDisplayConfig 2016-07-08 11:50:27 +02:00
Jehan
7fb07e1da1 app: typo fix - s/widht/width/ 2016-07-07 02:28:44 +02:00
Michael Natterer
7b1401293d app: add GIMP_CONFIG_PARAM_IGNORE to the obsolete perfect-mouse setting 2016-07-06 20:29:56 +02:00
Michael Natterer
d3de67a9de app: always return a profile from gimp_drawable_transform_buffer_*()
Assign the buffer_profile return value early, so it doesn't stay
uninitialized when we bail out half way through the functions.
2016-07-06 20:29:56 +02:00
Michael Natterer
eae2261f16 app: tag the symmetry properties as pixel-coordinate/pixel-distance
so they get the proper soft limits in the generated GUI. Also rename
some properties for consisency, and add some blank lines for better
readability.
2016-07-06 12:37:10 +02:00
Michael Natterer
a96c273621 app: add smarter soft boundaries for GimpSpinScale widgets
Pass a GeglRectangle to all gimp_prop_gui_*() functions, and set
the soft limits to the rectangle's extents if the GParamSpec
metadata's "unit" is "pixel-coordinate" or "pixel-distance".

In GimpSymmetryEditor, pass the image extents, in GimpOperationTool
pass the drawable extents.
2016-07-06 12:19:40 +02:00
Massimo Valentini
f7569cad82 Bug 767345: Color Erase Blend Mode Do not working in Paint tools correctly (exception Bucket fill Tool) 2016-07-05 18:15:10 +02:00
Michael Natterer
8c2c22ccb4 app: don't pass a NULL profile to gimp_image_convert_color_profile()
In gimp_image_import_color_profile(), when converting
non-interactively, pass the image's built-in profile.
2016-07-04 12:28:42 +02:00
Massimo Valentini
a93cea0ef5 Bug 768273: Rapid sequence of commands causes crash
do not access progress object after destruction.

silence warnings like:

(gimp-2.8:1): GLib-GObject-WARNING **: gsignal.c:2635: instance '0x17083f0' has no handler with id '56146'

(gimp-2.8:1): Gimp-Plug-In-CRITICAL **: plug_in_icc_profile_apply_rgb: assertion 'progress == NULL || GIMP_IS_PROGRESS (progress)' failed
2016-07-03 18:26:37 +02:00
Jehan
38f1b50a15 app: type s/Thia/This/. 2016-07-01 19:50:13 +02:00
Jehan
e8aac6d5ac app: do not allow mandala center position out of the image dimensions. 2016-07-01 14:58:24 +02:00