Author: rwhitcomb Date: Wed Dec 18 00:01:58 2013 New Revision: 1551771 URL: http://svn.apache.org/r1551771 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. This is a merge of revision 1551768 from branches/2.0.x to trunk. Modified: pivot/trunk/ (props changed) pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraFileBrowserSkin.java Propchange: pivot/trunk/ ------------------------------------------------------------------------------ Merged /pivot/branches/2.0.x:r1551768 Modified: pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraFileBrowserSkin.java URL: http://svn.apache.org/viewvc/pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraFileBrowserSkin.java?rev=1551771&r1=1551770&r2=1551771&view=diff ============================================================================== --- pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraFileBrowserSkin.java (original) +++ pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraFileBrowserSkin.java Wed Dec 18 00:01:58 2013 @@ -684,6 +684,7 @@ public class TerraFileBrowserSkin extend private boolean updatingSelection = false; private boolean refreshRoots = true; + private boolean selectingDriveFromRootDirectory = false; private RefreshFileListTask refreshFileListTask = null; @@ -724,7 +725,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); @@ -1125,7 +1128,9 @@ public class TerraFileBrowserSkin extend drive = path.get(path.getLength() - 1); } + selectingDriveFromRootDirectory = true; driveListButton.setSelectedItem(drive); + selectingDriveFromRootDirectory = false; pathListButton.setListData(path); pathListButton.setButtonData(rootDirectory);