[gtk+/combo-refactor: 87/201] Fixed gtk_tree_menu_path_in_menu function which has been malfunctioning.
- From: Tristan Van Berkom <tvb src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+/combo-refactor: 87/201] Fixed gtk_tree_menu_path_in_menu function which has been malfunctioning.
- Date: Tue, 21 Dec 2010 12:52:34 +0000 (UTC)
commit f34cbe5459c36c48322a294129b0f5a2db0fee91
Author: Tristan Van Berkom <tristan van berkom gmail com>
Date: Wed Dec 8 22:30:22 2010 +0900
Fixed gtk_tree_menu_path_in_menu function which has been malfunctioning.
Now sensitivity is properly handled in the "apply-attributes" callback.
gtk/gtktreemenu.c | 29 ++++++++++++++---------------
1 files changed, 14 insertions(+), 15 deletions(-)
---
diff --git a/gtk/gtktreemenu.c b/gtk/gtktreemenu.c
index bbb83f4..98da2c1 100644
--- a/gtk/gtktreemenu.c
+++ b/gtk/gtktreemenu.c
@@ -734,33 +734,32 @@ gtk_tree_menu_path_in_menu (GtkTreeMenu *menu,
gboolean is_header = FALSE;
/* Check if the is in root of the model */
- if (gtk_tree_path_get_depth (path) == 1)
- {
- if (!priv->root)
- in_menu = TRUE;
- }
+ if (gtk_tree_path_get_depth (path) == 1 && !priv->root)
+ in_menu = TRUE;
/* If we are a submenu, compare the parent path */
- else if (priv->root && gtk_tree_path_get_depth (path) > 1)
+ else if (priv->root)
{
GtkTreePath *root_path = gtk_tree_row_reference_get_path (priv->root);
- GtkTreePath *parent_path = gtk_tree_path_copy (path);
-
- gtk_tree_path_up (parent_path);
+ GtkTreePath *search_path = gtk_tree_path_copy (path);
if (root_path)
{
- if (gtk_tree_path_compare (root_path, parent_path) == 0)
- in_menu = TRUE;
-
- if (!in_menu && priv->menu_with_header &&
- gtk_tree_path_compare (root_path, path) == 0)
+ if (priv->menu_with_header &&
+ gtk_tree_path_compare (root_path, search_path) == 0)
{
in_menu = TRUE;
is_header = TRUE;
}
+ else if (gtk_tree_path_get_depth (search_path) > 1)
+ {
+ gtk_tree_path_up (search_path);
+
+ if (gtk_tree_path_compare (root_path, search_path) == 0)
+ in_menu = TRUE;
+ }
}
gtk_tree_path_free (root_path);
- gtk_tree_path_free (parent_path);
+ gtk_tree_path_free (search_path);
}
if (header_item)
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]