mirror of
https://gitlab.gnome.org/GNOME/gtk.git
synced 2024-11-11 11:20:12 +00:00
Fix a sporadic segfault in treeview keynav
If a a treeview has frequent periodic additions and removals of rows, it is possible that a page down keypress moves the cursor out of the height of the treeview. In some of these cases, we can be tricked into dereferencing a NULL pointer. Bug 612919.
This commit is contained in:
parent
e3bd926c1e
commit
fb48e023d2
@ -9822,6 +9822,13 @@ gtk_tree_view_move_cursor_page_up_down (GtkTreeView *tree_view,
|
|||||||
_gtk_rbtree_find_offset (tree_view->priv->tree, y,
|
_gtk_rbtree_find_offset (tree_view->priv->tree, y,
|
||||||
&cursor_tree, &cursor_node);
|
&cursor_tree, &cursor_node);
|
||||||
|
|
||||||
|
if (cursor_tree == NULL)
|
||||||
|
{
|
||||||
|
/* FIXME: we lost the cursor. Should we try to get one? */
|
||||||
|
gtk_tree_path_free (old_cursor_path);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (tree_view->priv->cursor_offset > BACKGROUND_HEIGHT (cursor_node))
|
if (tree_view->priv->cursor_offset > BACKGROUND_HEIGHT (cursor_node))
|
||||||
{
|
{
|
||||||
_gtk_rbtree_next_full (cursor_tree, cursor_node,
|
_gtk_rbtree_next_full (cursor_tree, cursor_node,
|
||||||
|
Loading…
Reference in New Issue
Block a user