pidgin/gtkwebview.c

changeset 32772
9d79ccaeedfe
parent 32577
e32ba7559843
child 32774
94ca0baf8db0
--- a/pidgin/gtkwebview.c	Fri Dec 23 03:59:39 2011 +0000
+++ b/pidgin/gtkwebview.c	Tue Dec 27 22:00:00 2011 +0000
@@ -394,6 +394,41 @@
 	}
 }
 
+void gtk_webview_page_up(GtkWebView *webview)
+{
+	GtkAdjustment *vadj = webview->priv->vadj;
+	gdouble scroll_val;
+
+#if GTK_CHECK_VERSION(2,14,0)
+	scroll_val = gtk_adjustment_get_value(vadj) - gtk_adjustment_get_page_size(vadj);
+	scroll_val = MAX(scroll_val, gtk_adjustment_get_lower(vadj));
+#else
+	scroll_val = gtk_adjustment_get_value(vadj) - vadj->page_size;
+	scroll_val = MAX(scroll_val, vadj->lower);
+#endif
+
+	gtk_adjustment_set_value(vadj, scroll_val);
+}
+
+void gtk_webview_page_down(GtkWebView *webview)
+{
+	GtkAdjustment *vadj = webview->priv->vadj;
+	gdouble scroll_val;
+	gdouble page_size;
+
+#if GTK_CHECK_VERSION(2,14,0)
+	page_size = gtk_adjustment_get_page_size(vadj);
+	scroll_val = gtk_adjustment_get_value(vadj) + page_size;
+	scroll_val = MIN(scroll_val, gtk_adjustment_get_upper(vadj) - page_size);
+#else
+	page_size = vadj->page_size;
+	scroll_val = gtk_adjustment_get_value(vadj) + page_size;
+	scroll_val = MIN(scroll_val, vadj->upper - page_size);
+#endif
+
+	gtk_adjustment_set_value(vadj, scroll_val);
+}
+
 GType
 gtk_webview_get_type(void)
 {

mercurial