Can't scrub timeline with alt + pan trackpad gesture #76464

Open
opened 2020-05-06 05:39:28 +02:00 by TonyG · 11 comments

System Information
Operating system: Darwin-17.7.0-x86_64-i386-64bit 64 Bits
Graphics card: NVIDIA GeForce GTX 980 Ti OpenGL Engine NVIDIA Corporation 4.1 NVIDIA-10.33.0 387.10.10.10.40.105
MacOS 10.13.6 + Apple Magic Mouse

Blender Version
Broken: version: 2.83 (sub 15), branch: master, commit date: 2020-05-05 22:28, hash: c036ef1369
Worked: never ?

Short description of error
When using a Magic Mouse it's not possible to navigate the timeline using the "ALT+scroll" default shortcut.
Correct behaviour is seen in this official Blender video.

This shortcut is in : User Preferences > Keymap > "Frame Offset".
You'll see it's actually two instances of the same shortcut :

  • one to scroll forward (ALT + Wheel Down) >> screen.frame_offset = +1
  • another to rewind (ALT + Wheel Up) >> screen.frame_offset = -1

This is a problem because the Magic Mouse is actually seen as a trackpad, therefore we have to use the "Mouse/Trackpad Pan" event.
Unfortunately if you do that you are only able to scroll one way, because this shorcut entry doesn't "see" the scrool as bidirectional.

Proposed fix : add a new shortcut entry, like it's been done for "Zoom View" and "Pan View" for example.
{F8515046, size=full}

Exact steps for others to reproduce the error
On a Mac, using a Magic Mouse :
open Blender, in the viewport try to do ALT+scroll > it doesn't scroll the timeline.

**System Information** Operating system: Darwin-17.7.0-x86_64-i386-64bit 64 Bits Graphics card: NVIDIA GeForce GTX 980 Ti OpenGL Engine NVIDIA Corporation 4.1 NVIDIA-10.33.0 387.10.10.10.40.105 MacOS 10.13.6 + Apple Magic Mouse **Blender Version** Broken: version: 2.83 (sub 15), branch: master, commit date: 2020-05-05 22:28, hash: `c036ef1369` Worked: never ? **Short description of error** When using a Magic Mouse it's not possible to navigate the timeline using the "ALT+scroll" default shortcut. Correct behaviour is seen in **[this ](https://www.youtube.com/watch?v=o19U-yPGdyY&feature=youtu.be&t=84)** official Blender video. This shortcut is in : User Preferences > Keymap > "Frame Offset". You'll see it's actually **two instances** of the same shortcut : - one to scroll forward (ALT + Wheel Down) >> `screen.frame_offset = +1` - another to rewind (ALT + Wheel Up) >> `screen.frame_offset = -1` This is a problem because the Magic Mouse is actually seen as a trackpad, therefore we have to use the "Mouse/Trackpad Pan" event. Unfortunately if you do that you are only able to scroll one way, because this shorcut entry doesn't "see" the scrool as bidirectional. Proposed fix : add a new shortcut entry, like it's been done for "Zoom View" and "Pan View" for example. {[F8515046](https://archive.blender.org/developer/F8515046/MagicMouse_timeline_scroll.jpg), size=full} **Exact steps for others to reproduce the error** On a Mac, using a Magic Mouse : open Blender, in the viewport try to do ALT+scroll > it doesn't scroll the timeline.
Author

I did some code digging and here is the "Frame Offset" operator SCREEN_OT_frame_offset : https://developer.blender.org/diffusion/B/browse/master/source/blender/editors/screen/screen_ops.c$2861

I think this operator miss two things compared to other operators that actually respond to the Apple Magic Mouse :

  • there's no modal API callback
  • there's no OPTYPE_GRAB_CURSOR_XY flag

