This fixes some gdk assertion errors in MegaMek. The path to the
directory must be absolute, when setting the directory.

2006-02-27  Lillian Angel  <[EMAIL PROTECTED]>

        * gnu/java/awt/peer/gtk/GtkFileDialogPeer.java
        (setDirectory): GtkFileChooser requires an absolute directory
        name. Added a check to make the directory passed to 
        nativeSetDirectory is absolute.

Index: gnu/java/awt/peer/gtk/GtkFileDialogPeer.java
===================================================================
RCS file: /sources/classpath/classpath/gnu/java/awt/peer/gtk/GtkFileDialogPeer.java,v
retrieving revision 1.28
diff -u -r1.28 GtkFileDialogPeer.java
--- gnu/java/awt/peer/gtk/GtkFileDialogPeer.java	26 Aug 2005 04:35:49 -0000	1.28
+++ gnu/java/awt/peer/gtk/GtkFileDialogPeer.java	27 Feb 2006 16:44:49 -0000
@@ -141,9 +141,18 @@
         nativeSetFile (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.
+    if (directory.indexOf(FS) == 0)
+      nativeSetDirectory(directory);
+    else if (currentDirectory == null)
+      nativeSetDirectory(FS + directory);
+    else
+      nativeSetDirectory(currentDirectory + FS + directory);
     currentDirectory = directory;
-    nativeSetDirectory (directory);
   }
 
   public void setFilenameFilter (FilenameFilter filter)

Reply via email to