1 diff -urN vim63-pld-before-gtkchooser/src/gui_gtk.c vim63-pld-with-gtkchooser/src/gui_gtk.c
2 --- vim63-pld-before-gtkchooser/src/gui_gtk.c 2005-09-09 16:33:27.806599424 +0200
3 +++ vim63-pld-with-gtkchooser/src/gui_gtk.c 2005-09-09 16:38:56.025702536 +0200
8 +/* Check to see if we are able to use GtkFileChooser */
9 +#undef HAVE_FILECHOOSER
11 +#if defined(HAVE_GTK2)
12 +# if GTK_MINOR_VERSION >= 4
13 +# define HAVE_FILECHOOSER
18 /* Gnome redefines _() and N_(). Grrr... */
21 * Implementation of the file selector related stuff
24 +#if !defined(HAVE_FILECHOOSER)
27 browse_ok_cb(GtkWidget *widget, gpointer cbdata)
36 @@ -1615,7 +1626,11 @@
40 +#if !defined(HAVE_FILECHOOSER)
41 GtkFileSelection *fs; /* shortcut */
43 + GtkFileChooserDialog *fs;
45 char_u dirbuf[MAXPATHL];
52 +#if !defined(HAVE_FILECHOOSER)
53 gui.filedlg = gtk_file_selection_new((const gchar *)title);
54 gtk_window_set_modal(GTK_WINDOW(gui.filedlg), TRUE);
55 gtk_window_set_transient_for(GTK_WINDOW(gui.filedlg),
56 @@ -1641,6 +1657,26 @@
57 gtk_signal_connect_object(GTK_OBJECT(gui.filedlg),
58 "destroy", GTK_SIGNAL_FUNC(browse_destroy_cb),
59 GTK_OBJECT(gui.filedlg));
62 + gui.filedlg = gtk_file_chooser_dialog_new ((const gchar *)title,
63 + GTK_WINDOW(gui.mainwin),
64 + GTK_FILE_CHOOSER_ACTION_OPEN,
65 + GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
66 + GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT,
69 + gui.filedlg = gtk_file_chooser_dialog_new ((const gchar *)title,
70 + GTK_WINDOW(gui.mainwin),
71 + GTK_FILE_CHOOSER_ACTION_SAVE,
72 + GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
73 + GTK_STOCK_SAVE, GTK_RESPONSE_ACCEPT,
76 + gtk_window_set_modal(GTK_WINDOW(gui.filedlg), TRUE);
77 + fs = GTK_FILE_CHOOSER_DIALOG(gui.filedlg);
78 + gtk_container_border_width(GTK_CONTAINER(fs), 4);
82 gtk_window_set_title(GTK_WINDOW(gui.filedlg), (const gchar *)title);
83 @@ -1665,16 +1701,40 @@
84 && STRLEN(dirbuf) + 2 + STRLEN(dflt) < MAXPATHL)
87 - gtk_file_selection_set_filename(GTK_FILE_SELECTION(gui.filedlg),
88 - (const gchar *)dirbuf);
89 +#if !defined(HAVE_FILECHOOSER)
90 + gtk_file_selection_set_filename(GTK_FILE_SELECTION(gui.filedlg),
91 + (const gchar *)dirbuf);
93 + if((dirbuf[STRLEN(dirbuf) - 1]) == '/')
94 + gtk_file_chooser_set_current_folder(GTK_FILE_CHOOSER(fs),
95 + (const gchar *)dirbuf);
97 + gtk_file_chooser_set_filename(GTK_FILE_CHOOSER(fs),
98 + (const gchar *)dirbuf);
102 gui_gtk_position_in_parent(GTK_WIDGET(gui.mainwin),
103 GTK_WIDGET(gui.filedlg), VW_POS_MOUSE);
106 +#if !defined(HAVE_FILECHOOSER)
107 gtk_widget_show(gui.filedlg);
108 while (gui.filedlg && GTK_WIDGET_DRAWABLE(gui.filedlg))
109 MAIN_ITERATION_DO(TRUE);
111 + if (gui.browse_fname != NULL) {
112 + g_free(gui.browse_fname);
113 + gui.browse_fname = NULL;
116 + if (gtk_dialog_run(GTK_DIALOG(fs)) == GTK_RESPONSE_ACCEPT)
117 + gui.browse_fname = gtk_file_chooser_get_filename(
118 + GTK_FILE_CHOOSER(fs));
120 + gtk_widget_destroy(GTK_WIDGET(fs));
121 + gui.filedlg = NULL;
124 if (gui.browse_fname == NULL)
126 Files vim63-pld-before-gtkchooser/src/.gui_gtk.c.rej.swp and vim63-pld-with-gtkchooser/src/.gui_gtk.c.rej.swp differ