gimp/app
Jehan 43f0147bfe app: allow to change the brush size on alt-right click.
I started from mitch's patch (though code changed so it was not working,
yet I ended up with quite a different direction).

Modified from original proposition in #498:

* Do not mix opacity and brush size in a same action, one on horizontal
  movement, the other on vertical. The problem is that it's hard to stay
  perfectly horizontal or vertical, so you nearly necessarily change one
  while changing the other and this would be frustrating.
* Do not just use modifiers, but modifiers + right click. The logics is
  that left (or whatever is the first button) click is for the tool
  actions. The middle click for navigation (panning, rotation, and even
  layer navigation now). Right click for now is only for menu. With this
  change, let's use right click for various settings-related changes
  too. Also we already have people complaining with things like canvas
  rotation happening unexpectedly even though it requires button clicks.
  Imagine an action just made of modifiers! Many people would hit these
  by mistake all the time!
* Focus on brush size only for now. Instead of just calling the action
  repetitively with the "SElECT_NEXT" action as proposed in the original
  patch by mitch, let's compute the actual size between the press and
  release. This would allow to have a real visual hint and also would
  make it a lot more useful and meaningful to be an on-canvas change.
  Say you want to reproduce a stroke size on canvas. You can click the
  center and expand to retrieve approximately the size without computing
  it in pixels.

Limitations and future work:

* This is a first draft and I still want to test if it works well with
  the "lock brush to view" and with scale factor > 1.
* I want to associate this with work done for #7034 so that visual hint
  still appear even when we have no visual hint set.
* I am not so fond of with the way we use enum actions which doesn't
  really make satisfying logics (I hacked a bit over it, but it's
  getting ugly). I'm considering creating int/double actions to really
  set some values with exact numbers through actions.
* Right now we need to stop the right click first. I want to be able to
  stop the brush sizing with releasing Alt too.
* It would be nice to make this all more customizable, which is why I
  called internal variable "mod1_setting". The goal will be to have
  other types of actions possibly. Also it could be deactivatable for
  people really not liking these or hitting these by mistake (while not
  needing these). Same for the navigation shorcuts.
* Similarly the right-click menu could be deactivatable or switched to
  other actions conditionally (through Preferences). It is doubtful how
  useful it is (compared to using the same menus on top of the GUI)
  though I don't want to just delete the option because some people
  would clearly be used to it.
* I think we should start breaking down the whole tool events code a bit
  more, in particular the function gimp_display_shell_canvas_tool_events().
* For more settings, a small on-canvas GUI could be of interest where
  you could customize various values through sliders and buttons, and
  also where you could put your favorite brushes or dynamics or whatnot.
  It's not replacing the more complete dockable but could be a nice
  quick version for fast editing.
