Scrolling broken after recent commit #120587

Closed
opened 2024-04-12 17:41:45 +02:00 by Hans Goudey · 8 comments
Member

System Information
Operating system: Linux-6.7.9-200.fc39.x86_64-x86_64-with-glibc2.38 64 Bits, WAYLAND UI
Graphics card: AMD Radeon RX 6700 XT (radeonsi, navi22, LLVM 17.0.6, DRM 3.57, 6.7.9-200.fc39.x86_64) AMD 4.6 (Core Profile) Mesa 23.3.6

Blender Version
Broken: Latest main
Caused By: af88ff0484

Short description of error
Scrolling rotates the view instead of zooming in or out

Exact steps for others to reproduce the error
Use scroll wheel. See attached video

**System Information** Operating system: Linux-6.7.9-200.fc39.x86_64-x86_64-with-glibc2.38 64 Bits, WAYLAND UI Graphics card: AMD Radeon RX 6700 XT (radeonsi, navi22, LLVM 17.0.6, DRM 3.57, 6.7.9-200.fc39.x86_64) AMD 4.6 (Core Profile) Mesa 23.3.6 **Blender Version** Broken: Latest main Caused By: af88ff04848b1ff299514514fb18ecf401553bb4 **Short description of error** Scrolling rotates the view instead of zooming in or out **Exact steps for others to reproduce the error** Use scroll wheel. See attached video
Author
Member
CC @ideasman42
Blender Bot added
Status
Resolved
and removed
Status
Confirmed
labels 2024-04-12 17:47:25 +02:00

This is strange as the touch-pad (two finger swipe) only ever rotated the viewport for me (in recent versions of GNOME/KDE/SWAYWM) and I think this this the intended behavior - macOS does this by default at least: https://devtalk.blender.org/t/6026 you can hold Ctrl to zoom.

