gtkhtml r8884 - branches/gnome-2-22/gtkhtml



Author: mcrha
Date: Wed Jul  2 12:46:24 2008
New Revision: 8884
URL: http://svn.gnome.org/viewvc/gtkhtml?rev=8884&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:
   branches/gnome-2-22/gtkhtml/ChangeLog
   branches/gnome-2-22/gtkhtml/gtkhtml.c
   branches/gnome-2-22/gtkhtml/htmlengine.c

Modified: branches/gnome-2-22/gtkhtml/gtkhtml.c
==============================================================================
--- branches/gnome-2-22/gtkhtml/gtkhtml.c	(original)
+++ branches/gnome-2-22/gtkhtml/gtkhtml.c	Wed Jul  2 12:46:24 2008
@@ -566,7 +566,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;
@@ -582,7 +582,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: branches/gnome-2-22/gtkhtml/htmlengine.c
==============================================================================
--- branches/gnome-2-22/gtkhtml/htmlengine.c	(original)
+++ branches/gnome-2-22/gtkhtml/htmlengine.c	Wed Jul  2 12:46:24 2008
@@ -6547,9 +6547,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]