One of the greatest features of Synfigstudio is the ability to select a layer by just clicking on its render in the main window. This method fails if the layer you want to select is completely covered by other layer(s).
I would like to have the feature that if the user makes click in one position then the GUI have alternative behaviors depending on the circumstances:
Clicking on the point x,y it would select the top layer in the stack that responses to the click.
If there are more layers below (completely covered or not) then the user should have the opportunity to select the following layer in the stack that is under the click position. It can be done by doing CRTL up or CTRL down (arrows). It would loop along the layers that match the clicked point.
If the user does SHIFT click then all the layers that match the click should be selected.
Do you think it would be useful? Is that the right behavior? Have you got an alternative idea?
If #3 is doable why don’t #2?
What if #2 is like this?:
If there are more layers below (completely covered or not) then the user should have the opportunity to select the following layer in the stack that is under the click position. It can be done by doing ALT + click. It would loop along the layers that match the clicked point.
An alternative way to perform the option #2 (the old one that doesn’t involve more mouse clicks) is storing the last click position in the application and doing a hit_check call for all layers than the top selected layer. The next one below that responds to ‘true’ is selected.
l-click = Select one single layer placed on the most top layer under the position of the click.
CTRL+l-click = Add to current selection the most top layer under the position of the click.
ALT+l-click = Select one single layer placed below of the most top layer in current selection that is under the position of the click.
SHIFT+l-click = Select only all the layers under the click. If reached the end of the stack then continue with the beginning.
CTRL+ALT+l-click= Add to current selection the first layer not selected that is under the position of the click. If all the layers under the click position are selected don’t do anything.
CTRL+SHIFT+l-click=Add to current selection all the layers under the position of the click. If all they are already selected then unselect them all.
CTRL++ALT+SHIFT+l-click = ???
Examples:
Layers under the stack (capital letter means selected):
BEFORE:
a,b,C,d,E
AFTER l-click:
A,b,c,d,e
AFTER CTRL+l-click:
A,b,C,d,E
AFTER ALT+l-click:
a,b,C,D,E
AFTER ALT+l-click (again):
A,b,C,D,E
AFTER ALT+l-click (again):
A,B,C,D,E
AFTER SHIFT+l-click:
A,B,C,D,E
AFTER CTRL+SHIFT+l-click:
A,B,C,D,E
AFTER CTRL+SHIFT+l-click (again):
a,b,c,d,e