diff --git a/src/sysprof/icons/scalable/actions/empty-symbolic.svg b/src/sysprof/icons/scalable/actions/empty-symbolic.svg new file mode 100644 index 00000000..182d5bd0 --- /dev/null +++ b/src/sysprof/icons/scalable/actions/empty-symbolic.svg @@ -0,0 +1,35 @@ + + + + + diff --git a/src/sysprof/style.css b/src/sysprof/style.css index 84d5c5af..627e0ec0 100644 --- a/src/sysprof/style.css +++ b/src/sysprof/style.css @@ -43,6 +43,9 @@ callgraphview symbol { margin: -1px -3px; padding: 1px 6px; } +callgraphview treeexpander expander:not(.expandable) { + -gtk-icon-source: -gtk-icontheme("empty-symbolic"); +} callgraphview row:not(:selected) treeexpander expander:checked+box symbol.process, callgraphview row:not(:selected) treeexpander expander:checked+box symbol.thread, callgraphview row:not(:selected) treeexpander expander:checked+box symbol.root { diff --git a/src/sysprof/sysprof-tree-expander.c b/src/sysprof/sysprof-tree-expander.c index cb0ed064..0da9b6e7 100644 --- a/src/sysprof/sysprof-tree-expander.c +++ b/src/sysprof/sysprof-tree-expander.c @@ -126,6 +126,11 @@ sysprof_tree_expander_update_icon (SysprofTreeExpander *self) icon = self->icon; gtk_widget_unset_state_flags (self->expander, GTK_STATE_FLAG_CHECKED); } + + if (gtk_tree_list_row_is_expandable (self->list_row)) + gtk_widget_add_css_class (GTK_WIDGET (self->expander), "expandable"); + else + gtk_widget_remove_css_class (GTK_WIDGET (self->expander), "expandable"); } gtk_image_set_from_gicon (GTK_IMAGE (self->image), icon); diff --git a/src/sysprof/sysprof.gresource.xml b/src/sysprof/sysprof.gresource.xml index 86a764af..f8680a8b 100644 --- a/src/sysprof/sysprof.gresource.xml +++ b/src/sysprof/sysprof.gresource.xml @@ -4,6 +4,7 @@ gtk/help-overlay.ui gtk/menus.ui icons/scalable/actions/address-layout-symbolic.svg + icons/scalable/actions/empty-symbolic.svg icons/scalable/actions/mark-chart-symbolic.svg icons/scalable/actions/mark-table-symbolic.svg icons/scalable/actions/mark-waterfall-symbolic.svg