Improved handling of anchors in wxHTML: scroll to better position (patch #11406).
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62674 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
		@@ -716,6 +716,7 @@ All (GUI):
 | 
				
			|||||||
  new CheckFit() method for more information.
 | 
					  new CheckFit() method for more information.
 | 
				
			||||||
- Allow reading GIFs with incorrectly specified animation size.
 | 
					- Allow reading GIFs with incorrectly specified animation size.
 | 
				
			||||||
- Return number of frames in animated GIF from wxGIFHandler::GetImageCount().
 | 
					- Return number of frames in animated GIF from wxGIFHandler::GetImageCount().
 | 
				
			||||||
 | 
					- Improved anchors handling in wxHTML.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
wxGTK:
 | 
					wxGTK:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -26,6 +26,10 @@ This is - - default text, now switching to
 | 
				
			|||||||
<CENTER>
 | 
					<CENTER>
 | 
				
			||||||
<P>center, now still ctr, now exiting</CENTER>
 | 
					<P>center, now still ctr, now exiting</CENTER>
 | 
				
			||||||
exited!.<A HREF="#downtown">[link to down]</A> 
 | 
					exited!.<A HREF="#downtown">[link to down]</A> 
 | 
				
			||||||
 | 
					<P><A HREF="#centeredbigempty">[link to REALLY Big Text (empty anchor)]</A> 
 | 
				
			||||||
 | 
					 <A HREF="#centeredbig">[link to REALLY Big Text (anchor containing text)]</A>
 | 
				
			||||||
 | 
					<P> <A HREF="#parempty">[link into paragraph (empty anchor)]</A>  <A HREF="#par">[link into paragraph (anchor containing text)]</A> 
 | 
				
			||||||
 | 
					  <A HREF="#emptycontainer">[link to empty container]</A>
 | 
				
			||||||
<P>Hello, this *is* default charset (helvetica, probably) and it is displayed
 | 
					<P>Hello, this *is* default charset (helvetica, probably) and it is displayed
 | 
				
			||||||
with one  <FONT COLOR="#FF0000">COLOR CHANGE</FONT>. Of course we
 | 
					with one  <FONT COLOR="#FF0000">COLOR CHANGE</FONT>. Of course we
 | 
				
			||||||
can have as many color changes as we can, what about this <FONT COLOR="#FF0000">M</FONT><FONT COLOR="#FFFF00">A</FONT><FONT COLOR="#33FF33">D</FONT><B><FONT COLOR="#FFFFFF"><FONT SIZE=+1>N</FONT></FONT></B>E<FONT COLOR="#999999">S</FONT><FONT COLOR="#CC33CC">S?</FONT>
 | 
					can have as many color changes as we can, what about this <FONT COLOR="#FF0000">M</FONT><FONT COLOR="#FFFF00">A</FONT><FONT COLOR="#33FF33">D</FONT><B><FONT COLOR="#FFFFFF"><FONT SIZE=+1>N</FONT></FONT></B>E<FONT COLOR="#999999">S</FONT><FONT COLOR="#CC33CC">S?</FONT>
 | 
				
			||||||
@@ -38,7 +42,8 @@ V E R Y T H I N G</U></I></B>.
 | 
				
			|||||||
<BR> 
 | 
					<BR> 
 | 
				
			||||||
<P><BR>
 | 
					<P><BR>
 | 
				
			||||||
<CENTER>
 | 
					<CENTER>
 | 
				
			||||||
<P>Right now, <FONT COLOR="#0000FF"><FONT SIZE=+4>centered REALLY Big Text</FONT></FONT>,
 | 
					<A NAME="emptycontainer"></a>
 | 
				
			||||||
 | 
					<P>Right now, <FONT COLOR="#0000FF"><FONT SIZE=+4><A NAME="centeredbigempty"></a><A NAME="centeredbig">centered REALLY Big Text</a></FONT></FONT>,
 | 
				
			||||||
how do you like (space) it?</CENTER>
 | 
					how do you like (space) it?</CENTER>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<DIV ALIGN=right>RIGHT: <FONT SIZE=-2>text-2, </FONT><FONT SIZE=-1>text-1,
 | 
					<DIV ALIGN=right>RIGHT: <FONT SIZE=-2>text-2, </FONT><FONT SIZE=-1>text-1,
 | 
				
			||||||
@@ -237,14 +242,14 @@ kjegiquw iuqdb qiud iquwd hurray googoo.</FONT></LI>
 | 
				
			|||||||
<FONT SIZE=+2>fourteen fourteen fourteen fourteen fourteen fourteen fourteenfourteen FOURTEEN fourteen fourteen fourteen fourteen fourteen fourteen
 | 
					<FONT SIZE=+2>fourteen fourteen fourteen fourteen fourteen fourteen fourteenfourteen FOURTEEN fourteen fourteen fourteen fourteen fourteen fourteen
 | 
				
			||||||
fourteenfourteen FOURTEEN fourteen fourteen fourteen fourteen fourteen fourteen fourteenfourteen FOURTEEN fourteen fourteen fourteen fourteen fourteen fourteen fourteenfourteen
 | 
					fourteenfourteen FOURTEEN fourteen fourteen fourteen fourteen fourteen fourteen fourteenfourteen FOURTEEN fourteen fourteen fourteen fourteen fourteen fourteen fourteenfourteen
 | 
				
			||||||
FOURTEEN fourteen fourteen fourteen fourteen fourteen fourteen fourteenfourteen FOURTEEN fourteen fourteen fourteen fourteen fourteen fourteen fourteenfourteen FOURTEEN
 | 
					FOURTEEN fourteen fourteen fourteen fourteen fourteen fourteen fourteenfourteen FOURTEEN fourteen fourteen fourteen fourteen fourteen fourteen fourteenfourteen FOURTEEN
 | 
				
			||||||
fourteen fourteen fourteen fourteen fourteen fourteen fourteenfourteen FOURTEEN fourteen fourteen fourteen fourteen fourteen fourteen fourteenfourteen FOURTEEN</FONT></LI>
 | 
					fourteen fourteen fourteen fourteen fourteen fourteen fourteenfourteen FOURTEEN fourteen fourteen <A NAME="parempty"></a><A NAME="par">(anchor here) fourteen</a> fourteen fourteen fourteen fourteenfourteen FOURTEEN</FONT></LI>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<P><BR><FONT SIZE=-2>fourteen fourteen fourteen fourteen fourteen fourteen fourteenfourteen FOURTEEN fourteen fourteen fourteen fourteen
 | 
					<P><BR><FONT SIZE=-2>fourteen fourteen fourteen fourteen fourteen fourteen fourteenfourteen FOURTEEN fourteen fourteen fourteen fourteen
 | 
				
			||||||
fourteen fourteen fourteenfourteen FOURTEEN fourteen fourteen fourteen fourteen fourteen fourteen fourteenfourteen FOURTEEN fourteen fourteen fourteen fourteen fourteen
 | 
					fourteen fourteen fourteenfourteen FOURTEEN fourteen fourteen fourteen fourteen fourteen fourteen fourteenfourteen FOURTEEN fourteen fourteen fourteen fourteen fourteen
 | 
				
			||||||
fourteen fourteenfourteen FOURTEEN</FONT>
 | 
					fourteen fourteenfourteen FOURTEEN</FONT>
 | 
				
			||||||
<P><FONT SIZE=-2>fourteen fourteen fourteen fourteen fourteen fourteen fourteenfourteen FOURTEEN fourteen fourteen fourteen fourteen fourteen
 | 
					<P><FONT SIZE=-2>fourteen fourteen fourteen fourteen fourteen fourteen fourteenfourteen FOURTEEN fourteen fourteen fourteen fourteen fourteen
 | 
				
			||||||
fourteen fourteenfourteen FOURTEEN fourteen fourteen fourteen fourteen fourteen fourteen fourteenfourteen FOURTEEN fourteen fourteen fourteen fourteen fourteen fourteen
 | 
					fourteen fourteenfourteen FOURTEEN fourteen fourteen fourteen fourteen fourteen fourteen fourteenfourteen FOURTEEN fourteen fourteen fourteen
 | 
				
			||||||
fourteenfourteen FOURTEEN</FONT>
 | 
					fourteen fourteen fourteen fourteen fourteen FOURTEEN</FONT>
 | 
				
			||||||
<LI>
 | 
					<LI>
 | 
				
			||||||
<FONT SIZE=-2>This is item number 15.</FONT></LI>
 | 
					<FONT SIZE=-2>This is item number 15.</FONT></LI>
 | 
				
			||||||
</OL>
 | 
					</OL>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -657,6 +657,16 @@ bool wxHtmlWindow::ScrollToAnchor(const wxString& anchor)
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
    else
 | 
					    else
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
 | 
					        // Go to next visible cell in current container, if it exists. This
 | 
				
			||||||
 | 
					        // yields a bit better (even though still imperfect) results in that
 | 
				
			||||||
 | 
					        // there's better chance of using a suitable cell for upper Y
 | 
				
			||||||
 | 
					        // coordinate value. See bug #11406 for additional discussion.
 | 
				
			||||||
 | 
					        const wxHtmlCell *c_save = c;
 | 
				
			||||||
 | 
					        while ( c && c->IsFormattingCell() )
 | 
				
			||||||
 | 
					            c = c->GetNext();
 | 
				
			||||||
 | 
					        if ( !c )
 | 
				
			||||||
 | 
					            c = c_save;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        int y;
 | 
					        int y;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        for (y = 0; c != NULL; c = c->GetParent()) y += c->GetPosY();
 | 
					        for (y = 0; c != NULL; c = c->GetParent()) y += c->GetPosY();
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user