[haiku-commits] Re: haiku: hrev45852 - in src: apps/deskcalc kits/shared

  • From: John Scipione <jscipione@xxxxxxxxx>
  • To: "haiku-commits@xxxxxxxxxxxxx" <haiku-commits@xxxxxxxxxxxxx>
  • Date: Sat, 13 Jul 2013 15:13:44 -0400

On Sat, Jul 13, 2013 at 7:07 AM, Axel Dörfler <axeld@xxxxxxxxxxxxxxxx> wrote:
> On 07/13/2013 04:43 AM, jscipione@xxxxxxxxx wrote:
>>
>>    Remove B_FULL_UPDATE_ON_RESIZE flag from view.
>>    We already Invalidate() on FrameResized() which redraws the  [...]
>
> I could imagine that the other way around causes less flickering.
> Right now, the app_server will invalidate the exposed areas on resize - and
> notify the window about the resize. This will then call FrameResized() in
> another thread which in turn calls invalidate which causes the complete
> window to be invalidated.
> The flag above would therefore safe a few steps here.

I am really really interested in a solution that would cause DeskCalc
to resize smoothly but I've yet to find it.

If I take out both the B_FULL_UPDATE_ON_RESIZE and Invalidate() from
FrameResized() then the view doesn't redraw at all.

If I keep the B_FULL_UPDATE_ON_RESIZE flag but don't Invalidate() in
FrameResized() it redraws the view before FrameResized() gets called
so the view gets drawn on resize, but incorrectly.

If I include both B_FULL_UPDATE_ON_RESIZE and Invalidate() in
FrameResized() as it was before it draws the view twice each time the
view is resized, once before FrameResized() and a second time at the
end of FrameResized(). By taking out the B_FULL_UPDATE_ON_RESIZE flag
I've eliminate a superfluous Invalidate() call on resize, but it
doesn't help to make the drawing any smoother. I'm still stuck on how
to do that.

Other related posts: