Can't resize selected node #64693

Closed
opened 2019-05-16 10:20:26 +02:00 by Michael Soluyanov · 26 comments

System Information
Operating system: Linux-4.15.0-47-generic-x86_64-with-debian-buster-sid 64 Bits
Graphics card: GeForce GTX 1070/PCIe/SSE2 NVIDIA Corporation 4.5.0 NVIDIA 390.116

Blender Version
Broken: version: 2.80 (sub 64), branch: blender2.7, commit date: 2019-05-15 21:16, hash: 989d854385
Broken: version: 2.80 (sub 64), branch: blender2.7, commit date: 2019-05-14 22:59, hash: 4e46ed37fc
Worked: version: 2.80 (sub 64), branch: blender2.7, commit date: 2019-05-13 22:40, hash: f070bdd7c9

Short description of error
Can't resize selected node

Exact steps for others to reproduce the error

  1. Select any node
  2. Try to resize it - it will move instead of resizing
    Peek 2019-05-16 11-15.gif
  3. If node isn't selected - it will resize
**System Information** Operating system: Linux-4.15.0-47-generic-x86_64-with-debian-buster-sid 64 Bits Graphics card: GeForce GTX 1070/PCIe/SSE2 NVIDIA Corporation 4.5.0 NVIDIA 390.116 **Blender Version** Broken: version: 2.80 (sub 64), branch: blender2.7, commit date: 2019-05-15 21:16, hash: `989d854385` Broken: version: 2.80 (sub 64), branch: blender2.7, commit date: 2019-05-14 22:59, hash: `4e46ed37fc` Worked: version: 2.80 (sub 64), branch: blender2.7, commit date: 2019-05-13 22:40, hash: `f070bdd7c9` **Short description of error** Can't resize selected node **Exact steps for others to reproduce the error** 1. Select any node 2. Try to resize it - it will move instead of resizing ![Peek 2019-05-16 11-15.gif](https://archive.blender.org/developer/F7040550/Peek_2019-05-16_11-15.gif) 3. If node isn't selected - it will resize
Author
Member

Added subscriber: @crantisz

Added subscriber: @crantisz

#64939 was marked as duplicate of this issue

#64939 was marked as duplicate of this issue

#64935 was marked as duplicate of this issue

#64935 was marked as duplicate of this issue

#64880 was marked as duplicate of this issue

#64880 was marked as duplicate of this issue

#64754 was marked as duplicate of this issue

#64754 was marked as duplicate of this issue

#64696 was marked as duplicate of this issue

#64696 was marked as duplicate of this issue

Added subscriber: @irfancelik

Added subscriber: @irfancelik

Added subscriber: @Gvgeo-1

Added subscriber: @Gvgeo-1
Bastien Montagne was assigned by George Vogiatzis 2019-05-16 11:34:05 +02:00

Must be af088c2640 change.

Must be af088c2640 change.

Added subscribers: @WilliamReynish, @ideasman42, @brecht

Added subscribers: @WilliamReynish, @ideasman42, @brecht

This is same exact problem as in #64660… that one could be worked-around with a rather cheap trick, but current one am not sure…

This raises some more general design questions/issues in fact:

  • Is it expected that when an operator returns RUNNING_MODAL, event is always considered as handled, even when it also returns PASSTRHOUGH? Could we even have two or more modal ops running at the same time? @ideasman42?
  • Do we need to think about a better control over order in which ops are checked for? Or be much stricter in their polling functions?

Question 2 is real root of the issue here, as node select, being a tool, gets precedence over all more specific/constrained operators (like link or resize, which both can only be triggered on much smaller 'active' areas than node selection itself). We can keep adding exceptions to select to abort in case we are also on node's border, but then this is sort of endless, terribly brittle, and prone to fail in more and more corner cases and special cases. I’d rather see a way developed to properly control priorities of evaluation of ops, think we'll need this more and more if we want to keep adding more and more things to a single event (left mouse click in that case).

@brecht, @ideasman42, @WilliamReynish this is kind of fundamental issue in current design imho… If you want lots of operators to use same shortcuts as init trigger, relying on PASSTHROUGH usage everywhere is really not the best way to go. If we don’t want to/can’t add a proper prioritization system, then I think we should at least review all those ops, to get some much, much stricter polling functions, instead of adding all kind of exceptions in their exec code?

