diff --git a/lib/sp-visualizer-view.c b/lib/sp-visualizer-view.c index cb046dbc..26df366f 100644 --- a/lib/sp-visualizer-view.c +++ b/lib/sp-visualizer-view.c @@ -33,6 +33,7 @@ typedef struct SpVisualizerList *list; GtkAdjustment *scroll_adjustment; + GtkScrollbar *scrollbar; SpVisualizerTicks *ticks; } SpVisualizerViewPrivate; @@ -142,6 +143,17 @@ sp_visualizer_view_notify_zoom (SpVisualizerView *self, sp_visualizer_view_set_time_range (self, begin_time, end_time); gtk_adjustment_set_page_size (priv->scroll_adjustment, end_time - begin_time); + + if (priv->reader != NULL) + { + gint64 real_range; + gboolean visible; + + real_range = sp_capture_reader_get_end_time (priv->reader) + - sp_capture_reader_get_start_time (priv->reader); + visible = (gtk_adjustment_get_page_size (priv->scroll_adjustment) < real_range); + gtk_widget_set_visible (GTK_WIDGET (priv->scrollbar), visible); + } } static void @@ -247,6 +259,7 @@ sp_visualizer_view_class_init (SpVisualizerViewClass *klass) gtk_widget_class_set_template_from_resource (widget_class, "/org/gnome/sysprof/ui/sp-visualizer-view.ui"); gtk_widget_class_bind_template_child_private (widget_class, SpVisualizerView, list); gtk_widget_class_bind_template_child_private (widget_class, SpVisualizerView, scroll_adjustment); + gtk_widget_class_bind_template_child_private (widget_class, SpVisualizerView, scrollbar); gtk_widget_class_bind_template_child_private (widget_class, SpVisualizerView, ticks); gtk_widget_class_set_css_name (widget_class, "visualizers");