summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJay Painter <jpaint@src.gnome.org>1998-03-11 07:59:46 +0000
committerJay Painter <jpaint@src.gnome.org>1998-03-11 07:59:46 +0000
commitffc1084029713b5dfde5c96ceb2cb8937cf8288a (patch)
tree619c2c49312ff583963511c032b08c9bd7ae49ce
parent5724801800aee9cdda459cfd41e5a76071c128ea (diff)
downloadgdk-pixbuf-ffc1084029713b5dfde5c96ceb2cb8937cf8288a.tar.gz
Fixed file selector
-rw-r--r--gtk/gtkfilesel.c58
1 files changed, 30 insertions, 28 deletions
diff --git a/gtk/gtkfilesel.c b/gtk/gtkfilesel.c
index 0d1e4767b..66dd267ef 100644
--- a/gtk/gtkfilesel.c
+++ b/gtk/gtkfilesel.c
@@ -1141,16 +1141,17 @@ gtk_file_selection_file_button (GtkWidget *widget,
gpointer user_data)
{
GtkFileSelection *fs = NULL;
- gchar *filename;
+ gchar *filename, *temp = NULL;
g_return_if_fail (GTK_IS_CLIST (widget));
fs = user_data;
g_return_if_fail (fs != NULL);
g_return_if_fail (GTK_IS_FILE_SELECTION (fs));
-
- filename = gtk_clist_get_row_data (GTK_CLIST (fs->file_list), row);
+ gtk_clist_get_text (GTK_CLIST (fs->file_list), row, 0, &temp);
+ filename = g_strdup (temp);
+
if (bevent && filename)
{
switch (bevent->type)
@@ -1167,6 +1168,9 @@ gtk_file_selection_file_button (GtkWidget *widget,
break;
}
}
+
+ if (filename)
+ g_free (filename);
}
static void
@@ -1177,32 +1181,36 @@ gtk_file_selection_dir_button (GtkWidget *widget,
gpointer user_data)
{
GtkFileSelection *fs = NULL;
- gchar *filename;
-
+ gchar *filename, *temp = NULL;
+
g_return_if_fail (GTK_IS_CLIST (widget));
fs = GTK_FILE_SELECTION (user_data);
g_return_if_fail (fs != NULL);
g_return_if_fail (GTK_IS_FILE_SELECTION (fs));
- filename = gtk_clist_get_row_data (GTK_CLIST (fs->dir_list), row);
-
- if (bevent && filename) {
+ gtk_clist_get_text (GTK_CLIST (fs->dir_list), row, 0, &temp);
+ filename = g_strdup (temp);
+
+ if (bevent && filename)
+ {
+ switch (bevent->type)
+ {
+ case GDK_BUTTON_PRESS:
+ gtk_entry_set_text (GTK_ENTRY (fs->selection_entry), filename);
+ break;
+
+ case GDK_2BUTTON_PRESS:
+ gtk_file_selection_populate (fs, filename, FALSE);
+ break;
+
+ default:
+ break;
+ }
+ }
- switch (bevent->type)
- {
- case GDK_BUTTON_PRESS:
- gtk_entry_set_text (GTK_ENTRY (fs->selection_entry), filename);
- break;
-
- case GDK_2BUTTON_PRESS:
- gtk_file_selection_populate (fs, filename, FALSE);
- break;
-
- default:
- break;
- }
- }
+ if (filename)
+ g_free (filename);
}
static void
@@ -1245,11 +1253,9 @@ gtk_file_selection_populate (GtkFileSelection *fs,
text[1] = NULL;
text[0] = "./";
row = gtk_clist_append (GTK_CLIST (fs->dir_list), text);
- gtk_clist_set_row_data (GTK_CLIST (fs->dir_list), row, "./");
text[0] = "../";
row = gtk_clist_append (GTK_CLIST (fs->dir_list), text);
- gtk_clist_set_row_data (GTK_CLIST (fs->dir_list), row, "../");
while (poss)
{
@@ -1267,15 +1273,11 @@ gtk_file_selection_populate (GtkFileSelection *fs,
strcmp (filename, "../") != 0)
{
row = gtk_clist_append (GTK_CLIST (fs->dir_list), text);
- gtk_clist_set_row_data_full (GTK_CLIST (fs->dir_list), row,
- filename, (GtkDestroyNotify) g_free);
}
}
else
{
row = gtk_clist_append (GTK_CLIST (fs->file_list), text);
- gtk_clist_set_row_data_full (GTK_CLIST (fs->file_list), row,
- filename ,(GtkDestroyNotify) g_free);
}
}