This is same exact problem as in #64660… that one could be worked-around with a rather cheap trick, but current one am not sure… This raises some more general design questions/issues in fact: - Is it expected that when an operator returns RUNNING_MODAL, event is always considered as handled, even when it also returns PASSTRHOUGH? Could we even have two or more modal ops running at the same time? @ideasman42? - Do we need to think about a better control over order in which ops are checked for? Or be much stricter in their polling functions? Question 2 is real root of the issue here, as node select, being a tool, gets precedence over all more specific/constrained operators (like link or resize, which both can only be triggered on much smaller 'active' areas than node selection itself). We can keep adding exceptions to select to abort in case we are also on node's border, but then this is sort of endless, terribly brittle, and prone to fail in more and more corner cases and special cases. I’d rather see a way developed to properly control priorities of evaluation of ops, think we'll need this more and more if we want to keep adding more and more things to a single event (left mouse click in that case). @brecht, @ideasman42, @WilliamReynish this is kind of fundamental issue in current design imho… If you want lots of operators to use same shortcuts as init trigger, relying on PASSTHROUGH usage everywhere is really not the best way to go. If we don’t want to/can’t add a proper prioritization system, then I think we should at least review all those ops, to get some much, much stricter polling functions, instead of adding all kind of exceptions in their exec code?

Added subscriber: @iss

Added subscriber: @iss

It should be possible to pass through events from modal(). Other modal operators just seem to return PASSTHROUGH without RUNNING_MODAL. The latter only really needs to be returned from invoke().

As for order, I think resize should be ahead of selection in the keymap and it's not now? That's generally how I would expect things to work, operators in the right order in the keymap and passing through to the next one if not used.

It should be possible to pass through events from `modal()`. Other modal operators just seem to return `PASSTHROUGH` without `RUNNING_MODAL`. The latter only really needs to be returned from `invoke()`. As for order, I think resize should be ahead of selection in the keymap and it's not now? That's generally how I would expect things to work, operators in the right order in the keymap and passing through to the next one if not used.

Thing is, we also need passthrough from initial invoke call, since it’s init event here that is shared between ops. But we'd rather not have select ran at all if some other, more specific op can run instead, else getting rid of select running code (getting out of modal loop) won't be exactly easy.

And select being a tool, it is tried well before any other ops from regular keymap., at least from what I can see in --debug-handlers reports…

Thing is, we also need passthrough from initial invoke call, since it’s init event here that is shared between ops. But we'd rather not have select ran at all if some other, more specific op can run instead, else getting rid of select running code (getting out of modal loop) won't be exactly easy. And select being a tool, it is tried well before any other ops from regular keymap., at least from what I can see in `--debug-handlers` reports…

This comment was removed by @Gvgeo-1

*This comment was removed by @Gvgeo-1*
Member

Added subscriber: @Oxer-1

Added subscriber: @Oxer-1

@ideasman42 assigning to you to ensure you see that task, we really need input from event master here. Why do we break event handling when operator returns (OPERATOR_PASS_THROUGH | OPERATOR_RUNNING_MODAL), at the end of wm_handler_operator_call()? This seems the opposite of PASSTHROUGH idea to me.

Can’t see how we can do what we want to do here, currently… We need to keep events being processed after that initial call to invoke() has returned that combination of flags.

Also, raising priority since that should be fixed asap imho.

In lack of a better idea, I’ll go rampaging poll() func of the select op to return false in case mouse is over a socket or node border, in a few days…

@ideasman42 assigning to you to ensure you see that task, we really need input from event master here. Why do we break event handling when operator returns `(OPERATOR_PASS_THROUGH | OPERATOR_RUNNING_MODAL)`, at the end of `wm_handler_operator_call()`? This seems the opposite of PASSTHROUGH idea to me. Can’t see how we can do what we want to do here, currently… We need to keep events being processed after that initial call to `invoke()` has returned that combination of flags. Also, raising priority since that should be fixed asap imho. In lack of a better idea, I’ll go rampaging `poll()` func of the select op to return false in case mouse is over a socket or node border, in a few days…

Added subscriber: @nacioss

Added subscriber: @nacioss
Bastien Montagne removed their assignment 2019-05-20 16:21:54 +02:00
Campbell Barton was assigned by Bastien Montagne 2019-05-20 16:21:54 +02:00

Added subscriber: @mont29

Added subscriber: @mont29

Closed as duplicate of #64935

Closed as duplicate of #64935

Changed status from 'Duplicate' to: 'Open'

Changed status from 'Duplicate' to: 'Open'

Added subscriber: @nobi08

Added subscriber: @nobi08
Member

Added subscriber: @JoshuaZacharias

Added subscriber: @JoshuaZacharias
Author
Member

Maybe related: Reroute dots can't be selected using standard select tool, only via box, lasso circle selcect tools.

Снимок экрана от 2019-05-21 21-12-01.png

Maybe related: Reroute dots can't be selected using standard select tool, only via box, lasso circle selcect tools. ![Снимок экрана от 2019-05-21 21-12-01.png](https://archive.blender.org/developer/F7058742/Снимок_экрана_от_2019-05-21_21-12-01.png)

This issue was referenced by fd3f75a02c

This issue was referenced by fd3f75a02cf9c40c7ba0d15f2c55188b18662a93

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
8 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#64693
No description provided.