[Xfce4-commits] [apps/xfce4-taskmanager] 17/21: fixed tree traversal

noreply at xfce.org noreply at xfce.org
Thu Jan 26 22:59:21 CET 2017


This is an automated email from the git hooks/post-receive script.

ochosi pushed a commit to branch master
in repository apps/xfce4-taskmanager.

commit 793675527aaa9d9cb54d6438b665cbe8e183e5ef
Author: Florian Schüller <florian.schueller at gmail.com>
Date:   Thu Jan 26 20:28:17 2017 +0100

    fixed tree traversal
---
 src/process-tree-view.c | 26 +++++++++++++-------------
 1 file changed, 13 insertions(+), 13 deletions(-)

diff --git a/src/process-tree-view.c b/src/process-tree-view.c
index e8745c0..748610a 100644
--- a/src/process-tree-view.c
+++ b/src/process-tree-view.c
@@ -779,6 +779,8 @@ xtm_process_tree_view_highlight_pid (XtmProcessTreeView *treeview, guint pid) {
 	gboolean     	 valid;
 	gboolean			 tree;
 	guint					 pid_iter;
+	GtkTreeIter	child_iter;
+	gboolean validParent;
 
 	g_object_get (treeview->settings, "process-tree", &tree, NULL);
 	model = GTK_TREE_MODEL (tree ? treeview->model_tree : treeview->model_filter);
@@ -800,27 +802,25 @@ xtm_process_tree_view_highlight_pid (XtmProcessTreeView *treeview, guint pid) {
 			break;
 		}
 
-		if (tree && gtk_tree_model_iter_has_child (model, &iter))
+		if (gtk_tree_model_iter_has_child (model, &iter))
 		{
 			GtkTreeIter	parent_iter = iter;
 
 			valid = gtk_tree_model_iter_children (model, &iter, &parent_iter);
 		}
-		else if (tree && !gtk_tree_model_iter_has_child (model, &iter))
-		{
-			GtkTreeIter	child_iter = iter;
-
-			if (!gtk_tree_model_iter_next (model, &iter))
-			{
-				gtk_tree_model_iter_parent (model, &iter, &child_iter);
-				gtk_tree_model_iter_next (model, &iter);
-			}
-			else
-				valid = TRUE;
-		}
 		else
 		{
+			child_iter = iter;
 			valid = gtk_tree_model_iter_next (model, &iter);
+			if (tree && !valid)
+			{
+				//finding my way up again
+				do {
+					validParent = gtk_tree_model_iter_parent (model, &iter, &child_iter);
+					child_iter = iter;
+					valid = gtk_tree_model_iter_next (model, &iter);
+				} while (!valid && validParent);
+			}
 		}
 	}
 }

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.


More information about the Xfce4-commits mailing list