[prev in list] [next in list] [prev in thread] [next in thread]
List: kfm-devel
Subject: Re: Resize & Scrollbars: !?!!!?
From: weis () stud ! uni-frankfurt ! de
Date: 1997-06-04 15:31:52
[Download RAW message or body]
Hi,
this is going to be a zombie list :-)
I am brainded, Sven is braindead ... :-)))
I am shure that Martins approach will have success.
Sven and I tried and I think that is proof which
shows that the wiget needs some rewritings.
Martins idea of sperating the parsing from the
width calculation sounds good.
On Wed, 4 Jun 1997, Sven Radej wrote:
>
> On 04-Jun-97 Martin Jones wrote:
> [...]
> >I have given some thought to this problem. My solution was
> >to separate the size calculation from the parsing so that
> >the objects size/placement can be recalculated any time
> >separately from parsing, i.e. call parse() once and let the
> >widget handle resize events so that in the top level calcSize
> >you do
> >
> > if width != prevWidth
> > start calculating from the start
> > else
> > continue calculating from last pos
> >
> >This should make size recalculation quite fast and would
> >minimise the visual effects of adding a scroll bar and resizing
> >the view. It would also not delete the htmltokeniser and object
> >hierarchy, so the widget will not generate loadImage requests
> >when resized.
> >
> >I've started doing this already - should know by the weekend
> >whether it will work Ok.
> >
> >--
> >bye,
> >Martin Jones
> >mjones@kde.org
> >
>
> Dear friends,
>
> I obviously overestimated my brainwidth when I said that it won't be too hard
> to fix those scrollbars. Well I fixed it completely, but not entirely :-)
>
> This is what works:
>
> - scrollbars show, hide, resize themselves ok;
> - even in frames;
> - nothing else;
>
> This doesn't work or causes Sven->braindamage(Permanent) :
> -When you have two scrollbars you have in lower right corner a small
> rectangle that NOONE should paint in. However someone does. This kills me.
> -paintEvent is called two-three times per resizeEvent. This is slow and blinks.
> -Scrolling is slooooooow and blink-blink-blinking if you have two scrollbars.
> -after resize, the widget is sometimes so badly repainted...
>
> The folowing things do not work but I don't think that's my fault.
You can but the panner rush back to their default width/height.
( at least on my system it wrks ).
Ooops. Belongs to the sentence below!
> -You cannot resize frames with panner... I don't think I did this.
> -Sometimes in frames selected frame gets all black. (in HTML pages)
Seems to be my fault but I dont know where this is going to happen
exactly.
I hope that your brain will regenerate :-)
Bye
Torben
>
> What I did:
> Well, I introduced a "QRect visible" as a public object in "KHTMLWidget".
> "KHTMLWidget::paintEvent ()" takes intersect of its "event->rectangle" with
> "visible" and paints into this intersect.
>
> "QRect visible" is set in "KHTMLView::calcScrollBars ()". First it is set to
> "view->geometry()" ("KHTMLWidget *view") an than shrinked if scrollbars are
> needed. "calcScrollBars" is called from "slotDocumentChanged" and "resizeEvent"
> "slot..Changed" only calls "calc...Bars"; "resizeEvent" does
> "view->setGeometry(...)" and then "calc...Bars".
>
> My idea was to restrict every painting job to paint in visible rectangle
> "visible". But changing every "width()" to "visible.width()" (or same for
> height) does terrible things, and wakes ghosts of bugs that were killed long
> ago.
> Someone with better knowledge of who exactly paints in htmlwidget, and which
> width/height() should be changed to visible.width/height() should finish this.
>
> If, of course this is a right way of doing things; I hoped to reduce repaints
> that occure one after another, but without luck.
>
> I have no doubt that Martin Jones will make a better job then I did.
>
> This sad patch made for khtmlw-0.7.3 is on lynch ("khtmlw-0.7.3.sr.diff")
> --
> Sven <sven.radej@iname.com>, frustrated to death
>
>
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic