Continuous Grab with pen tablet produces strange results when pen is lifted off tablet (using enter to start operation instead of clicking with tablet pen) and then moved outside of the view area #53491

Closed
opened 2017-12-06 19:43:56 +01:00 by Henrik Berglund · 6 comments

System Information
Win8, GTX1070

Blender Version
Broken: 2.79 master and official release, probably before that too

Short description of error

Continuous Grab with pen tablet produces strange results when pen is lifted off tablet (using enter to start operation instead of clicking with tablet pen) and then moved outside of the view. It works properly when you actually click things all of the time but sometimes you may want to press enter instead (typing on the keyboard to start/confirm an operator while holding the pen meaning the cursor is not "active").

Basically what happens is that you move the pen away from the tablet (to enable typing with both hands) which means it's stuck in that cursor location for now, start an operator (like edge crease) or confirm an operator (like adding a node in the node editor from the search and pressing enter), move back the pen to the tablet which instantly moves the cursor from the previous "inactive" position to the new position where you put the pen down in the tablet area and finally move the cursor outside of the view area/panel. This causes problems, it's fine if you return the pen to the tablet area so the cursor is active before invoking/confirming the operator. This is not very natural though because it means you have to either type with one hand (with the pen over the tablet area so it's active) or type with both hands, then before confirming the operator return the pen over the tablet area and press enter with your left hand for example. This is inconvenient and you would ideally just type as normal before returning the pen to the tablet area.

Normal behavior: https://imgur.com/RvgyrMg (clicking so the cursor is active before starting the operator). The panel is to the left of the video and you can see it behaves normally you can drag it outside of the view.

Bugged behavior: https://imgur.com/vpRWtGx (pressing enter while holding the pen). As you can see the view goes a bit crazy, the cursor starts blinking (alternating between two positions) and there are five digit numbers in the translation which shouldn't happen. You can also see this in the scrollbars and the node is completely gone from the view.

Exact steps for others to reproduce the error
Based on a (as simple as possible) attached .blend file with minimum amount of steps

  1. Have a tablet with absolute position (also called tablet mode, the default).
  2. Enable Continous Grab if it wasn't already.
  3. Add a mesh, add a material and check Use Nodes.
  4. In the node editor (material view) search for a node, hold the pen over the tablet are so the cursor is active. Press enter with the left hand. You get the expected behavior, you can move the node outside of the view area.
  5. As above, search for a node and click it with the pen. Again it works fine (expected behavior).
  6. As above, but hold the pen away from the tablet when pressing enter, then return the pen to the tablet area. At first it works fine (you can drag the node around in the view area) but as soon as you try to leave the view area it goes crazy and scrolls extremely far outside of the view. Also note that when you return to the view area (cursor stops blinking) you are translating the node at a normal pace, but whenever you go outside of the view the cursor starts blinking and you're translating at a highly accelerated rate.

My theory is that the position of the inactive cursor is saved, but when going outside of the view you get an offset between the old saved location and the new location (from where you returned the pen over the tablet area), so for example if you had an offset of 100 pixels between the old location and the new location it moves 100 pixels for every pixel outside of the view area. No idea is this is true or not though.

**System Information** Win8, GTX1070 **Blender Version** Broken: 2.79 master and official release, probably before that too **Short description of error** Continuous Grab with pen tablet produces strange results when pen is lifted off tablet (using enter to start operation instead of clicking with tablet pen) and then moved outside of the view. It works properly when you actually click things all of the time but sometimes you may want to press enter instead (typing on the keyboard to start/confirm an operator while holding the pen meaning the cursor is not "active"). Basically what happens is that you move the pen away from the tablet (to enable typing with both hands) which means it's stuck in that cursor location for now, start an operator (like edge crease) or confirm an operator (like adding a node in the node editor from the search and pressing enter), move back the pen to the tablet which instantly moves the cursor from the previous "inactive" position to the new position where you put the pen down in the tablet area and finally move the cursor outside of the view area/panel. This causes problems, it's fine if you return the pen to the tablet area so the cursor is active before invoking/confirming the operator. This is not very natural though because it means you have to either type with one hand (with the pen over the tablet area so it's active) or type with both hands, then before confirming the operator return the pen over the tablet area and press enter with your left hand for example. This is inconvenient and you would ideally just type as normal before returning the pen to the tablet area. Normal behavior: https://imgur.com/RvgyrMg (clicking so the cursor is active before starting the operator). The panel is to the left of the video and you can see it behaves normally you can drag it outside of the view. Bugged behavior: https://imgur.com/vpRWtGx (pressing enter while holding the pen). As you can see the view goes a bit crazy, the cursor starts blinking (alternating between two positions) and there are five digit numbers in the translation which shouldn't happen. You can also see this in the scrollbars and the node is completely gone from the view. **Exact steps for others to reproduce the error** Based on a (as simple as possible) attached .blend file with minimum amount of steps 1. Have a tablet with absolute position (also called tablet mode, the default). 2. Enable Continous Grab if it wasn't already. 3. Add a mesh, add a material and check Use Nodes. 4. In the node editor (material view) search for a node, hold the pen over the tablet are so the cursor is active. Press enter with the left hand. You get the expected behavior, you can move the node outside of the view area. 5. As above, search for a node and click it with the pen. Again it works fine (expected behavior). 6. As above, but hold the pen away from the tablet when pressing enter, then return the pen to the tablet area. At first it works fine (you can drag the node around in the view area) but as soon as you try to leave the view area it goes crazy and scrolls extremely far outside of the view. Also note that when you return to the view area (cursor stops blinking) you are translating the node at a normal pace, but whenever you go outside of the view the cursor starts blinking and you're translating at a highly accelerated rate. My theory is that the position of the inactive cursor is saved, but when going outside of the view you get an offset between the old saved location and the new location (from where you returned the pen over the tablet area), so for example if you had an offset of 100 pixels between the old location and the new location it moves 100 pixels for every pixel outside of the view area. No idea is this is true or not though.
Author
Member

Changed status to: 'Open'

Changed status to: 'Open'
Author
Member

Added subscriber: @cyaoeu

Added subscriber: @cyaoeu

Added subscribers: @lichtwerk, @ideasman42

Added subscribers: @lichtwerk, @ideasman42
Philipp Oeser was assigned by Campbell Barton 2018-01-02 10:06:22 +01:00

Currently continuous grab checks if tablet info exists at the time of execution.

It should really check if the last cursor motion was from the tablet.

@lichtwerk - think this is a good one for you, otherwise assign back to me.

Currently continuous grab checks if tablet info exists at the time of execution. It should really check if the last cursor motion was from the tablet. @lichtwerk - think this is a good one for you, otherwise assign back to me.

This issue was referenced by fdd3d969a6

This issue was referenced by fdd3d969a621132ec0f3aeae8875b146f8e3a19d

Changed status from 'Open' to: 'Resolved'

Changed status from 'Open' to: 'Resolved'
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
3 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#53491
No description provided.