[geany/geany] 487b8a: Custom commands dialog: Make sure the selected item is always visible

Colomban Wendling git-noreply at xxxxx
Sat Jul 5 22:06:16 UTC 2014


Branch:      refs/heads/master
Author:      Colomban Wendling <ban at herbesfolles.org>
Committer:   Colomban Wendling <ban at herbesfolles.org>
Date:        Sat, 05 Jul 2014 22:06:16 UTC
Commit:      487b8aea0ba904103eaddaf81f2dd6647b8bc7b3
             https://github.com/geany/geany/commit/487b8aea0ba904103eaddaf81f2dd6647b8bc7b3

Log Message:
-----------
Custom commands dialog: Make sure the selected item is always visible

Always bring back the selected item after an user action, so the user
can see what she's doing.


Modified Paths:
--------------
    src/tools.c

Modified: src/tools.c
20 lines changed, 20 insertions(+), 0 deletions(-)
===================================================================
@@ -163,12 +163,28 @@ static void cc_on_dialog_add_clicked(GtkButton *button, struct cc_dialog *cc)
 }
 
 
+static void scroll_to_cursor(GtkTreeView *view)
+{
+	GtkTreePath *path;
+	GtkTreeViewColumn *column;
+
+	gtk_tree_view_get_cursor(view, &path, &column);
+	if (path)
+	{
+		gtk_tree_view_scroll_to_cell(view, path, column, FALSE, 1.0, 1.0);
+		gtk_tree_path_free(path);
+	}
+}
+
 static void cc_on_dialog_remove_clicked(GtkButton *button, struct cc_dialog *cc)
 {
 	GtkTreeIter iter;
 
 	if (gtk_tree_selection_get_selected(cc->selection, NULL, &iter))
+	{
 		gtk_list_store_remove(cc->store, &iter);
+		scroll_to_cursor(GTK_TREE_VIEW(cc->view));
+	}
 }
 
 
@@ -186,6 +202,7 @@ static void cc_on_dialog_move_up_clicked(GtkButton *button, struct cc_dialog *cc
 			gtk_tree_model_get_iter(GTK_TREE_MODEL(cc->store), &prev, path))
 		{
 			gtk_list_store_move_before(cc->store, &iter, &prev);
+			scroll_to_cursor(GTK_TREE_VIEW(cc->view));
 		}
 		gtk_tree_path_free(path);
 	}
@@ -201,7 +218,10 @@ static void cc_on_dialog_move_down_clicked(GtkButton *button, struct cc_dialog *
 		GtkTreeIter next = iter;
 
 		if (gtk_tree_model_iter_next(GTK_TREE_MODEL(cc->store), &next))
+		{
 			gtk_list_store_move_after(cc->store, &iter, &next);
+			scroll_to_cursor(GTK_TREE_VIEW(cc->view));
+		}
 	}
 }
 



--------------
This E-Mail was brought to you by github_commit_mail.py (Source: https://github.com/geany/infrastructure).


More information about the Commits mailing list