[gedit] filebrowser: fix gtk_tree_model_get_iter() usage



commit f30c1257cfe9220f40e53cbc00ac706c5ae0104c
Author: Garrett Regier <garrettregier gmail com>
Date:   Sun Jan 15 08:53:36 2017 -0800

    filebrowser: fix gtk_tree_model_get_iter() usage

 plugins/filebrowser/gedit-file-browser-plugin.c |    6 +++-
 plugins/filebrowser/gedit-file-browser-widget.c |   36 +++++++++++-----------
 2 files changed, 23 insertions(+), 19 deletions(-)
---
diff --git a/plugins/filebrowser/gedit-file-browser-plugin.c b/plugins/filebrowser/gedit-file-browser-plugin.c
index 62c932f..a06d497 100644
--- a/plugins/filebrowser/gedit-file-browser-plugin.c
+++ b/plugins/filebrowser/gedit-file-browser-plugin.c
@@ -871,7 +871,11 @@ get_filename_from_path (GtkTreeModel *model,
        GFile *location;
        gchar *ret = NULL;
 
-       gtk_tree_model_get_iter (model, &iter, path);
+       if (!gtk_tree_model_get_iter (model, &iter, path))
+       {
+               return NULL;
+       }
+
        gtk_tree_model_get (model, &iter,
                            GEDIT_FILE_BROWSER_STORE_COLUMN_LOCATION, &location,
                            -1);
diff --git a/plugins/filebrowser/gedit-file-browser-widget.c b/plugins/filebrowser/gedit-file-browser-widget.c
index b02d83d..d935ede 100644
--- a/plugins/filebrowser/gedit-file-browser-widget.c
+++ b/plugins/filebrowser/gedit-file-browser-widget.c
@@ -882,30 +882,30 @@ on_locations_treeview_row_activated (GtkTreeView            *locations_treeview,
 {
        GeditFileBrowserWidgetPrivate *priv = obj->priv;
        GtkTreeIter iter;
-       guint id;
+       guint id = G_MAXUINT;
        GFile *file;
 
-       gtk_tree_model_get_iter (GTK_TREE_MODEL (priv->locations_model), &iter, path);
-       gtk_tree_model_get (GTK_TREE_MODEL (priv->locations_model), &iter, COLUMN_ID, &id, -1);
-
-       switch (id)
+       if (gtk_tree_model_get_iter (GTK_TREE_MODEL (priv->locations_model), &iter, path))
        {
-               case BOOKMARKS_ID:
-                       gedit_file_browser_widget_show_bookmarks (obj);
-                       break;
+               gtk_tree_model_get (GTK_TREE_MODEL (priv->locations_model), &iter, COLUMN_ID, &id, -1);
+       }
 
-               case PATH_ID:
-                       gtk_tree_model_get (GTK_TREE_MODEL (priv->locations_model),
-                                           &iter,
-                                           COLUMN_FILE,
-                                           &file,
-                                           -1);
+       if (id == BOOKMARKS_ID)
+       {
+               gedit_file_browser_widget_show_bookmarks (obj);
+       }
+       else if (id == PATH_ID)
+       {
+               gtk_tree_model_get (GTK_TREE_MODEL (priv->locations_model),
+                                   &iter,
+                                   COLUMN_FILE,
+                                   &file,
+                                   -1);
 
-                       gedit_file_browser_store_set_virtual_root_from_location (priv->file_store, file);
+               gedit_file_browser_store_set_virtual_root_from_location (priv->file_store, file);
 
-                       g_object_unref (file);
-                       gtk_cell_view_set_displayed_row (GTK_CELL_VIEW (priv->locations_cellview), path);
-                       break;
+               g_object_unref (file);
+               gtk_cell_view_set_displayed_row (GTK_CELL_VIEW (priv->locations_cellview), path);
        }
 
        gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (priv->locations_button), FALSE);


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]