From 938839c3cb31c928bd188527e7720aded9e4d0ab Mon Sep 17 00:00:00 2001 From: Christian Hergert Date: Wed, 15 May 2019 10:54:02 -0700 Subject: [PATCH] libsysprof-ui: fit zoom when loading --- src/libsysprof-ui/sysprof-visualizer-view.c | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/src/libsysprof-ui/sysprof-visualizer-view.c b/src/libsysprof-ui/sysprof-visualizer-view.c index cb7a6262..82d78c42 100644 --- a/src/libsysprof-ui/sysprof-visualizer-view.c +++ b/src/libsysprof-ui/sysprof-visualizer-view.c @@ -619,16 +619,31 @@ sysprof_visualizer_view_set_reader (SysprofVisualizerView *self, if (reader != NULL) { + GtkAllocation alloc; gint64 begin_time; + gint64 end_time; priv->reader = sysprof_capture_reader_ref (reader); begin_time = sysprof_capture_reader_get_start_time (priv->reader); + end_time = sysprof_capture_reader_get_end_time (priv->reader); sysprof_visualizer_ticks_set_epoch (priv->ticks, begin_time); - sysprof_visualizer_ticks_set_time_range (priv->ticks, begin_time, begin_time); + sysprof_visualizer_ticks_set_time_range (priv->ticks, begin_time, end_time); sysprof_selection_unselect_all (priv->selection); + + gtk_widget_get_allocation (GTK_WIDGET (self), &alloc); + + if (alloc.width) + { + gdouble zoom; + + zoom = sysprof_zoom_manager_fit_zoom_for_duration (priv->zoom_manager, + end_time - begin_time, + alloc.width); + sysprof_zoom_manager_set_zoom (priv->zoom_manager, zoom); + } } sysprof_visualizer_list_set_reader (priv->list, reader);