mirror of https://github.com/GNOME/gimp.git
![]() 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. |
||
---|---|---|
.. | ||
actions | ||
config | ||
core | ||
dialogs | ||
display | ||
file | ||
file-data | ||
gegl | ||
gui | ||
menus | ||
operations | ||
paint | ||
pdb | ||
plug-in | ||
propgui | ||
tests | ||
text | ||
tools | ||
vectors | ||
widgets | ||
xcf | ||
.gitignore | ||
Makefile.am | ||
about.h | ||
app.c | ||
app.h | ||
errors.c | ||
errors.h | ||
gimp-debug.c | ||
gimp-debug.h | ||
gimp-intl.h | ||
gimp-log.c | ||
gimp-log.h | ||
gimp-priorities.h | ||
gimp-update.c | ||
gimp-update.h | ||
gimp-version.c | ||
gimp-version.h | ||
gimpcore.def | ||
git-version.h.in | ||
language.c | ||
language.h | ||
main.c | ||
meson.build | ||
sanity.c | ||
sanity.h | ||
signals.c | ||
signals.h | ||
tests.c | ||
tests.h | ||
unique.c | ||
unique.h |