diff options
Diffstat (limited to 'openembedded/packages/gtk+/gtk+-2.6.4-1.osso7/gtktreeselection.c.diff')
-rw-r--r-- | openembedded/packages/gtk+/gtk+-2.6.4-1.osso7/gtktreeselection.c.diff | 91 |
1 files changed, 0 insertions, 91 deletions
diff --git a/openembedded/packages/gtk+/gtk+-2.6.4-1.osso7/gtktreeselection.c.diff b/openembedded/packages/gtk+/gtk+-2.6.4-1.osso7/gtktreeselection.c.diff deleted file mode 100644 index 5361f9b5d..000000000 --- a/openembedded/packages/gtk+/gtk+-2.6.4-1.osso7/gtktreeselection.c.diff +++ /dev/null @@ -1,91 +0,0 @@ ---- gtk+-2.6.4/gtk/gtktreeselection.c 2004-11-20 01:18:38.000000000 +0200 -+++ gtk+-2.6.4/gtk/gtktreeselection.c 2005-04-06 16:19:38.186733096 +0300 -@@ -190,11 +190,28 @@ - GtkSelectionMode type) - { - GtkTreeSelectionFunc tmp_func; -+ - g_return_if_fail (GTK_IS_TREE_SELECTION (selection)); - - if (selection->type == type) - return; - -+ /* Hildon addition */ -+ if ((type == GTK_SELECTION_SINGLE) && -+ (selection->type == GTK_SELECTION_MULTIPLE || -+ selection->type == GTK_SELECTION_BROWSE)) -+ { -+ GtkTreePath *cursor_path; -+ -+ /* to successfully switch from multiple selection mode to single -+ selection, we must ensure that anchor exists and is selected -+ since otherwise gtk_tree_selection_select_path won't work anymore */ -+ if (gtk_tree_row_reference_valid (selection->tree_view->priv->cursor)) -+ { -+ cursor_path = gtk_tree_row_reference_get_path (selection->tree_view->priv->cursor); gtk_tree_selection_select_path (selection, cursor_path); -+ gtk_tree_path_free (cursor_path); -+ } -+ } - - if (type == GTK_SELECTION_NONE) - { -@@ -251,6 +268,20 @@ - } - - selection->type = type; -+ -+ /* Hildon addition */ -+ if (type == GTK_SELECTION_SINGLE) -+ { -+ GtkTreePath *path; -+ GtkTreeIter iter; -+ -+ /* reset cursor to the selected row */ -+ gtk_tree_selection_get_selected (selection, NULL, &iter); -+ path = gtk_tree_model_get_path (selection->tree_view->priv->model, -+ &iter); -+ gtk_tree_view_set_cursor (selection->tree_view, path, NULL, FALSE); -+ gtk_tree_path_free (path); -+ } - } - - /** -@@ -1319,10 +1350,10 @@ - return sensitive; - } - --static gboolean --row_is_selectable (GtkTreeSelection *selection, -- GtkRBNode *node, -- GtkTreePath *path) -+gboolean -+_gtk_tree_selection_is_row_selectable (GtkTreeSelection *selection, -+ GtkRBNode *node, -+ GtkTreePath *path) - { - GList *list; - GtkTreeIter iter; -@@ -1411,7 +1442,7 @@ - { - /* We only want to select the new node if we can unselect the old one, - * and we can select the new one. */ -- dirty = row_is_selectable (selection, node, path); -+ dirty = _gtk_tree_selection_is_row_selectable (selection, node, path); - - /* if dirty is FALSE, we weren't able to select the new one, otherwise, we try to - * unselect the new one -@@ -1528,8 +1559,13 @@ - if (GTK_RBNODE_FLAG_SET (node, GTK_RBNODE_IS_SELECTED) != select) - { - path = _gtk_tree_view_find_path (selection->tree_view, tree, node); -- selected = row_is_selectable (selection, node, path); -+ selected = _gtk_tree_selection_is_row_selectable (selection, node, path); - gtk_tree_path_free (path); -+ -+ /* if row is unselectable, allow unselection only */ -+ if (!selected && !select && -+ GTK_RBNODE_FLAG_SET (node, GTK_RBNODE_IS_SELECTED)) -+ selected = TRUE; - } - - if (selected == TRUE) |