UI Region Doesn't Close Under Specific Conditions #111086

Closed
opened 2023-08-13 11:24:30 +02:00 by World-Theory · 13 comments

System Information
Operating system: Windows 11 Home
Version: 10.0.22621 Build 22621
Graphics card: NVIDIA GeForce RTX 3060/PCIe/SSE2 NVIDIA Corporation 4.5.0 NVIDIA 536.40

Blender Version
Broken: version: 3.6.1, branch: blender-v3.6-release, commit date: 2023-07-17 12:50, hash: 8bda729ef4dc
Worked: unknown

Short description of error
When dragging a UI region over another region in order to close the second region, the affected area will be highlighted like usual, but when the mouse button is released to confirm the action, the change fails to take place, and the region remains.

Exact steps for others to reproduce the error

  1. Open Blender
  2. Un-maximize Blender Window, making it smaller
  3. Open the blend file included as attachment to bug report by navigating to it from within Blender's "Open..." dialog
  4. After the file loads, do not maximize the window
  5. Try to close a UI region like normal, by dragging another region over it from a region border intersection

Notes
Only seems to happen in certain cases where the Blender window is not maximized to full size. Unable to reproduce with default Blender scene. Can reproduce with included file. (A project I encounter the bug in, and then simplified of non-essential data.)

Also, I found a work around: Maximize the window to full size, then close the region. Work around does not work if you maximize the window, then return it to un-maximized size without closing a region while it was maximized. If a region is closed while maximized, then you return the window to a smaller size, you will be able to continue closing regions successfully like normal.

**System Information** Operating system: Windows 11 Home Version: 10.0.22621 Build 22621 Graphics card: NVIDIA GeForce RTX 3060/PCIe/SSE2 NVIDIA Corporation 4.5.0 NVIDIA 536.40 **Blender Version** Broken: version: 3.6.1, branch: blender-v3.6-release, commit date: 2023-07-17 12:50, hash: `8bda729ef4dc` Worked: unknown **Short description of error** When dragging a UI region over another region in order to close the second region, the affected area will be highlighted like usual, but when the mouse button is released to confirm the action, the change fails to take place, and the region remains. **Exact steps for others to reproduce the error** 1. Open Blender 2. Un-maximize Blender Window, making it smaller 3. Open the blend file included as attachment to bug report by navigating to it from within Blender's "Open..." dialog 4. After the file loads, do not maximize the window 5. Try to close a UI region like normal, by dragging another region over it from a region border intersection **Notes** Only seems to happen in certain cases where the Blender window is not maximized to full size. Unable to reproduce with default Blender scene. _Can_ reproduce with included file. (A project I encounter the bug in, and then simplified of non-essential data.) Also, I found a work around: Maximize the window to full size, then close the region. Work around does not work if you maximize the window, then return it to un-maximized size without closing a region while it was maximized. If a region is closed while maximized, then you return the window to a smaller size, you will be able to continue closing regions successfully like normal.
World-Theory added the
Type
Report
Priority
Normal
Status
Needs Triage
labels 2023-08-13 11:24:31 +02:00
Iliya Katushenock added the
Interest
User Interface
label 2023-08-13 23:41:51 +02:00

Can not reproduce in

  • 4.0.0 Alpha, branch: main, commit date: 2023-08-06 21:11, hash: 93728fee53dc
  • 3.6.2 Release Candidate, branch: blender-v3.6-release, commit date: 2023-08-11 11:40, hash: 934165f1c8ee
  • 3.6.0 Release Candidate, branch: blender-v3.6-release, commit date: 2023-06-26 12:12, hash: f7d46d064487
Can not reproduce in - 4.0.0 Alpha, branch: main, commit date: 2023-08-06 21:11, hash: `93728fee53dc` - 3.6.2 Release Candidate, branch: blender-v3.6-release, commit date: 2023-08-11 11:40, hash: `934165f1c8ee` - 3.6.0 Release Candidate, branch: blender-v3.6-release, commit date: 2023-06-26 12:12, hash: `f7d46d064487`
Member

Can confirm in current master. Calling Join area from context menu neither works.

Can confirm in current master. Calling `Join area` from context menu neither works.
Member

Appears to be a regression introduced between 3.4-3.5 release

Appears to be a regression introduced between 3.4-3.5 release
Pratik Borhade added
Priority
High
and removed
Priority
Normal
labels 2023-08-14 05:27:04 +02:00
Pratik Borhade added this to the 3.6 LTS milestone 2023-08-14 05:27:18 +02:00
Member

Try to close a UI region like normal, by dragging another region over it from a region border intersection

Which ones in particular? The sample blend file contains 6 areas and as far as I can see there are 18 possible joins possible. Do all of these fail for you or just particular ones?

In my case I can click on the headers of each of the 6 areas and select "Close" and they close as expected. For testing here, opening the file, closing one area, reopening the file, closing another area, etc.

