]> git.pld-linux.org Git - packages/vim.git/blob - vim-gtkfilechooser-bonobo.patch
- updated to 0.7.3
[packages/vim.git] / vim-gtkfilechooser-bonobo.patch
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
4 @@ -39,6 +39,15 @@
5  
6  #include "vim.h"
7  
8 +/* Check to see if we are able to use GtkFileChooser */
9 +#undef HAVE_FILECHOOSER
10 +
11 +#if defined(HAVE_GTK2)
12 +# if GTK_MINOR_VERSION >= 4
13 +#  define HAVE_FILECHOOSER
14 +# endif
15 +#endif
16 +
17  #if 0
18  /* Gnome redefines _() and N_().  Grrr... */
19  # ifdef _
20 @@ -1547,6 +1556,7 @@
21   * Implementation of the file selector related stuff
22   */
23  
24 +#if !defined(HAVE_FILECHOOSER)
25  /*ARGSUSED*/
26      static void
27  browse_ok_cb(GtkWidget *widget, gpointer cbdata)
28 @@ -1578,6 +1588,7 @@
29      if (MAIN_LEVEL() > 0)
30         MAIN_QUIT();
31  }
32 +#endif
33  
34  /*ARGSUSED*/
35      static gboolean
36 @@ -1615,7 +1626,11 @@
37                char_u *initdir,
38                char_u *filter)
39  {
40 +#if !defined(HAVE_FILECHOOSER)
41      GtkFileSelection *fs;      /* shortcut */
42 +#else
43 +    GtkFileChooserDialog *fs;
44 +#endif
45      char_u dirbuf[MAXPATHL];
46      char_u *p;
47  
48 @@ -1625,6 +1640,7 @@
49  
50      if (!gui.filedlg)
51      {
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));
60 +#else
61 +        if(saving == 0)
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,
67 +                    NULL);
68 +        else
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,
74 +                    NULL);
75 +            
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);
79 +#endif
80      }
81      else
82         gtk_window_set_title(GTK_WINDOW(gui.filedlg), (const gchar *)title);
83 @@ -1665,16 +1701,40 @@
84                               && STRLEN(dirbuf) + 2 + STRLEN(dflt) < MAXPATHL)
85         STRCAT(dirbuf, dflt);
86  
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);
92 +#else
93 +       if((dirbuf[STRLEN(dirbuf) - 1]) == '/')
94 +           gtk_file_chooser_set_current_folder(GTK_FILE_CHOOSER(fs),
95 +                   (const gchar *)dirbuf);
96 +       else
97 +           gtk_file_chooser_set_filename(GTK_FILE_CHOOSER(fs),
98 +                   (const gchar *)dirbuf);
99 +#endif
100 +
101  # ifndef HAVE_GTK2
102      gui_gtk_position_in_parent(GTK_WIDGET(gui.mainwin),
103                                        GTK_WIDGET(gui.filedlg), VW_POS_MOUSE);
104  # endif
105  
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);
110 +#else
111 +    if (gui.browse_fname != NULL) {
112 +       g_free(gui.browse_fname);
113 +       gui.browse_fname = NULL;
114 +    }
115 +
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));
119 +
120 +    gtk_widget_destroy(GTK_WIDGET(fs));
121 +    gui.filedlg = NULL;
122 +#endif
123  
124      if (gui.browse_fname == NULL)
125         return 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
This page took 0.038686 seconds and 3 git commands to generate.