Another things I noticed is that when moving or scaling a NSView by
changing the frame you have to call [view setNeedsDisplay:YES] before and
after changing the frame (this is not needed on OSX/iOS). If you only call
setNeedsDisplay after changing the frame the old frame is not redrawn and
causes a trail of remaining pixels where the view has been. This could be
fixed by adding functionality to setFrame, couldn't it? How if we keep the
old frame in a private variable and redraw both frames when call to redraw
is made?



--
Johannes Lundberg
Project leader and lead developer of Mirama OS (previously Viking OS)
BRILLIANTSERVICE CO., LTD.

My blog <http://brilliantobjc.blogspot.com>
Mirama homepage <http://www.brilliantservice.co.jp/viking/>
blog<http://hmdviking.blogspot.jp>
Company homepage <http://www.brilliantservice.co.jp>


On Thu, Oct 3, 2013 at 8:20 PM, Matt Rice <[email protected]> wrote:

> On Wed, Oct 2, 2013 at 5:51 PM, Lundberg, Johannes
> <[email protected]> wrote:
> > Thanks all for your replies.
> >
> > Matt is correct. A quick test with this code after subviews has gotten
> new
> > values (calculated with some analytic formula)
> >
> >     for each subview
> >     {
> >         subview.frame = NSMakeRect((int)subview.frame.origin.x,
> > (int)subview.frame.origin.y, (int)subview.frame.size.width,
> > (int)subview.frame.size.height);
> >     }
> >
> > fixes the problem.
>
> Unfortunate because this problem is likely unapparent for
> non-overlapping views, causing unnecessary redraws.
>
_______________________________________________
Discuss-gnustep mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/discuss-gnustep

Reply via email to