if (column == NULL)
return FALSE;
- pre_val = tree_view->priv->vadjustment->value;
-
- tree_view->priv->focus_column = column;
- if (event->state & GDK_CONTROL_MASK)
- {
- gtk_tree_view_real_set_cursor (tree_view, path, FALSE);
- gtk_tree_view_real_toggle_cursor_row (tree_view);
- }
- else if (event->state & GDK_SHIFT_MASK)
- {
- gtk_tree_view_real_set_cursor (tree_view, path, FALSE);
- gtk_tree_view_real_select_cursor_row (tree_view, FALSE);
- }
- else
- {
- gtk_tree_view_real_set_cursor (tree_view, path, TRUE);
- }
-
- /* the treeview may have been scrolled because of _set_cursor,
- * correct here
- */
-
- aft_val = tree_view->priv->vadjustment->value;
- dval = pre_val - aft_val;
-
- cell_area.y += dval;
- background_area.y += dval;
-
+ /* decide to edit */
if (event->type == GDK_BUTTON_PRESS &&
!(event->state & gtk_accelerator_get_default_mod_mask ()))
{
&background_area,
&cell_area, flags))
{
- if (cell_editable != NULL)
+ if (cell_editable != NULL &&
+ gtk_tree_selection_iter_is_selected (gtk_tree_view_get_selection (tree_view), &iter))
{
gtk_tree_view_real_start_editing (tree_view,
column,
&cell_area,
(GdkEvent *)event,
flags);
-
+ gtk_tree_path_free (path);
+ return TRUE;
}
column_handled_click = TRUE;
}
g_free (path_string);
}
+ /* select */
+ pre_val = tree_view->priv->vadjustment->value;
+
+ tree_view->priv->focus_column = column;
+ if (event->state & GDK_CONTROL_MASK)
+ {
+ gtk_tree_view_real_set_cursor (tree_view, path, FALSE);
+ gtk_tree_view_real_toggle_cursor_row (tree_view);
+ }
+ else if (event->state & GDK_SHIFT_MASK)
+ {
+ gtk_tree_view_real_set_cursor (tree_view, path, FALSE);
+ gtk_tree_view_real_select_cursor_row (tree_view, FALSE);
+ }
+ else
+ {
+ gtk_tree_view_real_set_cursor (tree_view, path, TRUE);
+ }
+
+ /* the treeview may have been scrolled because of _set_cursor,
+ * correct here
+ */
+
+ aft_val = tree_view->priv->vadjustment->value;
+ dval = pre_val - aft_val;
+
+ cell_area.y += dval;
+ background_area.y += dval;
+
/* Save press to possibly begin a drag
*/
if (!column_handled_click &&
if (lsc)
{
if (!gtk_tree_path_compare (lsc, path))
- {
- if (GTK_RBNODE_FLAG_SET (node, GTK_RBNODE_IS_PARENT))
- {
- if (node->children == NULL)
- gtk_tree_view_real_expand_row (tree_view, path,
- tree, node, FALSE,
- TRUE);
- else
- gtk_tree_view_real_collapse_row (tree_view, path,
- tree, node, TRUE);
- }
-
- gtk_tree_view_row_activated (tree_view, path, column);
- }
+ gtk_tree_view_row_activated (tree_view, path, column);
gtk_tree_path_free (lsc);
}
{
gboolean has_next = gtk_tree_model_iter_next (tree_view->priv->model, &iter);
done = TRUE;
+ gtk_tree_path_next (path);
/* Sanity Check! */
TREE_VIEW_INTERNAL_ASSERT_VOID (has_next);
has_parent = gtk_tree_model_iter_parent (tree_view->priv->model,
&iter,
&parent_iter);
+ gtk_tree_path_up (path);
/* Sanity check */
TREE_VIEW_INTERNAL_ASSERT_VOID (has_parent);