I think there's already other modal callbacks that could be reused from other operators :
From TEXT_OT_scroll : https://developer.blender.org/diffusion/B/browse/master/source/blender/editors/space_text/text_ops.c$2690
or IMAGE_OT_view_zoom : https://developer.blender.org/diffusion/B/browse/master/source/blender/editors/space_image/image_ops.c$607
or VIEW3D_OT_zoom https://developer.blender.org/diffusion/B/browse/master/source/blender/editors/space_view3d/view3d_edit.c$2215
or VIEW2D_OT_zoom : https://developer.blender.org/diffusion/B/browse/master/source/blender/editors/interface/view2d_ops.c$1154

I did some code digging and here is the "Frame Offset" operator `SCREEN_OT_frame_offset` : https://developer.blender.org/diffusion/B/browse/master/source/blender/editors/screen/screen_ops.c$2861 I think this operator miss two things compared to other operators that actually respond to the Apple Magic Mouse : - there's no `modal` API callback - there's no `OPTYPE_GRAB_CURSOR_XY` flag I think there's already other modal callbacks that could be reused from other operators : From `TEXT_OT_scroll` : https://developer.blender.org/diffusion/B/browse/master/source/blender/editors/space_text/text_ops.c$2690 or `IMAGE_OT_view_zoom` : https://developer.blender.org/diffusion/B/browse/master/source/blender/editors/space_image/image_ops.c$607 or `VIEW3D_OT_zoom` https://developer.blender.org/diffusion/B/browse/master/source/blender/editors/space_view3d/view3d_edit.c$2215 or `VIEW2D_OT_zoom` : https://developer.blender.org/diffusion/B/browse/master/source/blender/editors/interface/view2d_ops.c$1154

I don't think you need modal handler for this. Just use +1 / -1 offset and instead of any direction, use left or right or what magic mouse will do. Modal operation may be more precise or friendly though.

I am not familiar with this hardware and don't have any trackpad to test with. It's just a suggestion.

I don't think you need modal handler for this. Just use +1 / -1 offset and instead of any direction, use left or right or what magic mouse will do. Modal operation may be more precise or friendly though. I am not familiar with this hardware and don't have any trackpad to test with. It's just a suggestion.
Member

I think this should be confirmed. On trackpad too, no combination lets me scroll timeline with alt +

I think this should be confirmed. On trackpad too, no combination lets me scroll timeline with alt + <some trackpad gesture >

In #76464#927633, @ankitm wrote:
I think this should be confirmed. On trackpad too, no combination lets me scroll timeline with alt +

If you can check I guess you could confirm, as I said, I am not familiar with that hardware.

> In #76464#927633, @ankitm wrote: > I think this should be confirmed. On trackpad too, no combination lets me scroll timeline with alt + <some trackpad gesture > If you can check I guess you could confirm, as I said, I am not familiar with that hardware.
Author

In #76464#927953, @iss wrote:

In #76464#927633, @ankitm wrote:
I think this should be confirmed. On trackpad too, no combination lets me scroll timeline with alt +

If you can check I guess you could confirm, as I said, I am not familiar with that hardware.

Just checked here : cannot scroll timeline using trackpad on laptop.

> In #76464#927953, @iss wrote: >> In #76464#927633, @ankitm wrote: >> I think this should be confirmed. On trackpad too, no combination lets me scroll timeline with alt + <some trackpad gesture > > > If you can check I guess you could confirm, as I said, I am not familiar with that hardware. Just checked here : cannot scroll timeline using trackpad on laptop.

I'm confused by the description here. But from what I gather, the request is that Alt + Mouse/Trackpad Pan should be a shortcut for changing the current frame.

Which is different than scrolling, which is done with Mouse/Trackpad Pan without any modifier key.

I'm confused by the description here. But from what I gather, the request is that Alt + Mouse/Trackpad Pan should be a shortcut for changing the current frame. Which is different than scrolling, which is done with Mouse/Trackpad Pan without any modifier key.
Brecht Van Lommel changed title from MacOS + Apple Magic Mouse : Can't scroll timeline to MacOS + Apple Magic Mouse : Can't scrub timeline with alt + pan gesture 2020-05-10 14:00:59 +02:00
Author

