mirror of
https://github.com/mozilla/gecko-dev.git
synced 2025-03-05 08:09:15 +00:00
Partial fix for bug #644. We still re-load the document un-necessarily, but
at least now we move to the anchor
This commit is contained in:
parent
5488848d0a
commit
57b43ab716
@ -2066,11 +2066,15 @@ HTMLContentSink::ScrollToRef()
|
||||
if (nsnull != frame) {
|
||||
nsIViewManager* vm = shell->GetViewManager();
|
||||
if (nsnull != vm) {
|
||||
nsIView* rootView = nsnull;
|
||||
vm->GetRootView(rootView);
|
||||
if (nsnull != rootView) {
|
||||
nsIView* viewportView = nsnull;
|
||||
vm->GetRootView(viewportView);
|
||||
if (nsnull != viewportView) {
|
||||
nsIView* viewportScrollView;
|
||||
viewportView->GetChild(0, viewportScrollView);
|
||||
|
||||
// Try and get the nsIScrollableView interface
|
||||
nsIScrollableView* sview = nsnull;
|
||||
rootView->QueryInterface(kIScrollableViewIID, (void**) &sview);
|
||||
viewportScrollView->QueryInterface(kIScrollableViewIID, (void**) &sview);
|
||||
if (nsnull != sview) {
|
||||
// Determine the x,y scroll offsets for the given
|
||||
// frame. The offsets are relative to the
|
||||
@ -2079,7 +2083,7 @@ HTMLContentSink::ScrollToRef()
|
||||
nsPoint offset;
|
||||
nsIView* view;
|
||||
frame->GetOffsetFromView(offset, &view);
|
||||
if (view == rootView) {
|
||||
if (view == viewportView) {
|
||||
// XXX write me!
|
||||
// printf("view==rootView ");
|
||||
}
|
||||
|
@ -2066,11 +2066,15 @@ HTMLContentSink::ScrollToRef()
|
||||
if (nsnull != frame) {
|
||||
nsIViewManager* vm = shell->GetViewManager();
|
||||
if (nsnull != vm) {
|
||||
nsIView* rootView = nsnull;
|
||||
vm->GetRootView(rootView);
|
||||
if (nsnull != rootView) {
|
||||
nsIView* viewportView = nsnull;
|
||||
vm->GetRootView(viewportView);
|
||||
if (nsnull != viewportView) {
|
||||
nsIView* viewportScrollView;
|
||||
viewportView->GetChild(0, viewportScrollView);
|
||||
|
||||
// Try and get the nsIScrollableView interface
|
||||
nsIScrollableView* sview = nsnull;
|
||||
rootView->QueryInterface(kIScrollableViewIID, (void**) &sview);
|
||||
viewportScrollView->QueryInterface(kIScrollableViewIID, (void**) &sview);
|
||||
if (nsnull != sview) {
|
||||
// Determine the x,y scroll offsets for the given
|
||||
// frame. The offsets are relative to the
|
||||
@ -2079,7 +2083,7 @@ HTMLContentSink::ScrollToRef()
|
||||
nsPoint offset;
|
||||
nsIView* view;
|
||||
frame->GetOffsetFromView(offset, &view);
|
||||
if (view == rootView) {
|
||||
if (view == viewportView) {
|
||||
// XXX write me!
|
||||
// printf("view==rootView ");
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user