[gtk+] GtkPlacesSidebar: Fix editing of bookmarks
- From: Matthias Clasen <matthiasc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+] GtkPlacesSidebar: Fix editing of bookmarks
- Date: Wed, 23 Jul 2014 18:12:38 +0000 (UTC)
commit 155c45eba5a92e8b2b4cc131817f58badf7d6826
Author: Matthias Clasen <mclasen redhat com>
Date: Wed Jul 23 14:11:22 2014 -0400
GtkPlacesSidebar: Fix editing of bookmarks
This was silently broken - the code was just assuming that the
text cell renderer is item no. 6 on the list of all cells. That
doesn't work so well if the cell renderers are set up elsewhere
and get rearranged.
Fix this by keeping an explicit pointer to the the text cell.
gtk/gtkplacessidebar.c | 11 ++++-------
1 files changed, 4 insertions(+), 7 deletions(-)
---
diff --git a/gtk/gtkplacessidebar.c b/gtk/gtkplacessidebar.c
index 3f6ea69..20d8ad8 100644
--- a/gtk/gtkplacessidebar.c
+++ b/gtk/gtkplacessidebar.c
@@ -126,6 +126,7 @@ struct _GtkPlacesSidebar {
GtkTreeView *tree_view;
GtkCellRenderer *eject_icon_cell_renderer;
+ GtkCellRenderer *text_cell_renderer;
GtkListStore *store;
GtkBookmarksManager *bookmarks_manager;
GVolumeMonitor *volume_monitor;
@@ -2462,8 +2463,6 @@ rename_selected_bookmark (GtkPlacesSidebar *sidebar)
GtkTreeIter iter;
GtkTreePath *path;
GtkTreeViewColumn *column;
- GtkCellRenderer *cell;
- GList *renderers;
PlaceType type;
if (get_selected_iter (sidebar, &iter))
@@ -2477,12 +2476,9 @@ rename_selected_bookmark (GtkPlacesSidebar *sidebar)
path = gtk_tree_model_get_path (GTK_TREE_MODEL (sidebar->store), &iter);
column = gtk_tree_view_get_column (GTK_TREE_VIEW (sidebar->tree_view), 0);
- renderers = gtk_cell_layout_get_cells (GTK_CELL_LAYOUT (column));
- cell = g_list_nth_data (renderers, 6);
- g_list_free (renderers);
- g_object_set (cell, "editable", TRUE, NULL);
+ g_object_set (sidebar->text_cell_renderer, "editable", TRUE, NULL);
gtk_tree_view_set_cursor_on_cell (GTK_TREE_VIEW (sidebar->tree_view),
- path, column, cell, TRUE);
+ path, column, sidebar->text_cell_renderer, TRUE);
gtk_tree_path_free (path);
}
}
@@ -3812,6 +3808,7 @@ gtk_places_sidebar_init (GtkPlacesSidebar *sidebar)
/* normal text renderer */
cell = gtk_cell_renderer_text_new ();
+ sidebar->text_cell_renderer = cell;
gtk_tree_view_column_pack_start (col, cell, TRUE);
g_object_set (G_OBJECT (cell), "editable", FALSE, NULL);
gtk_tree_view_column_set_attributes (col, cell,
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]