Regression: Dragging an ID from the Outliner of a window cannot be dropped in another window #93685
Labels
No Label
Interest
Alembic
Interest
Animation & Rigging
Interest
Asset System
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
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
Viewport & EEVEE
Interest
Virtual Reality
Interest
Vulkan
Interest
Wayland
Interest
Workbench
Interest: X11
Legacy
Asset Browser Project
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
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
Module
Viewport & EEVEE
Platform
FreeBSD
Platform
Linux
Platform
macOS
Platform
Windows
Severity
High
Severity
Low
Severity
Normal
Severity
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
7 Participants
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: blender/blender#93685
Loading…
Reference in New Issue
Block a user
No description provided.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
System Information
Operating system: Windows 10
Graphics card: EVGA 3090 FTW3
Blender Version
Broken: 2.90 (introduced in
7dbfc864e6
)Worked: 2.83
Short description of error
When I have two windows open, I can't drag objects from, for example, the outliner to geometry nodes editor in another window.
If I open geometry nodes editor in the same window, I can drag an object from the outliner to the editor and get an object info node no problem.
Exact steps for others to reproduce the error
drag_and_drop_on_another_window.blend
Added subscriber: @jonsedlak222
Added subscriber: @mano-wii
Changed status from 'Needs Triage' to: 'Needs Developer To Reproduce'
Thanks for the report, I can confirm the problem on windows.
But this is not just an outliner or geometry nodes problem, it affects any drag and drop operation from one window to another window.
What happens is that drag events have the mouse captured for the window.
This means that only the window where the mouse button was pressed is the one that receives mouse events.
I'm not sure why it works like that, it must have some benefit.
If the behavior is different on Linux it deserves more attention.
Draggin Object info from outliner in one blender window to geometry nodes editor in another windowto Dragging an ID from a window cannot be dropped on another windowAdded subscriber: @PratikPB2123
I can confirm this. Maybe this would be useful in multi-monitor setup.
Looking at the current behavior as @mano-wii said, this report sounds more about the request to support dragging between multiple windows than a bug in blender.
I think we can close this report.
Changed status from 'Needs Developer To Reproduce' to: 'Confirmed'
Added subscriber: @natecraddock
Upon further investigation, this is indeed a problem with DragDrop from the Outliner (and perhaps from a few others editors).
Even with a captured window, events are still sent to other windows as long as the window manager has no modal operators running.
But the
OUTLINER_OT_item_drag_drop
operator invokes theVIEW2D_OT_edge_pan
modal operator and thus, events for other windows are no longer dispatched (Seewm_event_cursor_other_windows
).If we remove the
VIEW2D_OT_edge_pan
operator call, the problem is solved:So this problem was introduced in
7dbfc864e6
(Blender 2.90).It's a regression!
Cc. @natecraddock
Dragging an ID from a window cannot be dropped on another windowto Regression: Dragging an ID from the Outliner of a window cannot be dropped in another windowAdded subscribers: @JulianEisel, @ThomasDinges
@natecraddock Hey, are you still around to take a look at Germanos patch above? Alternatively can I ask you @JulianEisel to take a look please? Since a patch is available it would be good to fix this high priority bug.
Hi @ThomasDinges, I pay attention to development from afar, but don't have the time to help sadly
@natecraddock I understand, thanks for getting back to me anyway! :)
Added subscriber: @Harley
Or we could relax that "Let's skip windows having modal handlers now" a bit in
wm_event_cursor_other_windows
Old code though, not sure I want to touch it. LOL
I went after more context for that code.
It was from a bug fix described at https://lists.blender.org/pipermail/bf-blender-cvs/2010-January/025570.html
From what I can tell, some modal operators (which allow the cursor to leave the region) need to capture all events for themselves.
Otherwise the other window's interface will interact and some events may be lost.
If we remove that code, we could notice the problem with for example the Measure Tool.
In this case, if we drag the ruler to another window, the action of releasing the {key LMB} may be lost for the main window.
Checking
WM_HANDLER_BLOCKING
doesn't seem to solve it.Maybe implementing a new flag and setting it to
VIEW2D_OT_edge_pan
would be a solution?That might be a great solution. But there is another thought that might be simpler. Has a very small downside, but would need a bit more investigation. Right now the issue is that VIEW2D_OT_edge_pan is started as soon as you start dragging and stays running even when you drag it out of the window. We could let that operator finish when it enters a new window:
The small downside is pretty small. Right now you can edge pan, drag out of the window to another, come back to the first, do more edge panning. With above you can't continuing to edge pan after you've dragged out that far. Not sure anyone would care.
The further investigation is that after a dragand drop of an object from one window to another you can sometimes be left with a "stopsign" mouse cursor. Happens enough to know it is a thing but I'm not sure of the circumstances and cause of it. Regular and modal cursors are set per-window though, so probably an easy thing to track down if we want to go this route.
Added a PR that addresses this issue but needs some thought: #105196
Lowering the priority of this now. The drag & drop here is a shortcut but isn't enabling anything that isn't possible in other ways too. The regression happened 3 years ago and this is the only report about this so far, so I doubt people run into it a lot.
We can still try to get the fix in for the 3.5 release but other things have priority for me.
I'd vote for not even trying for 3.5 at all and targeting the fix for 3.6.