diff options
Diffstat (limited to 'libjava/classpath/gnu/java/awt/peer/gtk/GtkFileDialogPeer.java')
| -rw-r--r-- | libjava/classpath/gnu/java/awt/peer/gtk/GtkFileDialogPeer.java | 31 |
1 files changed, 16 insertions, 15 deletions
diff --git a/libjava/classpath/gnu/java/awt/peer/gtk/GtkFileDialogPeer.java b/libjava/classpath/gnu/java/awt/peer/gtk/GtkFileDialogPeer.java index 333407b247f..a0ae9e9eef5 100644 --- a/libjava/classpath/gnu/java/awt/peer/gtk/GtkFileDialogPeer.java +++ b/libjava/classpath/gnu/java/awt/peer/gtk/GtkFileDialogPeer.java @@ -41,8 +41,6 @@ package gnu.java.awt.peer.gtk; import java.awt.Dialog; import java.awt.FileDialog; import java.awt.Graphics; -import java.awt.Window; -import java.awt.event.ComponentEvent; import java.awt.peer.FileDialogPeer; import java.io.File; import java.io.FilenameFilter; @@ -68,7 +66,8 @@ public class GtkFileDialogPeer extends GtkDialogPeer implements FileDialogPeer ((FileDialog) awtComponent).getMode()); FileDialog fd = (FileDialog) awtComponent; - + + nativeSetDirectory(System.getProperty("user.dir")); setDirectory(fd.getDirectory()); setFile(fd.getFile()); @@ -117,13 +116,9 @@ public class GtkFileDialogPeer extends GtkDialogPeer implements FileDialogPeer // is not absolute, let's construct it based on current directory. currentFile = fileName; if (fileName.indexOf(FS) == 0) - { - nativeSetFile (fileName); - } + nativeSetFile(fileName); else - { - nativeSetFile (nativeGetDirectory() + FS + fileName); - } + nativeSetFile(nativeGetDirectory() + FS + fileName); } public void setDirectory (String directory) @@ -132,18 +127,24 @@ public class GtkFileDialogPeer extends GtkDialogPeer implements FileDialogPeer the only way we have to set the directory in FileDialog is by calling its setDirectory which will call us back. */ if ((directory == null && currentDirectory == null) - || (directory != null && directory.equals (currentDirectory))) + || (directory != null && directory.equals(currentDirectory))) return; - if (directory == null || directory.equals ("")) + if (directory == null || directory.equals("")) { currentDirectory = FS; - nativeSetFile (FS); - return; + nativeSetDirectory(FS); + return; } - + + // GtkFileChooser requires absolute directory names. If the given directory + // name is not absolute, construct it based on current directory if it is not + // null. Otherwise, use FS. currentDirectory = directory; - nativeSetDirectory (directory); + if (directory.indexOf(FS) == 0) + nativeSetDirectory(directory); + else + nativeSetDirectory(nativeGetDirectory() + FS + directory); } public void setFilenameFilter (FilenameFilter filter) |

