diff src/gtkrequest.c @ 10673:179b0245a2f7

[gaim-migrate @ 12213] This is patches 1115963 and 1115968 from rlaager, implementation of wgaim_get_special_folder() and using it to specify a sane default for the file chooser. committer: Tailor Script <tailor@pidgin.im>
author Daniel Atallah <daniel.atallah@gmail.com>
date Tue, 08 Mar 2005 03:15:37 +0000
parents aafe8f30b826
children d83f745c997b
line wrap: on
line diff
--- a/src/gtkrequest.c	Tue Mar 08 02:37:07 2005 +0000
+++ b/src/gtkrequest.c	Tue Mar 08 03:15:37 2005 +0000
@@ -1654,6 +1654,9 @@
 	GaimGtkRequestData *data;
 	GtkWidget *filesel;
 	const gchar *current_folder;
+#if GTK_CHECK_VERSION(2,4,0)
+	gboolean folder_set = FALSE;
+#endif
 
 	data = g_new0(GaimGtkRequestData, 1);
 	data->type = GAIM_REQUEST_FILE;
@@ -1683,17 +1686,32 @@
 	} else {
 		current_folder = gaim_prefs_get_string("/gaim/gtk/filelocations/last_open_folder");
 	}
+
 	if (filename != NULL)
 		gtk_file_chooser_set_current_name(GTK_FILE_CHOOSER(filesel), filename);
-	if ((current_folder != NULL) && (*current_folder != '\0'))
-		gtk_file_chooser_set_current_folder(GTK_FILE_CHOOSER(filesel), current_folder);
+	if ((current_folder != NULL) && (*current_folder != '\0')) {
+		folder_set = gtk_file_chooser_set_current_folder(GTK_FILE_CHOOSER(filesel), current_folder);
+	}
+
+#ifdef _WIN32
+	if (!folder_set) {
+		char *my_documents = wgaim_get_special_folder(CSIDL_PERSONAL);
 
+		if (my_documents != NULL) {
+			gtk_file_chooser_set_current_folder(
+					GTK_FILE_CHOOSER(filesel), my_documents);
+
+			g_free(my_documents);
+		}
+	}
+
+#endif
 	g_signal_connect(G_OBJECT(GTK_FILE_CHOOSER(filesel)), "response",
 					 G_CALLBACK(file_ok_check_if_exists_cb), data);
 #else /* FILECHOOSER */
-	filesel = gtk_file_selection_new(title ? title
-										   : (savedialog ? _("Save File...")
-														 : _("Open File...")));
+	filesel = gtk_file_selection_new(
+			title ? title : (savedialog ? _("Save File...")
+				: _("Open File...")));
 	if (savedialog) {
 		current_folder = gaim_prefs_get_string("/gaim/gtk/filelocations/last_save_folder");
 	} else {