2022-08-17 14:20:18 +02:00
..
actions app: allow to change the brush size on alt-right click. 2022-08-17 14:20:18 +02:00
config app, libgimp*: add various stamp files to CLEANFILES. 2022-08-01 23:34:50 +02:00
core core: Add simulation settings to Create New Image 2022-08-14 17:25:25 +00:00
dialogs core: Add simulation settings to Create New Image 2022-08-14 17:25:25 +00:00
display app: allow to change the brush size on alt-right click. 2022-08-17 14:20:18 +02:00
file app: missing space in the string. 2022-03-24 21:49:27 +01:00
file-data app: fix resource leak warnings caught by static analysis. 2021-11-08 22:37:13 -05:00
gegl app, libgimp*: add various stamp files to CLEANFILES. 2022-08-01 23:34:50 +02:00
gui Change GTK+ to GTK 2022-07-07 14:02:36 +00:00
menus Issue #8124: plug-in localization now totally moved plug-in side. 2022-07-05 12:22:32 +02:00
operations app, libgimp*: add various stamp files to CLEANFILES. 2022-08-01 23:34:50 +02:00
paint app, libgimp*: add various stamp files to CLEANFILES. 2022-08-01 23:34:50 +02:00
pdb core: Add simulation intent and BPC to GimpImage 2022-08-13 19:39:47 +00:00
plug-in app, libgimp*: add various stamp files to CLEANFILES. 2022-08-01 23:34:50 +02:00
propgui app, libgimpwidgets: move gimp_prop_spin_scale_new() and… 2022-02-19 00:14:44 +01:00
tests meson: make run_command() calls future-proof. 2022-07-31 18:23:00 +02:00
text app, libgimp*: add various stamp files to CLEANFILES. 2022-08-01 23:34:50 +02:00
tools app, libgimp*: add various stamp files to CLEANFILES. 2022-08-01 23:34:50 +02:00
vectors app: fix leaked queue created at init() (as reported by Massimo). 2021-08-16 12:16:52 +02:00
widgets Modules: Convert CMYK color selector to babl 2022-08-15 21:14:14 +00:00
xcf app: check for invalid offsets when loading XCF files 2022-06-05 18:52:15 -04:00
.gitignore Move git-version.h to the toplevel also in .gitignore 2018-01-29 20:26:18 +01:00
Makefile.am Fix reference from gimp_param_spec_duplicate to gimp_config_param_spec_duplicate 2020-01-17 11:17:03 +01:00
about.h Change the license URL from http://www.gnu.org/licenses/ to https:// 2018-07-11 23:29:46 +02:00
app.c app: reload plug-ins when language changes between runs. 2022-07-06 19:33:00 +02:00
app.h app: when called with --quit, GIMP exit code will report batch failure. 2022-04-16 02:30:46 +02:00
errors.c app: NULL log domain is not a bug. 2020-09-22 17:59:41 +02:00
errors.h Change the license URL from http://www.gnu.org/licenses/ to https:// 2018-07-11 23:29:46 +02:00
gimp-debug.c Change the license URL from http://www.gnu.org/licenses/ to https:// 2018-07-11 23:29:46 +02:00
gimp-debug.h Change the license URL from http://www.gnu.org/licenses/ to https:// 2018-07-11 23:29:46 +02:00
gimp-intl.h Change the license URL from http://www.gnu.org/licenses/ to https:// 2018-07-11 23:29:46 +02:00
gimp-log.c app: add gimp_log_{set,remove}_handler() 2020-08-02 11:01:59 +03:00
gimp-log.h app: add gimp_log_{set,remove}_handler() 2020-08-02 11:01:59 +03:00
gimp-priorities.h app: fix image-window UI-manager update while a projection is being rendered 2019-03-30 19:31:23 -04:00
gimp-update.c app: make update detection more robust to string revision field. 2022-06-21 22:31:36 +02:00
gimp-update.h app: now store the last run version in the core config. 2022-02-22 12:23:46 +01:00
gimp-version.c app: only check gimp-release once. 2022-06-08 20:59:09 +02:00
gimp-version.h app: allow to disable the new version check altogether through a key… 2022-06-06 01:09:08 +02:00
gimpcore.def Issue #8124: plug-in localization now totally moved plug-in side. 2022-07-05 12:22:32 +02:00
git-version.h.in app: revert `#pragma once` to macro guards in meson build. 2019-09-19 13:31:22 +02:00
language.c app: allows for empty string as language. 2022-07-07 22:13:28 +02:00
language.h app: reload plug-ins when language changes between runs. 2022-07-06 19:33:00 +02:00
main.c macos: support for homebrew build 2022-07-27 17:06:21 +00:00
meson.build Issue #8145: meson: generation of '*-enums.c' files. 2022-08-01 19:59:53 +02:00
sanity.c app, configure, meson: depend on GEGL-0.4.38 2022-07-13 23:31:24 +02:00
sanity.h Change the license URL from http://www.gnu.org/licenses/ to https:// 2018-07-11 23:29:46 +02:00
signals.c app, macOS: Remove crash handling conflict 2022-06-25 17:46:19 +00:00
signals.h Change the license URL from http://www.gnu.org/licenses/ to https:// 2018-07-11 23:29:46 +02:00
tests.c app, libgimp, libgimpwidgets: fix "Application icon missing" in tests. 2021-12-23 13:39:43 +01:00
tests.h Change the license URL from http://www.gnu.org/licenses/ to https:// 2018-07-11 23:29:46 +02:00
unique.c Change the license URL from http://www.gnu.org/licenses/ to https:// 2018-07-11 23:29:46 +02:00
unique.h Change the license URL from http://www.gnu.org/licenses/ to https:// 2018-07-11 23:29:46 +02:00