+static void select_cb(GtkTreeSelection *selection, gpointer data)
+{
+ VikTreeview *vt = data;
+ gint type;
+ GtkTreeIter iter, parent;
+ VikLayer *vl;
+ VikWindow * vw;
+
+ if (!gtk_tree_selection_get_selected(selection, NULL, &iter)) return;
+ type = vik_treeview_item_get_type( vt, &iter);
+
+ while ( type != VIK_TREEVIEW_TYPE_LAYER ) {
+ if ( ! vik_treeview_item_get_parent_iter ( vt, &iter, &parent ) )
+ return;
+ iter = parent;
+ type = vik_treeview_item_get_type (vt, &iter );
+ }
+
+ vl = VIK_LAYER( vik_treeview_item_get_pointer ( vt, &iter ) );
+
+ vw = VIK_GTK_WINDOW_FROM_LAYER(vl);
+ vik_window_selected_layer(vw, vl);
+}
+