This seems pretty sensible to me. I'm unsure if we should activate nodes that have children, or just toggle them.
@@ -71,6 +71,8 @@ void GTreeView::doubleclick_event(GMouseEvent& event)
if (model.row_count(index))
toggle_index(index);
+ else
+ activate(index);
}