Fix #442: Path filter combobox not initialised
[geeqie.git] / src / ui_pathsel.c
index 7593a21..88f3924 100644 (file)
@@ -1,13 +1,22 @@
 /*
- * (SLIK) SimpLIstic sKin functions
- * (C) 2006 John Ellis
- * Copyright (C) 2008 - 2012 The Geeqie Team
+ * Copyright (C) 2006 John Ellis
+ * Copyright (C) 2008 - 2016 The Geeqie Team
  *
  * Author: John Ellis
  *
- * This software is released under the GNU General Public License (GNU GPL).
- * Please read the included file COPYING for more information.
- * This software comes with no warranty of any kind, use at your own risk!
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
  */
 
 #ifdef HAVE_CONFIG_H
@@ -291,7 +300,7 @@ static void dest_change_dir(Dest_Data *dd, const gchar *path, gboolean retain_na
                new_directory = g_path_get_dirname(full_path);
        else
                new_directory = g_strdup(full_path);
-       
+
        gtk_entry_set_text(GTK_ENTRY(dd->entry), full_path);
 
        dest_populate(dd, new_directory);
@@ -331,9 +340,7 @@ static void dest_dnd_set_data(GtkWidget *view,
                              guint info, guint time, gpointer data)
 {
        gchar *path = NULL;
-       gchar *uri_text = NULL;
        GList *list = NULL;
-       gint length = 0;
        GtkTreeModel *model;
        GtkTreeSelection *selection;
        GtkTreeIter iter;
@@ -346,22 +353,16 @@ static void dest_dnd_set_data(GtkWidget *view,
 
        list = g_list_append(list, path);
 
-       switch (info)
+       gchar **uris = uris_from_pathlist(list);
+       gboolean ret = gtk_selection_data_set_uris(selection_data, uris);
+       if (!ret)
                {
-               case TARGET_URI_LIST:
-                       uri_text = uri_text_from_list(list, &length, FALSE);
-                       break;
-               case TARGET_TEXT_PLAIN:
-                       uri_text = uri_text_from_list(list, &length, TRUE);
-                       break;
+               char *str = g_strjoinv("\r\n", uris);
+               ret = gtk_selection_data_set_text(selection_data, str, -1);
+               g_free(str);
                }
 
        string_list_free(list);
-
-       if (!uri_text) return;
-
-       gtk_selection_data_set_text(selection_data, uri_text, length);
-       g_free(uri_text);
 }
 
 static void dest_dnd_init(Dest_Data *dd)
@@ -785,6 +786,7 @@ static void dest_new_dir_cb(GtkWidget *widget, gpointer data)
 
                tree_edit_by_path(GTK_TREE_VIEW(dd->d_view), dd->right_click_path, 0, text,
                                  dest_view_rename_cb, dd);
+               gtk_entry_set_text(GTK_ENTRY(dd->entry), path);
                }
 
        g_free(path);
@@ -1144,15 +1146,15 @@ GtkWidget *path_selection_new_with_files(GtkWidget *entry, const gchar *path,
                store = gtk_list_store_new(2, G_TYPE_STRING, G_TYPE_STRING);
 
                dd->filter_combo = gtk_combo_box_new_with_model_and_entry(GTK_TREE_MODEL(store));
+               gtk_combo_box_set_entry_text_column(GTK_COMBO_BOX(dd->filter_combo),
+                                                                                                               FILTER_COLUMN_FILTER);
+
                g_object_unref(store);
                gtk_cell_layout_clear(GTK_CELL_LAYOUT(dd->filter_combo));
                renderer = gtk_cell_renderer_text_new();
                gtk_cell_layout_pack_start(GTK_CELL_LAYOUT(dd->filter_combo), renderer, TRUE);
                gtk_cell_layout_set_attributes(GTK_CELL_LAYOUT(dd->filter_combo), renderer,
                                               "text", FILTER_COLUMN_NAME, NULL);
-#if 0
-               gtk_combo_set_case_sensitive(GTK_COMBO(dd->filter_combo), TRUE);
-#endif
                gtk_box_pack_start(GTK_BOX(hbox2), dd->filter_combo, TRUE, TRUE, 0);
                gtk_widget_show(dd->filter_combo);