[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kfm-devel
Subject:    Re: key navigation and visible area of the page
From:       Tobias Anton <TA () ESC-Electronics ! de>
Date:       2004-05-25 8:37:08
Message-ID: 200405251037.08374.TA () ESC-Electronics ! de
[Download RAW message or body]

On Samstag, 22. Mai 2004 13:18, Simon Hausmann wrote:
> On Saturday 22 May 2004 13:05, Lubos Lunak wrote:
> > Dne út 18. kvìtna 2004 22:23 Tobias Anton napsal(a):
> > > On Dienstag, 18. Mai 2004 10:17, Lubos Lunak wrote:
> > > >  I would, if you show me that right way. Open the attached page in
> > > > your Konqy and press accesskeys 9 or 0 (i.e. Ctrl+Alt+9/0). With
> > > > ensureVisible() the results are (in some cases noticeably) worse.
> > >
> > > Index: khtmlview.cpp
> > > ===================================================================
> > > RCS file: /home/kde/kdelibs/khtml/khtmlview.cpp,v
> > > retrieving revision 1.634
> > > diff -u -3 -p -u -w -B -r1.634 khtmlview.cpp
> > > --- khtmlview.cpp       17 May 2004 20:24:28 -0000      1.634
> > > +++ khtmlview.cpp       18 May 2004 21:21:47 -0000
> > > @@ -1803,8 +1803,8 @@ bool KHTMLView::focusNodeWithAccessKey(
> > >      }
> > >  #endif // KHTML_NO_CARET
> > >
> > > -    if (!scrollTo(node->getRect()))
> > > -       return true;
> > > +    ensureVisible(node->getRect().right(), node->getRect().bottom());
> > > +    ensureVisible(node->getRect().left(), node->getRect().top());
> > >
> > >      Node guard( node );
> > >      if( node->isSelectable()) {
> > >
> > > How is this worse?
> >
> >  Ok, the idea to do two ensureVisible() calls didn't occur to me. I'll
> > revert the scrollTo() changes then.
>
> I guess it could also be done using one call, with the ensureVisible
> overload that lets you specify a margin.

You're right. We could pass the center of the focused box as x/y coordinates 
and use half of the box's width/height, increased by about 20 pixels, as the 
xmargin/ymargin size. I admit that this is a bit more complicated than it 
should be, but that's the fault of the QT API.

Besides I noticed some flickering with current CVS, but I'm not 100% sure 
about it. It flickers if the view is too small for the widget to fit in the 
visible area. This could be avoided with the proposed optimization.

Cheers,
Tobias

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic