From: Simon Tatham Date: Fri, 26 Jan 2007 08:01:47 +0000 (+0000) Subject: Collapse tree view branches deeper than level 2, bringing the GTK2 X-Git-Tag: 0.61~249^2~48 X-Git-Url: https://asedeno.scripts.mit.edu/gitweb/?a=commitdiff_plain;h=6d81ee9cc0e62cddf339b5e4030d5edeca192047;p=PuTTY.git Collapse tree view branches deeper than level 2, bringing the GTK2 tree code into line with the GTK1. [originally from svn r7165] --- diff --git a/unix/GTK2.TODO b/unix/GTK2.TODO index 1f1c8b0e..7eb2605e 100644 --- a/unix/GTK2.TODO +++ b/unix/GTK2.TODO @@ -38,13 +38,6 @@ Items from Colin's original mail: - Uses of GtkList should be replaced with the non-deprecated GtkTreeView. -Other items: - - - Since Colin's patch was originally prepared I committed r7117 - (fold up treeview branches at depth 2 or greater), and this is - not currently replicated in the GTK2 version of the treeview - code. It should be. - At point of merge: - Mention Colin in the website's licence page. diff --git a/unix/gtkdlg.c b/unix/gtkdlg.c index b4e06f1d..1c31ed34 100644 --- a/unix/gtkdlg.c +++ b/unix/gtkdlg.c @@ -2362,6 +2362,22 @@ int do_config_box(const char *title, Config *cfg, int midsession, TREESTORE_PARAMS, nselparams, -1); treeiterlevels[j] = treeiter; + + treeindices[j]++; + treeindices[j+1] = -1; + + if (j > 0) { + GtkTreePath *path; + + path = gtk_tree_model_get_path(GTK_TREE_MODEL(treestore), + &treeiterlevels[j-1]); + if (j < 2) + gtk_tree_view_expand_row(GTK_TREE_VIEW(tree), path, + FALSE); + else + gtk_tree_view_collapse_row(GTK_TREE_VIEW(tree), path); + gtk_tree_path_free(path); + } #else treeitem = gtk_tree_item_new_with_label(c); if (j > 0) { @@ -2407,7 +2423,6 @@ int do_config_box(const char *title, Config *cfg, int midsession, } #if GTK_CHECK_VERSION(2,0,0) - gtk_tree_view_expand_all(GTK_TREE_VIEW(tree)); g_signal_connect(G_OBJECT(treeselection), "changed", G_CALLBACK(treeselection_changed), selparams); #else