src/macosx/native/sun/awt/CFileDialog.m

Print this page

        

@@ -115,18 +115,20 @@
 
         [thePanel setDelegate:self];
         fPanelResult = [thePanel runModalForDirectory:fDirectory file:fFile];
         [thePanel setDelegate:nil];
 
+        if ([self userClickedOK]) {
         if (fMode == java_awt_FileDialog_LOAD) {
             NSOpenPanel *openPanel = (NSOpenPanel *)thePanel;
             fURLs = [openPanel URLs];
         } else {
             fURLs = [NSArray arrayWithObject:[thePanel URL]];
         }
         [fURLs retain];
     }
+    }
 
     [self disposer];
 }
 
 - (BOOL) askFilenameFilter:(NSString *)filename {

@@ -211,16 +213,15 @@
 
         jclass stringClass = (*env)->FindClass(env, "java/lang/String");
         returnValue = (*env)->NewObjectArray(env, count, stringClass, NULL);
         (*env)->DeleteLocalRef(env, stringClass);
 
-        NSUInteger i;
-        for (i = 0; i < count; i++) {
-            jstring filename = JNFNSToJavaString(env, [[urls objectAtIndex:i] absoluteString]);
-            (*env)->SetObjectArrayElement(env, returnValue, i, filename);
+        [urls enumerateObjectsUsingBlock:^(id url, NSUInteger index, BOOL *stop) {
+            jstring filename = JNFNormalizedJavaStringForPath(env, [url path]);
+            (*env)->SetObjectArrayElement(env, returnValue, index, filename);
             (*env)->DeleteLocalRef(env, filename);
-        }
+        }];
     }
 
     [dialogDelegate release];
 JNF_COCOA_EXIT(env);
     return returnValue;