blob: af2d495a86884293ad8a1225c12f53293f24d32d (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
|
--- gtk+-2.6.4/gtk/gtktreemodelfilter.c 2005-02-24 16:43:53.000000000 +0200
+++ gtk+-2.6.4/gtk/gtktreemodelfilter.c 2005-04-06 16:19:38.177734464 +0300
@@ -1210,14 +1210,22 @@
if (gtk_tree_path_get_depth (filter->priv->virtual_root) >=
gtk_tree_path_get_depth (c_path))
{
- gint level;
+ gint level, i;
gint *v_indices, *c_indices;
+ gboolean common_prefix = TRUE;
level = gtk_tree_path_get_depth (c_path) - 1;
v_indices = gtk_tree_path_get_indices (filter->priv->virtual_root);
c_indices = gtk_tree_path_get_indices (c_path);
- if (v_indices[level] >= c_indices[level])
+ for (i = 0; i < level; i++)
+ if (v_indices[i] != c_indices[i])
+ {
+ common_prefix = FALSE;
+ break;
+ }
+
+ if (common_prefix && v_indices[level] >= c_indices[level])
(v_indices[level])++;
}
}
@@ -1455,14 +1463,22 @@
if (gtk_tree_path_get_depth (filter->priv->virtual_root) >=
gtk_tree_path_get_depth (c_path))
{
- gint level;
+ gint level, i;
gint *v_indices, *c_indices;
+ gboolean common_prefix = TRUE;
level = gtk_tree_path_get_depth (c_path) - 1;
v_indices = gtk_tree_path_get_indices (filter->priv->virtual_root);
c_indices = gtk_tree_path_get_indices (c_path);
- if (v_indices[level] > c_indices[level])
+ for (i = 0; i < level; i++)
+ if (v_indices[i] != c_indices[i])
+ {
+ common_prefix = FALSE;
+ break;
+ }
+
+ if (common_prefix && v_indices[level] > c_indices[level])
(v_indices[level])--;
}
}
|