LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Bug: Hidden Iteration Terminal prevents resizing For and While Loops via Ctrl-Alt-drag

Usually when resizing a for loop structure or while loop structure, the iteration terminal will move together with the lower left corner of the structure's border.

 

This is true when:

  • terminal is visible and resizing the structure by grabbing the border,
  • terminal is visible and resizing via Ctrl-drag or Ctrl-Alt-drag (and the start point for the drag operation is to the top right of the terminal),
  • terminal is not visible and resizing by grabbing the border.

The same is NOT true when:

  • terminal is not visible and resizing via Ctrl-drag or Ctrl-Alt-drag.

This means that reszing via Ctrl-Alt-drag is limited in range until the point when the border of the structure touches the (invisible) terminal.

 

Affected Version: LV 2021 SP1

 

Steps to reproduce:

  1. Place for loop or while loop structure.
    snip1.png
  2. Hide iteration terminal.
  3. Try to shrink the structure by Ctrl-Alt-clicking into the center of the structure and dragging towards the top-right.

    maflAT_1-1655839961184.png

 

Expected behaviour:

Structure shrinks unhindered as long as there are no other objects interfering with its border.

 

Actual behaviour:

The structures border is blocked by the invisible terminal and can't be resized by more than a few pixels.

 

Loop after failed resize attempt with iteration terminal re-enabled:

maflAT_0-1655840166253.png

 

This same behaviour can be observed with for loops and while loops.

Event structures with a hidden event data node do not seem to be affected by this bug.

0 Kudos
Message 1 of 11
(1,585 Views)

I think you have auto-grow turned on. Turn it off and try again. It works for me as expected when auto-grow is not enabled.

thols_0-1655886113543.png

 

 

 

Certified LabVIEW Architect
0 Kudos
Message 2 of 11
(1,579 Views)

But I agree that it is not what I expect. If the "Iteration terminal" setting would have been on the "Visible Items" sub-menu, then I could maybe accept that the terminal simply is not visible but still there, but with the menu-selection as it is now, I would expect the iteration terminal to be removed entirely and thus not affect resizing regardless of auto-grow settings.

 

thols_0-1655886239645.png

 

Certified LabVIEW Architect
Message 3 of 11
(1,575 Views)

That's a good one.  I guess I never noticed because the first thing I do is turn off auto-grow.

Bill
CLD
(Mid-Level minion.)
My support system ensures that I don't look totally incompetent.
Proud to say that I've progressed beyond knowing just enough to be dangerous. I now know enough to know that I have no clue about anything at all.
Humble author of the CLAD Nugget.
Message 4 of 11
(1,540 Views)

@thols wrote:

I think you have auto-grow turned on. Turn it off and try again. It works for me as expected when auto-grow is not enabled.

thols_0-1655886113543.png


The bug is even weirder than that.

I was about to disagree with your statement because I did not see any change in behaviour after disabling "Auto Grow" on an existing loop.

 

Turns out, I have the option "Place structures with Auto Grow enabled" checked in the options menu.

maflAT_0-1655946406254.png

If i disable this option and place a new structure, the problem almost goes away.

 

 

Why almost?

Because after shrinking the loop with Ctrl-Alt-drag and subsequently re-enabling the iteration terminal, it does not show up at all:

maflAT_2-1655947382198.png

Only after resizing the loop by a few more pixels via grabbing at the border it becomes visible again.

 

Again, this bug is not present when resiszing by grabbing the border of the loop.

Message 5 of 11
(1,499 Views)

@maflAT wrote:

@thols wrote:

I think you have auto-grow turned on. Turn it off and try again. It works for me as expected when auto-grow is not enabled.

thols_0-1655886113543.png


The bug is even weirder than that.

I was about to disagree with your statement because I did not see any change in behaviour after disabling "Auto Grow" on an existing loop.

 

Turns out, I have the option "Place structures with Auto Grow enabled" checked in the options menu.

maflAT_0-1655946406254.png

If i disable this option and place a new structure, the problem almost goes away.

 

 

Why almost?

Because after shrinking the loop with Ctrl-Alt-drag and subsequently re-enabling the iteration terminal, it does not show up at all:

maflAT_2-1655947382198.png

Only after resizing the loop by a few more pixels via grabbing at the border it becomes visible again.

 

Again, this bug is not present when resiszing by grabbing the border of the loop.


Thanks for the deep dive into the issue!

Bill
CLD
(Mid-Level minion.)
My support system ensures that I don't look totally incompetent.
Proud to say that I've progressed beyond knowing just enough to be dangerous. I now know enough to know that I have no clue about anything at all.
Humble author of the CLAD Nugget.
0 Kudos
Message 6 of 11
(1,484 Views)

@maflAT wrote:
...

...

Because after shrinking the loop with Ctrl-Alt-drag and subsequently re-enabling the iteration terminal, it does not show up at all:

maflAT_2-1655947382198.png

Only after resizing the loop by a few more pixels via grabbing at the border it becomes visible again.

 

Again, this bug is not present when resiszing by grabbing the border of the loop.


You can make the i-terminal move beyond the loop border even when it is visible this way. In fact, now there is a way to get it back without enlarging the loop and searching for the terminal. Now you only need to disable and then enable the terminal and resize the loop by a pixel. It would be better it resizing was not needed and the terminal was placed within the loop bounds directly when enabling the terminal though.

 

But I have always wondered why it is allowed to move stuff outside of the loop borders but still be in the loop, hidden beneath the outer diagram. I guess that was one of the things that auto-grow tried to solve.

Certified LabVIEW Architect
0 Kudos
Message 7 of 11
(1,481 Views)
0 Kudos
Message 8 of 11
(1,477 Views)

I've posted this before, but nobody seemed to care...

 

Note that showing or hiding the iteration terminal does not mark a VI as changed.

 

Steps to reproduce:

1) Using LV20 (haven't tried a more recent LV)

2) Create or open a VI with a loop.

3) Save it.

4) Show or hide the iteration terminal.

5) Notice there's no * to indicate that the VI has changed.

 

Save all won't save this VI. Next time the VI is loaded, the terminal is back to it's original state.

Message 9 of 11
(1,464 Views)

wiebe@CARYA wrote:

I've posted this before, but nobody seemed to care...

 

Note that showing or hiding the iteration terminal does not mark a VI as changed.

 

Steps to reproduce:

1) Using LV20 (haven't tried a more recent LV)

2) Create or open a VI with a loop.

3) Save it.

4) Show or hide the iteration terminal.

5) Notice there's no * to indicate that the VI has changed.

 

Save all won't save this VI. Next time the VI is loaded, the terminal is back to it's original state.


That sounds like a different problem than the rest of this thread.

---------------------------------------------
Certified LabVIEW Developer (CLD)
There are two ways to tell somebody thanks: Kudos and Marked Solutions
0 Kudos
Message 10 of 11
(1,426 Views)