Of the 18 possible joins I think the only problems I am seeing involve the Outliner area (top-right). I can join INTO it, so going from Properties to Outliner, or 3D View to Outliner.

But I am seeing errors joining OUT from it. So I can't join from Outliner to Properties using the bottom-left zone, but can do so with the bottom-right zone. So for me the only two non-working corner zones are the top-left and bottom-left zones of the Outliner.

Are you seeing the same behavior or something different?

> Try to close a UI region like normal, by dragging another region over it from a region border intersection Which ones in particular? The sample blend file contains 6 areas and as far as I can see there are 18 possible joins possible. Do all of these fail for you or just particular ones? In my case I can click on the headers of each of the 6 areas and select "Close" and they close as expected. For testing here, opening the file, closing one area, reopening the file, closing another area, etc. Of the 18 possible joins I think the only problems I am seeing involve the Outliner area (top-right). I can join INTO it, so going from Properties to Outliner, or 3D View to Outliner. But I am seeing errors joining OUT from it. So I can't join from Outliner to Properties using the bottom-left zone, but can do so with the bottom-right zone. So for me the only two non-working corner zones are the top-left and bottom-left zones of the Outliner. Are you seeing the same behavior or something different?
Member

@World-Theory

If the above is correct (that the problems in the sample blend are related to joining from the Outliner area to 3D View and to Properties), then I am hoping you can do one thing to confirm something.

With that file loaded in a way that leads to the error. In the 3D View , select "View Sidebar". You should now be able to join from Outliner. In fact it should work if you show the sidebar and then hide it again.

That is basically the test. Open the 3DView sidebar and see if everything works correctly after that. If so I have a fix, if not let me know what else remains broken.

Thanks!

@World-Theory If the above is correct (that the problems in the sample blend are related to joining from the Outliner area to 3D View and to Properties), then I am hoping you can do one thing to confirm something. With that file loaded in a way that leads to the error. In the 3D View , select "View Sidebar". You should now be able to join from Outliner. In fact it should work if you show the sidebar and then hide it again. That is basically the test. Open the 3DView sidebar and see if everything works correctly after that. If so I have a fix, if not let me know what else remains broken. Thanks!
Member

@Harley : uploaded the video for reference.
haven't done the bisecting yet, will do (I'll also test the PR locally 😅 )
Guess the culprit here is small Spreadsheet region at left side (resizing the spreadsheet restores the "join area" behavior)

Can even redo this behavior from default startup file

@Harley : uploaded the video for reference. haven't done the bisecting yet, will do (I'll also test the PR locally 😅 ) Guess the culprit here is small Spreadsheet region at left side (resizing the spreadsheet restores the "join area" behavior) Can even redo this behavior from default startup file
2.0 MiB
Member

Caused by a81abbbb8f
@Harley ^

Caused by a81abbbb8f047f969cbe26ceeb6223d623f4e234 @Harley ^
Member

Really?!? Wow, thanks for bisecting this! Will take a look tomorrow

Really?!? Wow, thanks for bisecting this! Will take a look tomorrow
Author

#111086 (comment)

(Sorry for slow reply.) I am seeing the same behavior. I didn't think to exhaustively try all possible joins when I first reported it. The Outliner's bottom right corner is extra weird. I can't even trigger Blender to try to join from the Outliner to the 3D Viewport from that corner. But I can trigger Blender to join the Properties region into the 3D Viewport from that same shared corner (top right of Properties).

The way the bug presented to me when I first encountered it, Blender makes it look like I have triggered the join from one region to another correctly, by changing the mouse cursor to an chevron style arrow, and highlighting the region I'm joining from with a translucent white overlay. But when I release the mouse button to confirm the action, it just doesn't do anything.

That seems a little different to how it works for the Outliner's bottom right corner, as I can't get it to do even that much; it just wants to either resize the Outliner along the bottom border, or the mouse cursor changes to a 🛇 (prohibited sign).

#111086 (comment)

Yes, trying that works for me.

> https://projects.blender.org/blender/blender/issues/111086#issuecomment-998866 (Sorry for slow reply.) I am seeing the same behavior. I didn't think to exhaustively try all possible joins when I first reported it. The Outliner's bottom right corner is extra weird. I can't even trigger Blender to try to join from the Outliner to the 3D Viewport from that corner. But I can trigger Blender to join the Properties region into the 3D Viewport from that same shared corner (top right of Properties). The way the bug presented to me when I first encountered it, Blender makes it look like I have triggered the join from one region to another correctly, by changing the mouse cursor to an chevron style arrow, and highlighting the region I'm joining from with a translucent white overlay. But when I release the mouse button to confirm the action, it just doesn't do anything. That seems a little different to how it works for the Outliner's bottom right corner, as I can't get it to do even that much; it just wants to either resize the Outliner along the bottom border, or the mouse cursor changes to a 🛇 (prohibited sign). > https://projects.blender.org/blender/blender/issues/111086#issuecomment-998905 Yes, trying that works for me.
Harley Acheson self-assigned this 2023-08-18 17:11:05 +02:00
Member

Okay, I understand now why I tracked this down to something different than @PratikPB2123 did : we are both right as there are two different things going on in the supplied file.

There is something I can change that will fix the issues with joining the Outliner (top-right) using it's corner zones on its left edge. That makes perfect sense. It is related to this problem: #108295 and can be fixed with this: #111126

However there is a second problem in the file that takes longer to explain. As you resize areas you will see that they have a minimum horizontal and vertical size. Basically you can't make an area less tall than the height of a header. And you can't make it narrower than a similar amount.

But. You can make an area as narrow as it can go and THEN resize the entire window. The window narrowing causes all areas to get smaller proportionally and that can make areas narrower than the minimum size. Our current code does ensure that no area goes below the vertical minimum, but does not check for horizontal minimum. I do have some old code to address this and should look at that again: https://archive.blender.org/developer/D15872

These minimums are necessary in the code that joins areas. In a nutshell if two areas share edges that are aligned less than the minimums they can be simply moved without danger. And if this alignment is MORE than the minimums I can split it and leave an area that is valid.

In your supplied file there is a narrow "Spreadsheet" area at top-left. That being there will not allow a join from the "3DView" to the "Geometry Nodes" area below, or vice versa. Doing so would break that speadsheet area as it is within the join bounds. Trying to do such a join just fails silently.

Is the above something you noticed? Would it help if I logged the error - show a notification on the status bar?

Okay, I understand now why I tracked this down to something different than @PratikPB2123 did : we are both right as there are two different things going on in the supplied file. There is something I can change that will fix the issues with joining the Outliner (top-right) using it's corner zones on its left edge. That makes perfect sense. It is related to this problem: #108295 and can be fixed with this: #111126 However there is a second problem in the file that takes longer to explain. As you resize areas you will see that they have a minimum horizontal and vertical size. Basically you can't make an area less tall than the height of a header. And you can't make it narrower than a similar amount. But. You can make an area as narrow as it can go and THEN resize the entire window. The window narrowing causes all areas to get smaller proportionally and that can make areas narrower than the minimum size. Our current code does ensure that no area goes below the vertical minimum, but does not check for horizontal minimum. I do have some old code to address this and should look at that again: https://archive.blender.org/developer/D15872 These minimums are necessary in the code that joins areas. In a nutshell if two areas share edges that are aligned less than the minimums they can be simply moved without danger. And if this alignment is MORE than the minimums I can split it and leave an area that is valid. In your supplied file there is a narrow "Spreadsheet" area at top-left. That being there will not allow a join from the "3DView" to the "Geometry Nodes" area below, or vice versa. Doing so would break that speadsheet area as it is within the join bounds. Trying to do such a join just fails silently. Is the above something you noticed? Would it help if I logged the error - show a notification on the status bar?
Blender Bot added
Status
Resolved
and removed
Status
Confirmed
labels 2023-08-18 21:31:47 +02:00
Member

Would it help if I logged the error - show a notification on the status bar?

Thanks @Harley for handling both cases 😅 . Yes, make sense to add error message.
Can we backport these commits to 3.6?

> Would it help if I logged the error - show a notification on the status bar? Thanks @Harley for handling both cases 😅 . Yes, make sense to add error message. Can we backport these commits to 3.6?
Member

Can we backport these commits to 3.6?

TL;DR: We can backport #111280 but not #111126.

Long story is that #111126 fixes something only found in 4.0 since #108295. I don't think it would do harm if backported but I don't think it would do any good.

#111280 is just the new error messages and that is for an issue that goes back to when complex joining was first introduced. Although you bisected it to something in 2022, that commit was merely ensuring that this situation (areas below the minimums that are within the bounds of two other areas' proposed join area) did not wreck anything. Prior to that commit the little Spreadsheet area at the top left would have been squished to nothing improperly. So having this error message in 3.6 also would be nice.

> Can we backport these commits to 3.6? TL;DR: We can backport #111280 but **not** #111126. Long story is that #111126 fixes something only found in 4.0 since #108295. I don't think it would do harm if backported but I don't think it would do any good. #111280 is just the new error messages and that is for an issue that goes back to when complex joining was first introduced. Although you bisected it to something in 2022, that commit was merely ensuring that this situation (areas below the minimums that are within the bounds of two other areas' proposed join area) did not wreck anything. Prior to that commit the little Spreadsheet area at the top left would have been squished to nothing improperly. So having this error message in 3.6 also would be nice.
Member

Long story is that #111126 fixes something only found in 4.0 since #108295.

oh, I did not know about that.

I'll add #111280 in 3.6 backporting list.

> Long story is that #111126 fixes something only found in 4.0 since #108295. oh, I did not know about that. I'll add #111280 in 3.6 backporting list.
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#111086
No description provided.