From 891dcbc339567eb857491f4593548d72a9a265ff Mon Sep 17 00:00:00 2001 From: Robert Fewell <14uBobIT@gmail.com> Date: Tue, 15 Nov 2016 11:18:44 +0000 Subject: [PATCH] Track visibility of the view scroll bars When the scroll bars show they can affect the chart so force a reload when they show. --- src/html/gnc-html.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/html/gnc-html.c b/src/html/gnc-html.c index d3fa6bd4c3..4046d09b6f 100644 --- a/src/html/gnc-html.c +++ b/src/html/gnc-html.c @@ -94,16 +94,31 @@ gnc_html_class_init( GncHtmlClass* klass ) klass->set_parent = NULL; } +static void +gnc_html_scroll_vis_cb( GtkWidget *widget, gpointer user_data ) +{ + GncHtml* self = user_data; + gnc_html_reload( self ); +} + static void gnc_html_init( GncHtml* self ) { GncHtmlPrivate* priv; + GtkWidget *vscroll, *hscroll; priv = self->priv = g_new0( GncHtmlPrivate, 1 ); priv->container = gtk_scrolled_window_new( NULL, NULL ); gtk_scrolled_window_set_policy( GTK_SCROLLED_WINDOW(priv->container), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC ); + + vscroll = GTK_WIDGET(gtk_scrolled_window_get_vscrollbar(GTK_SCROLLED_WINDOW(priv->container))); + hscroll = GTK_WIDGET(gtk_scrolled_window_get_hscrollbar(GTK_SCROLLED_WINDOW(priv->container))); + + g_signal_connect(GTK_WIDGET(vscroll), "show", G_CALLBACK(gnc_html_scroll_vis_cb), self); + g_signal_connect(GTK_WIDGET(hscroll), "show", G_CALLBACK(gnc_html_scroll_vis_cb), self); + priv->request_info = g_hash_table_new( g_str_hash, g_str_equal ); priv->history = gnc_html_history_new(); }