-
Notifications
You must be signed in to change notification settings - Fork 17
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[macOS] Canvas/Timeline shortcut issues #324
Comments
I got time to record a video: duplicacting.mp4 |
I'm unable to reproduce this issue in 1.0.0-beta1, the only problem I found was that keyframe selection would not get removed after clicking on the viewport which leads to confusing behaviour Doing the same, getting no object + keyframe duplication, only keyframe duplication: |
Then it only happens in macOS... @KirbysDarkNebula, what OS are you using? |
I'm using Linux with the Appimage release |
Thanks! |
Seems like another awesome macOS issue 😄
Keyframe selection has nothing to do with the viewport. |
@rodlie could you point me out where to look at in order to try fixing this for macOS? I would like to try... Thanks |
I have not looked at the issue yet, currently busy with work stuff. I assume that the copy keyframe action does not reserve/block the key event and you end up with multiple actions on mac. Will be more involved with the project this weekend (as I want to push for a last beta release next week). |
Don't worry, I'll investigate. I wanted it just to get faster to the "target" and find a fix. Nice to hear about a second beta. I hope you have time before to have a look at my PRs and I hope you introduce the experimental macOS build 🙏🏻😄 hehehe |
Been looking at this issue and it will probably not be a simple fix. The custom class NoShortcutAction still register shortcuts on Mac, so that's why keys and objects are copied when doing cmd+c on the timeline (since cmd+c is set as shortcut on a NoShortcutAction :smile ) This is fixable, all NoShortcutAction's will need to be reviewed and verified that they works as they should on Mac, and what happens when we disable all shortcuts on them. But, we have one more issue, duplicated copy. When pressing cmd+c in the timeline you will notice that focus switches to the window, and that triggers a new copy action. For some reason focus change when pressing cmd+c on Mac, this is bad as Friction is focus based for shortcuts etc. |
I understand, not easy fix. I was trying to filter the clipboard so that just paste the type of element I wanted (keyframes for instance if the timeline was on focus) but if you say the focus changes when the key shortcut is triggered then it would never work... |
Fixed in fdb4455 Note that there might be more broken shortcuts on macOS. |
Possible fix: 0b8907b |
I'll try it tomorrow 👏🏻 |
I will merge 0b8907b today, ok? |
I'm compiling it right now, give me 15 minutes 😉 |
No rush 😄 |
Thanks for catching, I only tested canvas vs. keys on the timeline... meh, need to find a fix. |
yeah... we can't use focus for shortcuts on macOS. 'keysview' (the timeline/graph) only support shortcuts for keys, not objects. Since we now block the canvas shortcuts (that supports the objects shortcuts) cmd+copy/paste/duplicate only works on keys. If we unblock the canvas we make duplicates etc. Back to the drawing board 😄 Will probably need to catch copy/paste/dup etc in 'keysview' on macOS. |
New fix: 646ea6b |
Yes, any key event in zone 3 goes to zone 2 (keysview) as far as I'm aware, so if any keys are selected in zone 2 they take the key event, else the event goes to zone 1 (and the select objects take the event). This is probably the case for Windows and Linux also (on a Mac so can't test). |
Yes, it makes sense... What about trying this workaround, anytime you click in zone 3 (and not using shift modifier, that is, a normal click), it forces to unselect everything... |
That would be bad UX, I might want to adjust/browse something in zone 3 while having selected keys in zone 2. Possible solution:
EDIT: After going through the code I think sharing hover state would be the best solution. |
It sounds nice! |
Yes, I find it perfect this way. At the end Friction has 2 kind of elements: objects (paths, texts, texts, ellipses, ...) and keyframes, right? |
1. when entering boxes widget we set focus to get key events (clear focus when leaving) 2. if hover state is true we forward key events to main window 3. main window will process supported key events for current canvas
Suggested UX fix: 4855bba |
In some scenarios you want to duplicate keyframes and you end up duplicating layers/groups/paths as well.
For instance, if you select a square in the viewport and then you go to the keyframes timeline, select a keyframe, scrub the "time line" and duplicate (by menu or shortcut) the result is that you are duplicating both the path and creating a duplicate of the keyframe...
Following this example, if you select a square in the viewport (it gets selected in the timeline) but you first click in an empty space then you are kind of "unselecting all". Now you go back to the keyframes timeline, select a keyframe, scrub the "time line" and duplicate (by menu or shortcut) the result is now is correct, just the keyframe gets duplicated.
The proposed behavior here would be that if your mouse is in the timeline, if you run the "duplicate" command, if there is a keyframe selected the only thing that gets duplicated is the keyframe and not any other thing but keyframes. In case there is no keyframe selected then it could duplicate layers/groups/paths...
Could you reproduce this?
Thanks!
The text was updated successfully, but these errors were encountered: