gtkhtml r8883 - trunk/gtkhtml



Author: mcrha
Date: Wed Jul  2 12:42:29 2008
New Revision: 8883
URL: http://svn.gnome.org/viewvc/gtkhtml?rev=8883&view=rev

Log:
2008-07-02  Milan Crha  <mcrha redhat com>

	** Fix for bug #493783

	* htmlengine.c: (html_engine_opened_streams_set):
	Restore last scrollbar position when done with substreams.
	* gtkhtml.c: (vertical_scroll_cb), (horizontal_scroll_cb):
	Skip the event when should keep_scroll.



Modified:
   trunk/gtkhtml/ChangeLog
   trunk/gtkhtml/gtkhtml.c
   trunk/gtkhtml/htmlengine.c

Modified: trunk/gtkhtml/gtkhtml.c
==============================================================================
--- trunk/gtkhtml/gtkhtml.c	(original)
+++ trunk/gtkhtml/gtkhtml.c	Wed Jul  2 12:42:29 2008
@@ -558,7 +558,7 @@
 	   Layout::size_allocate and we can't do anything about it,
 	   because it uses private fields we cannot access, so we have
 	   to use it*/
-	if (html->engine->height != adjustment->page_increment)
+	if (html->engine->keep_scroll || html->engine->height != adjustment->page_increment)
 		return;
 
 	html->engine->y_offset = (gint) adjustment->value;
@@ -574,7 +574,7 @@
 	   Layout::size_allocate and we can't do anything about it,
 	   because it uses private fields we cannot access, so we have
 	   to use it*/
-	if (html->engine->width != adjustment->page_increment)
+	if (html->engine->keep_scroll || html->engine->width != adjustment->page_increment)
 		return;
 
 	html->engine->x_offset = (gint) adjustment->value;

Modified: trunk/gtkhtml/htmlengine.c
==============================================================================
--- trunk/gtkhtml/htmlengine.c	(original)
+++ trunk/gtkhtml/htmlengine.c	Wed Jul  2 12:42:29 2008
@@ -6541,9 +6541,18 @@
 	e->opened_streams = value;
 
 	if (value == 0 && e->keep_scroll) {
+		GtkAdjustment *vadj, *hadj;
+
 		e->keep_scroll = FALSE;
 		/*html_engine_calc_size (e, FALSE);
 		  gtk_html_private_calc_scrollbars (e->widget, NULL, NULL);*/
+
+		hadj = GTK_LAYOUT (e->widget)->hadjustment;
+		vadj = GTK_LAYOUT (e->widget)->vadjustment;
+
+		gtk_adjustment_set_value (hadj, e->x_offset);
+		gtk_adjustment_set_value (vadj, e->y_offset);
+
 		html_engine_schedule_update (e);
 	}
 }



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]