So I think the correct solution is to restore the commit, make it so disabling "Multi-Touch Gestures" zooms instead of scrolling (I believe this is how macOS works although I'd need to double check).

Questions:

  • What Wayland compositor & version are you using?
  • When you zoom to scroll, is this converting zoom to mouse wheel events? or trackpad zoom events?

Details:

  • Forcing an older version of the interface only to change the way scroll events are handled isn't practical long term, we will likely want to bump the interface versions for other reasons.
  • These smooth-scroll events are not received via Wayland's multi-touch API, so unfortunately disabling multi-touch doesn't treat scroll as mouse wheel events.
  • I can't see a practical way to force scrolling to be interpreted as mouse wheel events, besides interpreting smooth-scrolling as discrete wheel events ourselves which I'm not keen on doing as users may then want to configure it - or find whatever defaults we choose to have problems.
This is strange as the touch-pad (two finger swipe) only ever rotated the viewport for me (in recent versions of GNOME/KDE/SWAYWM) and I think this this the intended behavior - macOS does this by default at least: https://devtalk.blender.org/t/6026 you can hold Ctrl to zoom. So I think the correct solution is to restore the commit, make it so disabling "Multi-Touch Gestures" zooms instead of scrolling (I believe this is how macOS works although I'd need to double check). Questions: - What Wayland compositor & version are you using? - When you zoom to scroll, is this converting zoom to mouse wheel events? or trackpad zoom events? Details: - Forcing an older version of the interface only to change the way scroll events are handled isn't practical long term, we will likely want to bump the interface versions for other reasons. - These smooth-scroll events are not received via Wayland's multi-touch API, so unfortunately disabling multi-touch doesn't treat scroll as mouse wheel events. - I can't see a practical way to force scrolling to be interpreted as mouse wheel events, besides interpreting smooth-scrolling as discrete wheel events ourselves which I'm not keen on doing as users may then want to configure it - or find whatever defaults we choose to have problems.
Member

I can confirm scrolling using a touchpad rotates the view instead of zooming in 4.1 on macOS, which is how it always has been I believe.

I can confirm scrolling using a touchpad rotates the view instead of zooming in 4.1 on macOS, which is how it always has been I believe.
Author
Member

Maybe the behavior change is intentional for a touch pad, but I am using a mouse scroll wheel.

What Wayland compositor & version are you using?

I'm using Fedora 39, so Gnome and Mutter. (I see version 45.5 currently).

When you zoom to scroll, is this converting zoom to mouse wheel events? or trackpad zoom events?

Is there an easy way to check that?

Maybe the behavior change is intentional for a touch pad, but I am using a mouse scroll wheel. >What Wayland compositor & version are you using? I'm using Fedora 39, so Gnome and Mutter. (I see version 45.5 currently). >When you zoom to scroll, is this converting zoom to mouse wheel events? or trackpad zoom events? Is there an easy way to check that?

Maybe the behavior change is intentional for a touch pad, but I am using a mouse scroll wheel.

This makes a lot more sense then.
What model of mouse are you using?

What Wayland compositor & version are you using?

I'm using Fedora 39, so Gnome and Mutter. (I see version 45.5 currently).

When you zoom to scroll, is this converting zoom to mouse wheel events? or trackpad zoom events?

Is there an easy way to check that?

Run blender --debug-events

wheel events show:

wmEvent type:11/WHEELDOWNMOUSE, val:1/PRESS, prev_type:218/ESC, prev_val:2/RELEASE, modifier={}, keymodifier:0, flag:{}, mouse:(508,1219), utf8:'', pointer:0xc2449c8

smooth scroll shows up as:

wmEvent type:14/TRACKPADPAN, val:0/NOTHING, prev_type:1/LEFTMOUSE, prev_val:2/RELEASE, modifier={}, keymodifier:0, flag:{IS_CONSECUTIVE}, mouse:(424,1482), utf8:'', pointer:0xa54dda8

Edit, I can redo the bug on my own system now, looking into it.

> Maybe the behavior change is intentional for a touch pad, but I am using a mouse scroll wheel. This makes a lot more sense then. What model of mouse are you using? > >What Wayland compositor & version are you using? > > I'm using Fedora 39, so Gnome and Mutter. (I see version 45.5 currently). > > >When you zoom to scroll, is this converting zoom to mouse wheel events? or trackpad zoom events? > > Is there an easy way to check that? Run `blender --debug-events` wheel events show: ``` wmEvent type:11/WHEELDOWNMOUSE, val:1/PRESS, prev_type:218/ESC, prev_val:2/RELEASE, modifier={}, keymodifier:0, flag:{}, mouse:(508,1219), utf8:'', pointer:0xc2449c8 ``` smooth scroll shows up as: ``` wmEvent type:14/TRACKPADPAN, val:0/NOTHING, prev_type:1/LEFTMOUSE, prev_val:2/RELEASE, modifier={}, keymodifier:0, flag:{IS_CONSECUTIVE}, mouse:(424,1482), utf8:'', pointer:0xa54dda8 ``` ---- Edit, I can redo the bug on my own system now, looking into it.
  • Updated event handling not to interpret mouse-wheel as smooth scroll. df87770ca1.
  • Bumped the seat API version to support detection of inverted (natural) touch-pad direction. 8d86fb43a4.
- Updated event handling not to interpret mouse-wheel as smooth scroll. df87770ca160624445a97799568e8deaa12390dc. - Bumped the seat API version to support detection of inverted (natural) touch-pad direction. 8d86fb43a4eab6e538796fd0d9f310e58a209315.

@ideasman42 seems like those fixes might have inverted the scroll direction?
For me in Sway now the mouse wheel scroll is inverted. Both in the 3D view and in general (file browser etc)

@ideasman42 seems like those fixes might have inverted the scroll direction? For me in Sway now the mouse wheel scroll is inverted. Both in the 3D view and in general (file browser etc)

@ZedDB ugh, your right, committed fix.

@ZedDB ugh, your right, committed fix.
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
4 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#120587
No description provided.