Author: rwhitcomb Date: Tue Dec 17 23:52:51 2013 New Revision: 1551768 URL: http://svn.apache.org/r1551768 Log: PIVOT-932: Setting root directory of a file browser that points to a non-default drive (on Windows) leaves the display inconsistent: the correct directory is displayed but the file list is from the root of that drive.
So, suppress changing the root directory when a different drive is selected while setting the root directory. Modified: pivot/branches/2.0.x/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraFileBrowserSkin.java Modified: pivot/branches/2.0.x/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraFileBrowserSkin.java URL: http://svn.apache.org/viewvc/pivot/branches/2.0.x/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraFileBrowserSkin.java?rev=1551768&r1=1551767&r2=1551768&view=diff ============================================================================== --- pivot/branches/2.0.x/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraFileBrowserSkin.java (original) +++ pivot/branches/2.0.x/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraFileBrowserSkin.java Tue Dec 17 23:52:51 2013 @@ -677,6 +677,7 @@ public class TerraFileBrowserSkin extend private boolean updatingSelection = false; private boolean refreshRoots = true; + private boolean selectingDriveFromRootDirectory = false; private RefreshFileListTask refreshFileListTask = null; @@ -717,7 +718,9 @@ public class TerraFileBrowserSkin extend if (previousSelectedItem != null) { File drive = (File)listButton.getSelectedItem(); if(drive != null && drive.canRead()) { - fileBrowser.setRootDirectory(drive); + if(!selectingDriveFromRootDirectory){ + fileBrowser.setRootDirectory(drive); + } } else { refreshRoots = true; listButton.setSelectedItem(previousSelectedItem); @@ -1117,7 +1120,9 @@ public class TerraFileBrowserSkin extend drive = path.get(path.getLength() - 1); } + selectingDriveFromRootDirectory = true; driveListButton.setSelectedItem(drive); + selectingDriveFromRootDirectory = false; pathListButton.setListData(path); pathListButton.setButtonData(rootDirectory);