Affects Version/s: 2.0, 2.0.1
Fix Version/s: 2.0.2
Let the system volumen be C:. If FileBrowserSheet.setRootDirectory is called with a path on a different drive (<volume>:\the\path), on the first time root directory is set to "<volume>:" instead of "<volume>:\the\path".
I was not sure if it had to do with the patch I provided (it's also in 2.0), so I analized the behavior. It's caused by a strange loop of listeners:
- If FileBrowserSheet.setRootDirectory is called this triggers the fileBrowserSheetListeners.
- One of the listeners is TerraFileBrowserSkin.rootDirectoryChanged.
- In this method driveListButton.setSelectedItem is called with the new drive.
- This triggers the listButtonSelectionListeners of the driveListButton,
- One of the listeners triggers FileBrowser.setRootDirectory with this newly "selected" drive, so rootdirectory is set to this drive instead of the given path for this drive.
Workaround: calling FileBrowserSheet.setRootDirectory twice in the application breaks the circle, because FileBrowser.setRootDirectory is not triggered again from driveListButton.