In #76464#928132, @brecht wrote:
I'm confused by the description here. But from what I gather, the request is that Alt + Mouse/Trackpad Pan should be a shortcut for changing the current frame.

That's right, it should be added, the same way it is for viewport zooming.

Which is different than scrolling, which is done with Mouse/Trackpad Pan without any modifier key.

To be accurate :

  • scrolling is a two-state action : scroll-up & scroll down
  • Mouse/Trackpad Pan is a positional input (XY coordinate or delta I guess) >> right now this input is not recognized by the "Frame Offset" operator
> In #76464#928132, @brecht wrote: > I'm confused by the description here. But from what I gather, the request is that Alt + Mouse/Trackpad Pan should be a shortcut for changing the current frame. That's right, it should be added, the same way it is for viewport zooming. > Which is different than scrolling, which is done with Mouse/Trackpad Pan without any modifier key. To be accurate : - *scrolling* is a two-state action : scroll-up & scroll down - *Mouse/Trackpad* Pan is a positional input (XY coordinate or delta I guess) >> right now this input is not recognized by the "Frame Offset" operator
Yevgeny Makarov self-assigned this 2020-08-11 15:31:12 +02:00

Trying to implement this, and I have questions.

  1. should it be Horizontal panning (more natural for the Timeline but may differ from zooming)
  2. or it should respect Zoom Axis preference (so default will be Vertical direction)

It can also work in both directions, but it doesn't work very well in some cases (diagonal movement top-left - bottom-right).

How fast it should scrub:

  1. it quite fast by default (if pan delta = frame offset), it looks like a scrubbing video in QuickTime
  2. or it should mimic Mouse Wheel behavior, so that you can easily change the current frame with one-frame steps (although I don't think trakpad is supposed to do that)
Trying to implement this, and I have questions. 1. should it be Horizontal panning (more natural for the Timeline but may differ from zooming) 2. or it should respect Zoom Axis preference (so default will be Vertical direction) *It can also work in both directions, but it doesn't work very well in some cases (diagonal movement top-left - bottom-right).* How fast it should scrub: 1. it quite fast by default (if pan delta = frame offset), it looks like a scrubbing video in QuickTime 2. or it should mimic Mouse Wheel behavior, so that you can easily change the current frame with one-frame steps (although I don't think trakpad is supposed to do that)

In #76464#994473, @jenkm wrote:
Trying to implement this, and I have questions.

  1. should it be Horizontal panning (more natural for the Timeline but may differ from zooming)
  2. or it should respect Zoom Axis preference (so default will be Vertical direction)

It can also work in both directions, but it doesn't work very well in some cases (diagonal movement top-left - bottom-right).

I think 1, panning does not have to match zooming.

