gtkhtml r8884 - branches/gnome-2-22/gtkhtml
- From: mcrha svn gnome org
- To: svn-commits-list gnome org
- Subject: gtkhtml r8884 - branches/gnome-2-22/gtkhtml
- Date: Wed, 2 Jul 2008 12:46:24 +0000 (UTC)
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]