Saved Layouts which include Linked Tabs with Navigation Lock broken

As I mentioned in another topic, I followed some advice and created a series of saved folder layouts to manage workflow.

I've noted some strange behaviour, and today I think I pnned it down.

If I open a fresh lister, and apply a layout which includes linked tabs with navigation lock enabled,

the FIRST time I change directory in either linked tab, it behaves as if navigation lock is disabled.

The SECOND directory change behaves correctly, but now complains The two folders are no longer in sync..

I suspect this only happens when applying a LAYOUT with linked tabs, from a button which includes the LAYOUTTHISLISTER=paths option.

Without this option (or when clicked from the Settings->Layouts->.... dropdown) a new window is opened, and the linked tabs works fine.

Thanks

Do you have Preferences / Display / Transition Animations / Enable transition animations turned off, by any chance?

I've been able to reproduce this, but only when they are off, for some reason. Just wondering if it is the same for you. Will look in more detail tomorrow.

Thanks for looking into it. The animation settings are default, but I do have more information.

I've wasted a fair bit of time digging, and I think I understand the circumstances required to trigger the bug. This works on a fresh/vanilla install of DOpus 12.20.

  1. Create a layout anyway you want with the following features:
    a. 1 pair of linked tabs with navigation lock enabled.
    b. The SRC pane includes at least one additional (background) tab
  2. Enable at least one plugin which implements the OnBeforeFolderChange() method.
    a. The tiny sample plugin below is enough to trigger the bug.
  3. Load a LAYOUT to an existing window using LAYOUTTHISLISTER=paths

I load the layout using;

Prefs LAYOUT=name LAYOUTTHISLISTER=paths

(I tested adding NOSCRIPT, but it made no difference)

When I disabled all plugins, the problem went away. I need some of these plugins so I created a dummy OnBeforeFolderChange method for testing.

This simple do-nothing plugin is enough to trigger the bug.

function OnInit(initData) {
  var hasOnTabFunc = DOpus.version.AtLeast('12.9.2');
  var DOpusFactory = DOpus.Create;
  initData.name = 'Test Addin';
  initData.version = '0.1';
  initData.copyright = 'IPL';
  initData.desc = 'Test script';
  initData.default_enable = true;
  initData.min_version = '12.0';
}

function OnBeforeFolderChange(BFC) {
  return false;
}

Any one of the following changes will prevent the bug from manifesting;

  1. Remove the second tab in the SRC pane of the saved lister
  2. Disable any plugin which implements OnBeforeFolderChange()
  3. Open the layout in a new window (Omit the LAYOUTTHISLISTER=paths option)

I hope that makes it easier to reproduce. After I figured out disabling plugins removed the problem, but the problem didn't manifest if I loaded the same plugin into my VM containing a vanilla DOpus deployment, I dug a little deeper.

I figured out, by editing the saved layout oll file, that removing all additional tabs from the SRC pane eliminated the problem.

Unfortunately for me, the plugin is needed, (even though it has nothing to do with this particular layout) and the multiple tabs are the point of the saved layout, so for now I'll disable the LAYOUTTHISLISTER option. Hopefully you are able to reproduce this exact behaviour and correct it.

A saved config based on a fresh install with minimal configuration (1 plugin + 1 layout + 1 button) is available here: Saved Config

After loading this config to a test machine, just click the Load Test Layout button (which loads two linked panes, both showing the root of C:) and try to navigate to a subfolder.
image

Thanks

EDIT(s): Post accidentally posted before finished. Took a few edits to clean up.

Many thanks for the detail!

A fix for this has been made for the next beta, which should be out later this week. Please let us know if you still see any issues once that is out and installed.

1 Like