How fast it should scrub:

  1. it quite fast by default (if pan delta = frame offset), it looks like a scrubbing video in QuickTime
  2. or it should mimic Mouse Wheel behavior, so that you can easily change the current frame with one-frame steps (although I don't think trakpad is supposed to do that)

Can it have the same speed as panning, basically just moving the playhead instead of the background? So the speed would depend on the zoom level.

> In #76464#994473, @jenkm wrote: > Trying to implement this, and I have questions. > > 1. should it be Horizontal panning (more natural for the Timeline but may differ from zooming) > 2. or it should respect Zoom Axis preference (so default will be Vertical direction) > > *It can also work in both directions, but it doesn't work very well in some cases (diagonal movement top-left - bottom-right).* I think 1, panning does not have to match zooming. > How fast it should scrub: > > 1. it quite fast by default (if pan delta = frame offset), it looks like a scrubbing video in QuickTime > 2. or it should mimic Mouse Wheel behavior, so that you can easily change the current frame with one-frame steps (although I don't think trakpad is supposed to do that) Can it have the same speed as panning, basically just moving the playhead instead of the background? So the speed would depend on the zoom level.

Can it have the same speed as panning, basically just moving the playhead instead of the background? So the speed would depend on the zoom level.

I thought so at first, but the screen.frame_offset works in all editors.

UPD: it is possible for anim.change_frame.

> Can it have the same speed as panning, basically just moving the playhead instead of the background? So the speed would depend on the zoom level. I thought so at first, but the `screen.frame_offset` works in all editors. UPD: it is possible for `anim.change_frame`.
Yevgeny Makarov removed their assignment 2021-12-20 22:03:49 +01:00
Philipp Oeser removed the
Interest
User Interface
label 2023-02-10 09:24:28 +01:00

Here are two archived patches that add trackpad support for changing the current frame.

The D8542 is very straightforward. For D8675 it may need some tweaking, it seems you can use the recently added WM_EVENT_IS_CONSECUTIVE flag to improve it.

https://archive.blender.org/developer/D8542
https://archive.blender.org/developer/D8675

Here are two archived patches that add trackpad support for changing the current frame. The D8542 is very straightforward. For D8675 it may need some tweaking, it seems you can use the recently added `WM_EVENT_IS_CONSECUTIVE` flag to improve it. https://archive.blender.org/developer/D8542 https://archive.blender.org/developer/D8675
Yevgeny Makarov changed title from MacOS + Apple Magic Mouse : Can't scrub timeline with alt + pan gesture to Can't scrub timeline with alt + pan trackpad gesture 2023-08-06 08:27:37 +02:00
Yevgeny Makarov removed the
Platform
macOS
label 2023-08-06 08:27:54 +02:00
Sign in to join this conversation.
No Label
Interest
Alembic
Interest
Animation & Rigging
Interest
Asset Browser
Interest
Asset Browser Project Overview
Interest
Audio
Interest
Automated Testing
Interest
Blender Asset Bundle
Interest
BlendFile
Interest
Collada
Interest
Compatibility
Interest
Compositing
Interest
Core
Interest
Cycles
Interest
Dependency Graph
Interest
Development Management
Interest
EEVEE
Interest
EEVEE & Viewport
Interest
Freestyle
Interest
Geometry Nodes
Interest
Grease Pencil
Interest
ID Management
Interest
Images & Movies
Interest
Import Export
Interest
Line Art
Interest
Masking
Interest
Metal
Interest
Modeling
Interest
Modifiers
Interest
Motion Tracking
Interest
Nodes & Physics
Interest
OpenGL
Interest
Overlay
Interest
Overrides
Interest
Performance
Interest
Physics
Interest
Pipeline, Assets & IO
Interest
Platforms, Builds & Tests
Interest
Python API
Interest
Render & Cycles
Interest
Render Pipeline
Interest
Sculpt, Paint & Texture
Interest
Text Editor
Interest
Translations
Interest
Triaging
Interest
Undo
Interest
USD
Interest
User Interface
Interest
UV Editing
Interest
VFX & Video
Interest
Video Sequencer
Interest
Virtual Reality
Interest
Vulkan
Interest
Wayland
Interest
Workbench
Interest: X11
Legacy
Blender 2.8 Project
Legacy
Milestone 1: Basic, Local Asset Browser
Legacy
OpenGL Error
Meta
Good First Issue
Meta
Papercut
Meta
Retrospective
Meta
Security
Module
Animation & Rigging
Module
Core
Module
Development Management
Module
EEVEE & Viewport
Module
Grease Pencil
Module
Modeling
Module
Nodes & Physics
Module
Pipeline, Assets & IO
Module
Platforms, Builds & Tests
Module
Python API
Module
Render & Cycles
Module
Sculpt, Paint & Texture
Module
Triaging
Module
User Interface
Module
VFX & Video
Platform
FreeBSD
Platform
Linux
Platform
macOS
Platform
Windows
Priority
High
Priority
Low
Priority
Normal
Priority
Unbreak Now!
Status
Archived
Status
Confirmed
Status
Duplicate
Status
Needs Info from Developers
Status
Needs Information from User
Status
Needs Triage
Status
Resolved
Type
Bug
Type
Design
Type
Known Issue
Type
Patch
Type
Report
Type
To Do
No Milestone
No project
No Assignees
5 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: blender/blender#76464
No description provided.